Systems | Development | Analytics | API | Testing

Advanced Debugging in Elixir with IO.inspect

When writing Elixir, most developers quickly get familiar with IO.inspect as a quick way to see what's happening inside their code. But what many overlook is that IO.inspect is far more powerful than just a method that prints a variable to the console. In fact, with the right options and placement, IO.inspect can become a precise, highly targeted debugging tool, one that doesn't interrupt your program flow and works seamlessly with Elixir's functional pipelines.

The Angular Signals Revolution: Rethinking Reactivity

In the world of Angular, reactivity has long been synonymous with RxJS. For years, developers have used observables, operators, and async pipes to build dynamic, reactive applications. But while powerful, RxJS brings a steep learning curve and often requires more mental juggling than necessary. Angular Signals change that. They introduce a new reactivity model that is intuitive, precise, and designed for clarity.

Scheduling Background Tasks in Python with Celery and RabbitMQ

It's important and useful to schedule background tasks for your Python application. Tasks allow your app to perform time-based or long-running operations without blocking the main thread or slowing down the user-facing functionality of your app. Background tasks can be used for anything from running recurring jobs like data cleanup or reporting, to sending asynchronous emails or other notifications.

Smooth Async Transitions in React 19

React 19 introduces a suite of features that empower developers to build seamless, performant user interfaces. Among these, async transitions stand out as a game-changer for handling asynchronous operations without freezing the UI. This is particularly impactful when building forms where users expect instant feedback, smooth interactions, and no jarring loading states.

How to Use Redis with Python

When it comes to data-driven applications, developers and data engineers are always trying to balance factors such as scalability, speed, flexibility, latency, and availability. In other words, databases and infrastructure are the foundations for well-structured applications: just like bricks are for houses. This article explores Redis' data store features and includes use cases. We'll learn how to use Redis in Python with a step-by-step tutorial. Let's get started!

Deploy a Python Flask App to Render with Docker

In this tutorial, we will build a Flask app with Docker, create a background worker with Celery, and use RabbitMQ as the message broker between the two services. This (relatively) simple example will be used to demonstrate how Docker makes it easier to run multiple services and share configuration details between developers. In the last section, we will also build and optimize our app for deployment to Render, so we can avoid some of the common gotchas it is easy to fall victim to along the way!

Understanding Stack Traces in Elixir

If you have spent any time working with Elixir in a production setting — or even just building a side project — you've likely encountered a stack trace. Stack traces can appear intimidating at the outset, especially since Elixir's error messages are often more detailed than those in other languages. However, they are a powerful tool for understanding what went wrong in your code. Early in my Elixir journey, I found stack traces to be a bit overwhelming.

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.