A conversation about memory, reasoning, and what happens when you refuse to accept the standard answer. I didn't set out to build a memory system for AI. I set out to understand something that was bo
Short version: Software didn’t change because AI appeared. Software changed because constraints disappeared. Note: When I say AI, I don’t mean tools or models. I mean capability — the collapse of cost, speed, and coordination limits. This post is a ...
A note before we begin: This isn't about declaring everything wrong or throwing away decades of wisdom. Software engineering processes evolved for good reasons, and many principles remain valuable. But when the fundamental constraints change—when wha...
In modern distributed systems, reliability is everything. Especially when systems involve multiple services, databases, and message queues, ensuring data consistency and reliable event delivery becomes a major challenge. That's where the Outbox Patte...
What is the Workaround Mentality? The workaround mentality is when individuals or teams respond to issues by treating symptoms rather than addressing the root cause. Instead of fixing the problem at its core, they rely on hacks, manual interventions,...
In a world driven by data, strategy, and careful planning, analysis is essential. But when does analysis become the enemy? Analysis paralysis occurs when overthinking, endless debates, and excessive research leads to inaction. Instead of making progr...
In the world of technology and startups, there’s a fundamental difference between an engineer who focuses on execution and an entrepreneur who creates opportunities. While both roles are essential, what sets them apart is the mindset toward ideas: An...
Introduction AI is getting smarter, but how does it keep up with new information? The answer lies in RAG (Retrieval-Augmented Generation)—a technique that allows AI to retrieve the latest facts from external sources and use them to generate better re...
In distributed systems, efficient communication between services is essential. Three common paradigms used for message-based communication are Queues, Publish-Subscribe (Pub/Sub), and Streaming. While they may seem similar at first glance, each serve...
Building a productive culture is essential for any technology-based startup. It’s not just about working harder; it’s about creating an environment where every action aligns with the company’s goals and delivers value. This requires intentional decis...
Agile has become synonymous with modern software development, but it’s also surrounded by misconceptions. One of the most common is the belief that you need a Scrum Master to be truly agile. While Scrum Masters can bring value, agility is a mindset a...
I’ve always been an introverted person. I enjoy my thoughts more than conversations with others, and I’ve never been particularly social. For someone like me, communicating complex ideas or even visualizing them has always been a challenge. But AI ch...
Buzzwords are everywhere in software engineering. From microservices and micro-frontends to serverless and blockchain, these trendy terms promise innovation, scalability, and efficiency. But chasing buzzwords without understanding their purpose can h...
Hiring is one of the most critical decisions for any manager or startup founder. Bringing someone new onto your team isn’t just about filling a role—it’s about investing in the future of your business. However, hiring the wrong person or hiring prema...
Startups thrive on collaboration, trust, and innovation. However, when communication breaks down—especially between technical leaders and business stakeholders—it can derail progress and stifle creativity. While debate fosters innovation and clarity,...
Open-source development is often seen as a way to give back to the community, but it’s also an incredible learning experience. For me, writing open-source tools—even just for fun or as copycat projects—has been one of the most impactful ways to grow ...
Agile is celebrated as the gold standard for modern software development. Its principles of adaptability, collaboration, and iterative progress have transformed how teams work. However, Agile isn’t a one-size-fits-all solution. In some cases, Agile c...
Software development is a balancing act. On one hand, you want to build robust, flexible, and reusable systems. On the other, you must resist the urge to over-complicate your solutions. Over-engineering occurs when systems become unnecessarily comple...
Technical debt often gets a bad reputation, but not all tech debt is harmful. It can be a strategic tool to help you move faster, deliver value, and adapt to changing needs. Let’s dive into why most tech debt isn’t bad when it’s acceptable, and how t...
Perfection is often seen as the ultimate goal in software development. But striving for perfection in every line of code can sometimes do more harm than good. Let’s explore why not all code needs to be perfect and how embracing "good enough" can lead...