DevOps

Articles about DevOps on omid.dev — guides, topics, and notes from the field.

Jupyter, ChatGPT, Copilot (Part 3): Real-World Code Examples

Published: December 23, 2025 Reading Time: 4 min

Companion resource Companion Project Explore the complete working example on GitHub. github.com/omidfarhang/example-projects/examples/jupyter-blog-starter View on GitHub In the previous parts, we discussed why Jupyter is a “thinking environment.” In this final part, we’ll walk through four concrete scenarios where a notebook outperforms a traditional IDE for a senior engineer. 1. API Archaeology: Mapping the Unknown When you’re dealing with a complex API, you don’t want to build a full client just to see what the data looks like. ...

Continue Reading

Jupyter, ChatGPT, Copilot (Part 2): The Technical Guide to Jupyter Setup

Published: December 23, 2025 Reading Time: 4 min

Companion resource Companion Project Explore the complete working example on GitHub. github.com/omidfarhang/example-projects/examples/jupyter-blog-starter View on GitHub The Modern Jupyter Stack For a software engineer, the “standard” way of installing Jupyter (global pip install) is often the wrong way. It leads to dependency hell and “it works on my machine” syndrome. Here is a professional setup guide. 1. Installation & Environment Management The “UV” Way (Recommended) If you haven’t tried uv yet, it’s a lightning-fast Python package manager. It makes managing Jupyter environments trivial. ...

Continue Reading

Chaos Engineering for Backend and Infrastructure

Published: July 7, 2024 Reading Time: 15 min

Backend chaos engineering assumes you control the runtime — VMs, containers, networks, managed databases — which makes fault injection precise. You choose exactly which pod, zone, or dependency to disrupt. This guide covers steady state for microservices, failure domains from compute to messaging, resilience patterns to validate, Chaos Mesh and Toxiproxy walkthroughs, SLO measurement, CI automation, game-day execution, and tooling. If you are new to the discipline, start with Chaos Engineering: Principles and Practice for the experiment loop, blast-radius controls, and game-day concepts. For how the same mindset applies in the browser, see Chaos Engineering for Frontend Applications. ...

Continue Reading

Advanced Container Orchestration: Beyond Kubernetes Basics

Published: June 12, 2024 Reading Time: 7 min

Container orchestration has revolutionized the way we deploy, manage, and scale applications. Kubernetes, the de facto standard for container orchestration, provides powerful capabilities out-of-the-box. However, as your applications grow in complexity, so do your orchestration needs. This is where advanced techniques come into play, pushing the boundaries of what Kubernetes can do. In this post, we will explore custom resource definitions (CRDs), service meshes like Istio, Kubernetes Operators, advanced scheduling techniques, and best practices for securing your Kubernetes clusters. ...

Continue Reading

Next-Generation Databases: NewSQL, Distributed SQL, and Beyond

Published: June 9, 2024 Reading Time: 7 min

In today’s rapidly evolving digital landscape, the need for databases that can handle massive volumes of data with high performance, scalability, and consistency has never been more critical. Traditional databases, while robust, often struggle to meet these demands. This has paved the way for next-generation databases, including NewSQL and distributed SQL, which are designed to address these challenges head-on. In this blog post, we will explore the world of next-generation databases, focusing on NewSQL, distributed SQL, and other innovative database technologies that are revolutionizing enterprise applications. ...

Continue Reading

Chaos Engineering: Principles and Practice

Published: June 6, 2024 Reading Time: 9 min

Distributed systems fail in ways unit tests never simulate. A replica set lags behind, a dependency times out under load, a deployment rolls out to half the cluster before someone notices the new health check is wrong. On the client, a payment API returns an empty body after thirty seconds of latency and checkout silently confirms $0.00. Monitoring tells you something broke after the fact. Load tests tell you how the system behaves when everything is working but busy. Chaos engineering asks a sharper question: when this specific component fails, does the rest of the system absorb it? ...

Continue Reading

Introduction to Docker: Simplifying Application Deployment

Published: May 28, 2024 Reading Time: 5 min

In the modern era of software development, Docker has become an indispensable tool for developers and DevOps engineers. It streamlines the process of deploying applications by providing a consistent environment across different stages of development, testing, and production. In this blog post, we’ll explore what Docker is, how to install it, and demonstrate a common use case: running a local WordPress site using Docker Compose. What is Docker? Docker is an open-source platform that automates the deployment, scaling, and management of applications. It does this by using containerization, which packages an application and its dependencies into a single, lightweight container. Containers are isolated from each other and the host system, ensuring that the application runs consistently regardless of the environment. ...

Continue Reading

Getting Started with Kubernetes: A Beginner’s Guide

Published: May 27, 2024 Reading Time: 4 min

In today’s rapidly evolving tech landscape, containerization has become a fundamental aspect of modern software development and deployment. At the heart of this revolution lies Kubernetes, an open-source platform designed to automate deploying, scaling, and operating application containers. If you’re new to Kubernetes and looking to get started, this guide will help you understand the basics and set you on the path to becoming proficient with this powerful tool. What is Kubernetes? Kubernetes, often abbreviated as K8s, is a container orchestration platform originally developed by Google and now maintained by the Cloud Native Computing Foundation (CNCF). It helps manage containerized applications across a cluster of nodes, providing mechanisms for deployment, scaling, and operations. ...

Continue Reading