Blog

Writing on software engineering, Linux, health, and the things I build and learn along the way.

Writing from the Field

The Hidden Depletion: My Journey from 14.2 A1c to Metabolic Recovery

Published: January 7, 2026 Reading time: 7 min

We often assume that if a doctor prescribes a medication, the only thing we need to worry about is the primary condition it treats. For over two decades, I lived by this assumption. Diagnostic: High Blood Pressure. Prescription: Atenolol 100 and Triamterene-H. Later, Levothyroxine for my thyroid, and eventually Allopurinol and Atorvastatin. I was “managed.” But management isn’t always the same as health. About ten years into my journey with hypertension, I faced a new challenge: high blood glucose. It was a shock. The doctor prescribed Metformin and Gliclazide. For a while, things were under control, especially after I managed to lose a few kilograms and cut sugary foods from my diet. But then, despite my efforts, my numbers spiked again; my A1C hit a staggering 14.2. ...

Continue Reading

The Engineer’s Dilemma: Building a Startup When You Only Want to Code

Published: January 3, 2026 Reading time: 9 min

You have a startup idea, and you have the skills to build it. As a senior developer, you’ve likely spent years mastering the art of turning requirements into robust, scalable systems. But when you decide to build your own company, you realize that the code is the easy part. The hard part is everything around the code: validation, prioritization, distribution, operations, and leadership. This post is a deep dive into the “Execution Gap.” It’s designed for the developer who can build anything but doesn’t know how to make it a reality in the market. We’re going to move past the clichés and look at the gritty details of startup execution, including the legal and management hurdles that often trip up technical founders. ...

Continue Reading

Migrating from React to Angular: A 'Ship of Theseus' Case Study in Production

Published: January 1, 2026 Reading time: 4 min

In the software world, the “Ship of Theseus” paradox is a daily reality. We replace parts of a system until, eventually, none of the original code remains. But usually, the industry moves toward the “shiny new thing.” At work, we did something that might sound like heresy to some: we migrated our core legacy React applications to Angular. This wasn’t a decision made out of fanboyism. It was a strategic move driven by the need for governance, stability, and long-term maintainability in a high-stakes FinTech environment. I’ll explain the architectural “why” and the pragmatic “how” of moving against the grain. ...

Continue Reading

The Circadian Code: Why Your Code Quality Depends on Your Light Exposure

Published: January 1, 2026 Reading time: 8 min

As developers, we often treat our bodies like hardware that just needs caffeine to keep running. We pull late-night sessions, work in dimly lit rooms, and stare at blue-light-emitting screens for 12 hours a day. We optimize our CI/CD pipelines, our database queries, and our bundle sizes, but we often ignore the most critical piece of infrastructure in our stack: our own biology. Our brains aren’t just processors; they are biological organs governed by a 24-hour internal clock known as the circadian rhythm. This rhythm dictates everything from our core body temperature to our hormone production and, most importantly for us, our cognitive performance. ...

Continue Reading

The Ghost in the Machine: Troubleshooting Intermittent Faults in Vintage Circuits

Published: January 1, 2026 Reading time: 8 min

There is nothing more frustrating than a device that works perfectly until you try to show someone else. In the world of vintage electronics, these “intermittent faults” are the ultimate test of an engineer’s patience and methodology. Unlike a blown fuse or a charred resistor, an intermittent fault is a ghost. It might be a cold solder joint that only fails when the chassis expands from heat, or a silver-mica capacitor that only leaks under specific humidity levels. These are the problems that don’t show up on a static multimeter test. They require a dynamic, almost adversarial approach to troubleshooting. ...

Continue Reading

Building a Personal Knowledge Engine with Jupyter and Local LLMs

Published: December 28, 2025 Reading time: 4 min

We’ve all used ChatGPT to write a function or debug a regex. But that’s just the tip of the iceberg. The real power of Large Language Models (LLMs) isn’t in the “chat”; it’s in the integration. As I explored in my 2025 series on Jupyter and AI, the real value of these tools comes when they are part of a structured thinking process. By combining the interactive execution of Jupyter Notebooks with the reasoning power of Local LLMs, we can build something much more powerful: a Personal Knowledge Engine. ...

Continue Reading

The Ethics of Legacy Code: Why Rewriting is Often a Mistake

Published: December 27, 2025 Reading time: 5 min

Every developer has been there: you inherit a codebase that looks like a bowl of spaghetti, and your first instinct is to say, “We need to rewrite this.” You see the outdated libraries, the inconsistent naming conventions, and the lack of unit tests, and you think, “I could do this so much better from scratch.” But a rewrite is rarely just a technical decision. It’s a social and ethical one. Legacy code is code that is working. It’s code that is paying the bills, processing the transactions, and serving the users. When we dismiss it as “trash,” we are dismissing the context, the constraints, and the hard work of the engineers who came before us. ...

Continue Reading

Microservices Observability: Lessons from Debugging 1970s Radios

Published: December 26, 2025 Reading time: 5 min

When you open up a 1970s radio, you aren’t met with logs or stack traces. You’re met with voltages, currents, and signals. If the audio is distorted, you don’t “grep” for an error; you trace the signal path from the antenna to the speaker. Modern microservices aren’t that different, though we often forget it. We’ve traded copper wires for HTTP requests and vacuum tubes for Docker containers, but the fundamental challenge of observability remains the same: how do you understand what’s happening inside a complex, distributed system without tearing it apart? ...

Continue Reading

The Cost of Consistency: Avoiding Design System Bottlenecks

Published: December 25, 2025 Reading time: 5 min

Design systems are promised as the ultimate productivity booster. “Build once, use everywhere.” And for the first six months, it’s true. You see the velocity of your feature teams skyrocket as they stop arguing about hex codes and start assembling pages from a library of pre-built components. But as your team grows and your product evolves, the very system that was supposed to speed you up can start to slow you down. At work, we built a comprehensive Angular-based design system that initially reduced delivery time by 40%. However, as we scaled, we hit the “maintenance phase”: the point where the cost of consistency began to rival the cost of development itself. ...

Continue Reading

Angular Signals and Control Theory: A New Reactivity Model

Published: December 24, 2025 Reading time: 4 min

Angular Signals have changed the way we think about reactivity in the frontend. But if you step outside the world of JavaScript, the concept of a “Signal” has a much older, much deeper history in Control Theory and Electrical Engineering. When we talk about “glitch-free” execution in Angular, we are actually talking about maintaining the integrity of a signal graph. I’ll explore the connection between the physics of signals and the architecture of modern web applications. ...

Continue Reading

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

Published: December 23, 2025 Reading time: 4 min

Full source Jupyter Blog Starter A complete working example for this article — explore the full source on GitHub. View source 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

Full source Jupyter Blog Starter A complete working example for this article — explore the full source on GitHub. View source 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. ...

Continue Reading

Jupyter, ChatGPT, Copilot (Part 1): The Strategic Value of Thinking in Notebooks

Published: December 23, 2025 Reading time: 6 min

If you come from a traditional software engineering background (frontend, backend, systems), chances are you’ve seen Project Jupyter everywhere, from notebooks and extensions to cloud platforms, and thought: “This looks huge… but I don’t really see where I fit in.” I had the same confusion. Let’s look at it clearly, using roles, not buzzwords. First: What Jupyter Is Not Jupyter is not: A programming language (unlike R or Python) A replacement for IDEs like VS Code A production development environment A competitor to ChatGPT or Copilot If you try to use it as any of those, it will feel awkward. ...

Continue Reading

Conditioned Taste Aversion

Published: December 18, 2025 Reading time: 22 min

Conditioned taste aversion, sometimes called the Garcia effect in honor of John Garcia who first described its unusual properties, is a powerful and fascinating form of learning. It is not only an interesting phenomenon in behavioral science, it also matters a great deal in medicine, nutrition, oncology, pediatrics, and everyday life. This long-form post explains what conditioned taste aversion is, how and why it happens, how to recognize it, the problems it can cause, ways to prevent and manage it, how it differs from allergies and other food-related issues, and where to look for more detailed scientific and clinical information. ...

Continue Reading

Can Houseplants Compete with Your Humidifier? A Fun Comparison!

Published: November 6, 2024 Reading time: 4 min

When it comes to increasing indoor humidity, most people think of a humidifier. But what if a couple of houseplants, like the Spathiphyllum (peace lily) or the Ficus elastica (rubber plant), could compete? Let’s dive into a fun comparison to see how these popular houseplants stack up against a common cool mist humidifier! 🌿💧 The Competitors Cool Mist Humidifier Our modern champion in the battle for indoor humidity! It’s efficient and effective for boosting indoor air moisture quickly. ...

Continue Reading

Search