Rendering PDFs with Razor Templates and PuppeteerSharp in Azure Functions
Learn how to render PDFs in Azure Functions using Razor and the C# port of Puppeteer, PuppeteerSharp. Well run ASP.NET Core Razor Pages in a .NET Azure Functions app and use PuppeteerSharp with headle...
System Design: Hotel Booking (with FAANG Senior Engineer)

The hotel reservation problem is a common scenario in distributed systems and is covered in various resources including Ticketmaster and Grokking material. Similar problems include Airline ticketing, ...
8 reasons startups prefer Node.js over .NET, and are they justified?
Node.js has taken over as the preferred platform for many startups, and in this article, the author explores the reasons behind this trend. The article covers eight reasons why startups choose Node.js...
EFCore.BulkExtensions - High-performance EntityFrameworkCore extensions
EFCore.BulkExtensions is a lightweight and efficient library for EntityFrameworkCore that offers various bulk operations including Insert, Update, Delete, Read, Upsert, Sync, and SaveChanges which are...
Extending Next.js support in Azure Static Web Apps
Next.js is popular for building complex React apps with server-side rendering, API support, and SEO optimization. Azure Static Web Apps now offers better support for Next.js with easier zero-config de...
Shared Libraries - Design and Best Practices
Microservices architecture has brought many benefits to software development, such as faster scaling and development, but also introduced difficulties like communication and code duplication. Shared l...
The Future of Rendering in React
The popularity of React as a UI building library has been rapidly increasing over the past few years, and in this article, we’ll be exploring Reacts current rendering patterns, their problems, and how...
Expert Talk: Cloud Chaos & How Contract Tests Can Help • Holly Cummins & Kevlin Henney • GOTO 2022

Holly Cummins, senior principal software engineer on the Quarkus team at Red Hat, discusses the challenges that come with cloud adoption in her upcoming GOTO Amsterdam 2022 talk titled Cloud Chaos and...
Locknote: Programming’s Greatest Mistakes - Mark Rendle

The speaker addresses the audience of the NDC Oslo conference, thanking the crew, caterers, technical staff, sponsors, and volunteers for their hard work. He then proceeds to talk about the greatest m...
Modelling vs Diagramming Software Architecture
When it comes to developing software, communication is key. Tools such as diagrams and models aid in understanding and sharing ideas about software architecture. While standalone diagrams are great fo...
The Visual Collaboration Platform for Every Team | Miro
Miro is the ultimate tool for remote collaboration. With Miro, you can easily create and collaborate on visual content with your team, no matter where you are. Miro offers a range of features, includi...
arc42 - All-in-one template for software architecture documentation
arc42 is a proven and pragmatic approach to construct, communicate and document software architecture. It provides a flexible but systematic template for documentation and communication that supports ...
Making React Fast and Reactive by Default: Solving the Fundamental Flaw
React has many benefits, but its default behavior of re-rendering everything makes it slow and complex. To solve this, an approach is proposed that makes React faster and easier to use. The solution i...
Software Engineering Best Practices: Documentation, Test Data Creation, and Database Migrations
In this post, Simon Willison discusses some recommended software engineering practices for development teams. He emphasizes the importance of internal documentation, and how storing documentation in t...
Java 19 Is A Game Changer
After LTS 17, Java 19 offers concise and easy to use solutions for problems that other programming languages struggle with. Its approach to concurrency, through a new formation called structured task ...
The Lost Art of Architecting — Part 1
In this article, Nicholas Frush shares his thoughts on the lost art of architecting software systems. He argues that the rise of the cloud has not eliminated the need for paying attention to how you d...
The One Person Multiple Personalities Problem with Microservices Architecture
In this article, Itiel Maayan discusses the challenges of managing a person who appears and is managed as multiple entities in a system, worsened by the move to microservices architecture. Maayan prop...
Event Notification vs. Event-Carried State Transfer - Key Architectural Decisions to Make in Distributed Systems
In a world where distributed systems are becoming the norm and monoliths the exception, one of the important architectural decisions to make is around the mechanics of inter-service communication. Thi...
Improving Next.js app performance with BlurHash
Next.js offers a flexible React framework to build fast web applications, both server-side rendering and static web apps. However, improving app performance is essential to provide a better user exper...
Microsoft Teams’ Infrastructure and Azure Communication Services’ Journey to .NET 6
Microsoft Teams’ infrastructure team, or Intelligent Conversation and Communications Cloud (IC3), aspires to be the industry leading platform with reliable and high-quality audio and video calling, me...