Systems | Development | Analytics | API | Testing

Unit Testing in NestJS for Node Using Suites (Formerly Automock)

For years, Automock was a popular framework for defining mocks and stubs in backend test environments. As technology has evolved, new methods and techniques for streamlining the simulation of dependencies in testing have emerged. That's why Automock has been succeeded by Suites, a more modern and robust library. In this article, we'll explore the transition from Automock to Suites, understand what Suites offers, and see it in action in NestJS through a complete example.

Build Custom ActiveStorage Analyzers for Ruby on Rails

In this series, we will take a close look at the architecture of ActiveStorage for Rails. In this first part, we will examine how ActiveStorage treats uploaded data and how to extend this process. The second part will explore how to augment the presentation of uploaded assets. But first, let's quickly define what ActiveStorage does.

How the Application and Request Contexts Work in Python Flask

If you have spent some time developing Flask applications, you have probably encountered terms like request, session, current_app, and g. You might even use them daily. But have you ever stopped to think about how Flask makes these seemingly global objects available exactly when you need them, especially in a multi-threaded web server environment? Well, the magic lies in Flask's context system. In this article, you will learn what contexts are in Flask and how to use them with practical examples.

Express for Node Error Handling and Tracking Done Right

Error handling might not be the most exciting aspect of web development, but it's arguably one of the most critical. When building Express applications, how you manage errors can make the difference between a robust, production-ready system and one that crumbles under real-world conditions. In this article, we'll examine Express' default error handling behavior and learn how to customize it for different scenarios.

How to Avoid N+1 Queries in Django Python

Django is a powerful web framework that simplifies how developers interact with databases through its Object-Relational Mapping (ORM) system. However, even with its benefits, it’s easy to fall into performance pitfalls such as the N+1 query problem. In this article, we’ll explore what N+1 queries are, why they can be an issue for your application, and how to mitigate them using Django’s best practices. Let's dive in!

Beyond console.log: Smarter Debugging with Modern JavaScript Tooling

Ask any JavaScript developer their most used debugging tool and chances are the answer will be console.log. It’s immediate, low friction, and available in every browser. For development, it’s fantastic. But for production and complex applications, if you rely on console.log alone, cracks begin to show. It lacks context, doesn’t persist, and makes reproducing or analyzing user-reported issues a challenge. In this article, we’ll look at smarter, scalable debugging strategies.

Advanced Strategies to Deploy Phoenix Applications with Kamal

In the first part of our series, we explored how Kamal simplifies Docker-based deployments while providing a cloud-like developer experience. We covered the basics of containerizing Phoenix applications, configuring Kamal, managing secrets, and implementing a CI/CD pipeline for automated deployments.

How to Use MongoDB in Python Flask

When developing software applications, data storage is a key concern. The reality is that your first concern should be the data model you choose, which in turn affects how you store data. Generally speaking, this means deciding between SQL and NoSQL databases. In this article, you will learn how to use MongoDB, a popular NoSQL database, in a Flask application. First, you will learn why MongoDB is a good choice, and then we will implement a practical hands-on project using MongoDB in Flask.

Advanced Ecto for Elixir Monitoring with AppSignal

In our previous article, we explored the basics of monitoring Ecto with AppSignal, covering everything from initial setup to tracking key metrics such as query execution time and resource consumption. We even set up custom instrumentation for database connection pools to gain deeper insights into our application's performance. However, setting up monitoring is just the first step toward maintaining a healthy, high-performing Elixir application.