Hi! This blog is a collection of things I’m building, learning, and figuring out across code, systems, travel, and everyday life. Thanks for stopping b...
AI systems now make it possible to regenerate entire components with a single request. This shift turns traditional coding into something far more fluid, where rewriting becomes cheaper than refactoring, and iteration happens at high speed. In this environment, design patterns take on renewed importance. Patterns give structure to a process that can otherwise drift into chaos. When code is…
Overview: The Facade pattern provides a simplified interface to a complex subsystem, hiding underlying complexity. Example Use Case: A home theater system that wraps multiple components (projector, speakers, lights) under a single interface. class Projector : def on ( self ): print ( "Projector on" ) def off ( self ): print ( "Projector off" ) class Lights : def dim ( self ): print ( "Lights…
Have you ever wanted a simple, budget-friendly smart home button to control your automations? I did, and after exploring some expensive options online, I decided to create my own. This post will walk you through how I built a “poor man’s” Wi-Fi button using an ESP8266 controller, a bit of coding, and a 3D-printed case. Why Build Your Own Wi-Fi Button? The smart buttons available on Amazon…
Overview: The Adapter pattern allows two incompatible interfaces to work together by wrapping one inside another. Example Use Case: Integrating a third-party payment processor with your internal billing interface. class OldPaymentGateway : def make_payment ( self , amount ): print ( f "Processed payment of $ { amount } through Old Gateway." ) class NewPaymentSystem : def send ( self , amount ):…
Overview: The Factory Method pattern provides a way to delegate the instantiation logic to subclasses. Instead of calling a constructor directly, we call a method that returns the appropriate type of object. Example Use Case: A notification system that can send messages via email or SMS. from abc import ABC , abstractmethod class Notification ( ABC ): @abstractmethod def notify ( self , message :…
If you’ve spent any time looking for an apartment in Berlin, you know how competitive and expensive the housing market can be. Between skyrocketing rents and limited supply, it can feel like an uphill battle. But there’s a lesser-known and very promising route to affordable housing: Berlin’s housing cooperatives, known in German as Genossenschaften. A Genossenschaft is essentially a housing co-op…
In my pursuit of getting things done (GTD) more effectively, I recently decided to try implementing the GTD methodology, popularized by David Allen, in Apple’s built-in Reminders app. This post shares my setup, which works for me but isn’t necessarily the only way to use Reminders for GTD. GTD enthusiasts may adapt this framework based on their preferences and needs. Step 1: Understanding the…
At work, we've always relied on CircleCI for our CI/CD pipelines. Every GitHub repository we created was automatically integrated with CircleCI, which made setting up and managing workflows very straightforward. Over time, I became quite proficient with CircleCI, particularly in writing workflows and debugging them. One feature I loved the most was the ability to re-run jobs with SSH access. This…
Last summer, I had the chance to try out eFoiling for the first time, and it was an unforgettable experience. eFoiling is basically surfing with an electric hydrofoil board that lifts you above the water, giving you the sensation of flying—even on a calm, still lake. It's an incredible feeling, and I can honestly say it made for one of the coolest adventures I've ever had. I went eFoiling on a…