Systems | Development | Analytics | API | Testing

Swift Concurrency Explained: GCD, Operation Queues, and Async/Await

Concurrency is the ability of an app to perform multiple tasks at once, and it’s a crucial concept for apps that need to perform multiple tasks at once in an efficient, usable way. Thankfully Swift has made great strides with concurrency, and now provides simple tools for writing robust apps that are responsive and enjoyable to use. In this article we’ll explore two main ways of using threads for concurrency models.

The Art of Throwing Exceptions in C# (or How to Fail Gracefully)

Exceptions in C# are like fire alarms – they're loud, disruptive, and absolutely essential. And much like fire alarms, most beginners either ignore them or disconnect the batteries. Let me explain what we're dealing with here. In the C# world, exceptions are specialized objects that capture all the details when something goes wrong in your code. They're not just error messages – they're fully-fledged objects that inherit from the System.Exception class.

Stateful vs. Stateless Web App Design

In the fast-paced world of API development, understanding the distinction between stateful and stateless applications can be a game-changer. Did you know that stateless REST APIs are the backbone of scalable web applications, handling millions of requests with ease? Yet, for many developers, the nuances of these architectures remain a mystery. As the demand for efficient and scalable systems grows, grasping the fundamentals of stateful vs. stateless applications becomes increasingly vital.

Visual Regression Testing with Playwright Vs. Others

Playwright is a Microsoft-created NodeJS package with capabilities that are quite similar to Puppeteer. Both libraries enable you to automate browser-based tasks. With Playwright, you can launch or connect to a Chrome, Edge, Safari, or Firefox browser and exchange instructions. The DevTools protocol (for Chrome browsers) and a bespoke protocol (for Firefox and WebKit browsers) are used for these messages.

Your Software Changes in Real-Time, So Should Your Architecture Diagrams

The evolution of diagramming in software mirrors the evolution of software development: from static and planned upfront → to lightweight and iterative → to automated and real-time. The 1968 “Mother of All Demos” by Douglas Engelbart wasn’t just a showcase of new technology—it was a glimpse into the future of how we interact with and visualize complex information, including software systems.

Game Tech Summit 2025: Navigating the Future of Games and Media Development

Last week, industry leaders gathered at the Game Technology Summit during GDC 2025 to explore emerging trends and challenges in game development. The panel discussion, moderated by Jase Lindgren (Sr. Solutions Engineer and P4 Evangelist, Perforce), featured insights from Colin Walder (Engineering Director, CD PROJEKT RED), Joshua Orellana (Head of Animation and Games, Halon Entertainment), and Matt Ellis (Game Dev Advocate, JetBrains).

Why Code Quality Is Essential in Software Defined Vehicles

Software has become a core component of modern vehicles, so much that software defined vehicles (SDVs) are transforming the automotive market, bringing key features to the software rather than the hardware of the vehicle. But developing high-quality code for software defined vehicle architecture is challenging.

How to Choose Between SQL, Query Builders, and ORMs in Node.js

When building Node.js applications that interact with relational databases, you have a large variety of tools at your disposal to manage and execute queries. The three most common approaches — raw SQL, query builders, and Object-Relational Mappers (ORMs) — offer unique advantages and challenges, making it difficult to decide which is best. In this guide, we will compare the strengths, trade-offs, and use cases of all three approaches.

Introducing Agentic RAG: The Best of Both Worlds

RAG and Agentic AI shape how intelligent systems interact with data and users. RAG enhances LLMs by retrieving external information to improve accuracy and contextual relevance, while Agentic AI introduces autonomy, decision-making, and adaptability into AI-driven workflows. Agentic RAG combines the power of both, transforming RAG into a multi-step, autonomous, complex process that can self-improve.