• From SQLite to PostgreSQL: Lessons From a Greenfield Project

    When starting a new greenfield project, choosing the right technology stack is one of the most consequential decisions you make. Cost, operational overhead, performance, and long‑term maintainability all play a role.

  • Managing compute, not machines — the Kubernetes mindset.

    From costly VMs to a self-hosted Kubernetes cluster: Discover why I finally ditched manual server management. Learn how thinking in 'Compute' instead of 'Servers' can save you money and headaches on your next hobby project.

  • The Incremental Engineer: My Workflow for Building With AI

    In this candid and practical blog post, I share my evolving workflow for building software with AI as a solo developer. From debugging cron job overlaps to designing multi-channel webhook systems, I explore how AI acts as a tech fact-checker, idea validator, and learning agent. With real-world examples and iterative prompts, this post highlights the joys and efficiencies of prototyping with AI—without the hype, just hands-on experience.

  • The Hidden Price of Success

    Explore the complex relationship between success, sacrifice, and sustainability in this thought-provoking article about the hidden costs of achieving our goals. This piece delves into the challenges of balancing professional ambitions with personal well-being, family life, and time management. Through personal experiences and insights, it examines how modern professionals navigate the demanding journey to success while maintaining a healthy work-life balance. The article offers valuable perspectives on making smart sacrifices, managing expectations, and finding sustainable approaches to pursuing success without compromising life's essential aspects.

  • Lovable Plus Jetbrains Junie - A Love Story

    AI is everywhere, but skepticism remains—especially when tech hype takes over. While many claim software development is easier than ever, seasoned professionals know the truth: it’s still a challenge. A recent struggle with a session-related bug proved that AI isn’t always the magic fix. After days of troubleshooting, the solution wasn’t in fancy code rewrites but in a small detail—a capitalization issue that completely changed how cookies were managed. A reminder that experience and collaboration still reign in problem-solving.

  • Enforcing JSON Schema in Django JSONField

    Learn how the introduction of JSON datatypes in relational databases has revolutionized data storage by enabling document-structured data handling without relying on NoSQL solutions like MongoDB. Discover the benefits of JSON columns in reducing complex table joins, optimizing queries in ORM-based applications, and simplifying the development of REST APIs with JSON-compatible databases. Explore the challenges, such as schema enforcement, and how they can be addressed effectively in Django using JSONField and custom schema validation, with an example showcasing real-world solutions. Perfect for developers looking to integrate flexibility and performance in their database design!

  • Whatever Your Hands Finds to Do ...

    In the rapidly evolving field of software engineering, it’s easy to get caught up in the latest trends and lose sight of the value in our current skills. This post reflects on the importance of embracing and excelling in whatever task or opportunity we find ourselves in, no matter how small it may seem. Drawing from personal experiences and biblical wisdom, I emphasize the need to adapt to new technologies while appreciating our present abilities.

  • How I finally Came Around To Adopting And Pair Programming With Generative AI

    Explore practical insights and real-life examples of integrating AI tools like GitHub Copilot into software development workflows, enhancing productivity, debugging, testing, and more. Learn new coding patterns and streamline your development process with AI as your coding companion.

  • How to de-couple your business logic by writing a simple EventBus module

    One of the exciting moments in the life of a software application is evolution, the moment you have to add yet another feature. Adding a new business capability is a sign of more usage being expected from running software. However, depending on how long the software has been running, adding new capabilities can be challenging. In a code base that isn’t well thought out, the result is a lot of procedural calls or couple if then else statements.

  • Understanding and Working With Sql/Json Language With Postgresql

    I must say, I have enjoyed my journey of understanding PostgreSQL offerings for JSON data type. I am also realising how much ORMs do for you; there can be pros to using one and cons simultaneously depending on your personality. There is however a sense of satisfaction in understanding how the database we depend on for business works.