Training a large language model gets most of the attention. But if you’ve ever tried to serve one in production — handling real traffic, real latency requirements, and real cost constraints — you know that inference is where most of the hard engineering lives. Over the past couple of years, researchers and systems engineers have made remarkable progress in closing the gap between what these mod... continue reading
In the ever-evolving landscape of software development, the role of frameworks has become increasingly prominent. We’ve all heard it before — developers proudly declaring themselves as “React Developers,” “Django Developers,” or “Spring Developers.” While there’s nothing inherently wrong with specializing in a particular framework, I believe that excessive framework reliance can hinder the grow... continue reading
As a software engineer, I’ve always been interested in finding ways to improve the efficiency and scalability of my applications. When I first learned about containerization, I was immediately intrigued by the potential benefits it could offer. Containerization is a method of packaging and deploying software applications in isolated environments called containers. Containers share the operatin... continue reading
Almost always, the easy route is not the correct one. For many years, the standard method for creating software applications has been using a monolithic architecture. It entails developing an application as a solitary, independent unit with tightly integrated UI, data read/writes, and business logic. While this method is useful for smaller projects and kick-starting projects at a fast pace... continue reading