Posts

To Retire or Not to Retire: The Tech Veteran's Dilemma

Introduction Twenty-five years. A quarter of a century. When you say it out loud, it sounds like a lifetime. And in many ways, it has been. I’ve spent these years immersed in the ever-evolving world of software tech, navigating the complexities of multiple giant firms. The journey has been exhilarating, challenging, and rewarding in equal measure. But now, as I sit here, staring out the window, a question lingers: is it time to press pause? The Pull of Retirement The idea of retirement is both enticing and terrifying. On one hand, there’s the promise of freedom – freedom from early morning alarms, endless meetings, and the relentless pressure to stay ahead of the curve. I can imagine myself spending days doing-nothing, may be traveling, or simply indulging in watching Netflix. The prospect of having unlimited time to pursue personal interests is incredibly appealing. And then there’s the health aspect. The tech industry is notorious for its demanding hours and high-stress environme...

Nomad & Kubernetes: Choosing the Right Orchestrator for Your Needs

The Unsung Hero of the Hybrid Cloud: Nomad's Quiet Revolution In the ever-evolving world of container orchestration, Kubernetes often dominates the conversation. Its robust ecosystem, fervent community, and backing from major tech players have solidified its position as a leading solution. However, a different orchestrator, one often overshadowed but no less powerful, is quietly carving its own niche: HashiCorp Nomad. While Kubernetes excels in its complexity and feature-richness, Nomad distinguishes itself through its simplicity and flexibility. It operates with a smaller footprint and requires fewer moving parts, making it easier to deploy and manage, especially in resource-constrained environments. This fundamental difference opens doors to use cases where Kubernetes might prove cumbersome or overkill. One of Nomad's strongest suits is its ability to orchestrate workloads beyond just containers. Unlike Kubernetes, which primarily focuses on containerized applications, Nom...

From Questions to Instant Answers: AI + RAG for JIRA, Confluence, and GitHub

Level Up Your Support Game: Automatic Answering with AI & RAG over JIRA, Confluence & GitHub In today’s fast-paced tech industry, providing rapid and accurate support is crucial for customer satisfaction, team productivity, and overall business success. But let's face it: manually sifting through mountains of documentation, tickets, and code repositories to answer the same questions repeatedly is a soul-crushing, time-wasting endeavor. That's where the magic of AI-powered automatic support answering, particularly leveraging Retrieval-Augmented Generation (RAG) over your existing knowledge bases like JIRA, Confluence, and GitHub, comes into play. This post will delve into the world of building intelligent support systems that automatically answer user queries by tapping into your organization’s existing knowledge repositories. We'll explore the core concepts, examine real-world applications, walk through a practical example, and highlight the lessons learned from d...

Decoupling CI and CD for Efficient Deployments

  Introduction In the fast-paced world of software development, Continuous Integration (CI) and Continuous Delivery (CD) have become synonymous with agility and reliability. While these practices are often intertwined, a distinct separation of concerns between the two can significantly enhance the efficiency and stability of Kubernetes (or any other target) deployments. This blog post delves into the benefits of this decoupling, the design principles involved, and the role of GitOps and security in this architecture. Understanding the CI and CD Divide CI focuses on building, testing, and packaging software into deployable artifacts. It's a developer-centric process that ensures code quality and consistency. The output of CI is a build artifact, ready for deployment. CD is about delivering the artifact to various environments, from development to production. It's an operations-centric process that emphasizes automation, reliability, and safety. CD leverages infrastructure as c...

Draw.io: Your Single Source of Truth for Diagrams, from ADRs to Design Docs

Visualizing Agility: How Diagramming Became Essential for Modern Software Architecture In today's rapidly evolving software landscape, agility and clear communication are paramount. Gone are the days of monolithic, poorly documented systems. Modern software development demands iterative design, continuous integration, and a strong emphasis on collaboration. This shift necessitates tools and practices that facilitate understanding and alignment across diverse teams, from developers and architects to stakeholders and compliance officers. This is where visual diagramming, particularly the use of versatile and accessible tools, has risen to prominence. For many organizations, documentation often felt like a tedious afterthought, relegated to static documents and outdated schemas. This lack of dynamic and accessible visual representation often led to miscommunication, delayed decision-making, and ultimately, increased development costs. Architecture Decision Records (ADRs), meant to c...

Bangalore Paradox: Finding Peace Amidst the Chaos (and the Rent Trap)

The Bangalore Paradox: Finding Sanctuary Amidst the Chaos The incessant honking. The snail's pace commute. The perpetual construction. It's a familiar soundtrack to life in Bangalore, a city bursting at the seams with ambition and opportunity. Yet, beneath the surface of this vibrant metropolis lies a quiet yearning – a desire for peace, for connection, and for a life lived on one's own terms. This paradox is perhaps best exemplified by the curious trend of homeowners choosing to rent. Why own a house, laden with the responsibilities of maintenance and property taxes, when you can experience the flexibility and freedom of renting? The answer, it seems, is multifaceted. Many find it liberating to move closer to their workplace, avoiding the soul-crushing commute that eats into precious time for self-reflection and personal pursuits. The rental market offers a wider variety of locations, enabling individuals to chase those coveted walkable neighborhoods or proximity to gree...

Kernel Debugging - Nightmare

Image
This is about an interesting but strenuous exercise I had gone through in life as a software engineer. This happened many years back and some parts are blurry. Disclaimer: The methods followed in this might not the best ways to debug the issue. Scene So the story goes like this. We were developing a gateway product and were in the last stages of doing the performance tests on the gateway.The performance expectations of the gateway was so well documented that we have a completely detailed input and output model which exactly predicts what is the kind of load this gateway can handle (probably one of the best performance models I ever worked with). During the performance tests we observed that the system CPU usage of the Linux kernel is going really beyond what is expected as we were loading the system towards the peak load it can handle. The details of this will be explained once I finish the architecture overview in the next section. Architecture From an architecture point of view, at ...