Posts

  • 1:1 conversations with 10 Software Engineers

    This is a long blog post that captures some queries that people had in the 1:1 that I had with 10 engineers last month.
  • Problems with generic code

    I try to explain the pitfalls of overly generic code and why it's beneficial to avoid it. I share my experiences and lessons learned over the years. I explain how generic code can become a maintenance nightmare in the long run..
  • Blameless culture

    Mistakes are inevitable in any project, especially when it comes to complex software projects. However, the way we respond to those mistakes can make or break the motivation and productivity of our teams. This post discusses how fostering a blameless culture can enhance team productivity....
  • Unseen risks of Inheritance

    I started learning Object-Oriented Programming (OOP) with C++ during my college days, and Inheritance is one of the key concepts you can't miss when learning OOP. In fact, inheritance is one of the four core principles of OOP, along with...
  • Branch International Interview Experience

    I interviewed for the position of Staff Engineer II at Bain and Company in Jan-Feb 2024. They were hiring engineers for the Gurgaon team (that's a small team of <15 engineers). They had posted the job on LinkedIn, that redirected to..
  • Tech Interview Mistakes

    There are a lot of mistakes people make while preparing for and giving technical interviews. Like everyone else, I also made a lot of mistakes during my interview journey and learned the hard way (by getting rejected). Generally speaking, rejections shouldn't hurt...
  • Low Level Design Interviews

    I work as a Staff Software Engineer at LocoNav. When I give interviews with my current experience (that is close to 9 years), I am considered for these roles...
  • Improving your resume

    Hello people. I've you're reading this, you might be looking to build a better resume. It's important to keep your resume updated even if you're not looking out for a change. Sadly, not many people like me realise this on time.
  • Bain and Co. Interview Experience

    I interviewed for the position of Staff Engineer II at Bain and Company in Jan-Feb 2024. They were hiring engineers for the Gurgaon team (that's a small team of <15 engineers). They had posted the job on LinkedIn, that redirected to..
  • Stripe Interview Experience

    I interviewed for the position of Staff Software Engineer at Stripe in December 2023. They were hiring engineers in the Verification & Identity Platform team.
  • Atlassian Interview Experience

    I interviewed for the position of Senior Software Engineer at Atlassian in November 2023. This was my first ever experience getting interviewed by a large product organisation. Just to brief about myself and my background ..
  • Titles, Inflation and Down-levelling

    If you're confused about career ladders in different organisations, then this post will help you understand semantics of job titles (or job roles, or designations, or levels). There are many stories out there where people switch from a large service-based company...
  • Cloud, SaaS Cost Reduction

    Reducing spend on SaaS tools is a continuous effort. At LocoNav, we keep a strict eye on such expenses and spend some time every now and then to make sure we're not paying extra for any service. In the past 1.5 years, we planned and executed a lot ...
  • Developing From Scratch: 2016 vs. now

    One year into the industry, I wasn't sure if I knew enough about full-stack software development. I was working on a maintenance project, where we were mostly scaling down the system, doing small bug-fixes, doing a lot of ...
  • Devops Essentials for Developers

    In my ~ 9 years of experience, my work has been a mix of Backend and Devops. Getting my hands dirty on Devops side has given me a lot of edge in understanding things related to deployment, cloud, servers and operating systems that other developers couldn't easily understand. For example...
  • Optimising docker builds

    A detailed post on optimising docker build time and image size for any application based on my experience in optimising the same twice for one of our mid size application
  • Cloud pricing & Vendor lock-ins

    Cloud pricing is complicated. If you are trying to optimize a cloud bill for the first time that mentions more than 10 managed services, it can take a decent time to understand how this is computed. Although most of....
  • Information Overload

    Human beings are lifelong learners. For a newborn, the initial learning starts in the family. Later on, many of us undergo formal schooling, although these days, homeschooling is also an option. During my school days, most of the subject learning came from textbooks referred....
  • Multi-tasking is not so cool

    Multitasking refers to working on more than one task at a time. Although, as per research, it is not possible for humans to truly multitask like computers, we often hear this term at work. Among engineers, it comes up when...
  • Debugging Production downtimes

    Downtime refers to a period when a system/service is partially or completely unavailable. Based on the criticality of service and the customers you're serving, this can cause a loss of millions of dollars. I've been on the...
  • Efficient Remote Teams

    Just a week before the nationwide lockdown announcement in March 2020, our engineering team decided to try remote setup for one week. At that time (like many other companies), we had work from home policy for employees but...
  • Cost of time

    Time is precious. Even billionaires can not get back in time. Not even by a second. That's why all of us like to enjoy life by spending time and money on things we like. And that's good. Different people get peace by doing different things - singing, dancing, travelling...
  • Testing an app

    For many entry-level developers, the most exciting part of work is writing a shiny new feature, while rest of the things sound boring. Although writing code seems more than 90% of the work to them, but it is not true.
  • Avoid Redundant Complexity

    During my college days, I came across a code in C++ that prints map of India. The code was obfuscated and hence very hard to understand. It took me days to understand what magic it is doing, but at that time I thought complexity is good....
  • Asking Good Questions

    On a daily basis, we communicate with a lot of people - family, friends, office colleagues and often with end customers. A lot of this communication is in the form of asking questions and getting answers.
  • Efficient Fullstack Delivery

    Many organisations face the issue of missed deadlines. The reasons for this might be a one-off case or repeated scenarios. Today, we'll try to understand how can we optimize full-stack product delivery as a team
  • Migrating data across services

    Today, I'm explaining how we planned to transfer millions of rows "reliably" to a different service during our journey to services architecture.
  • Monolith → Microservices

    At LocoNav, we have been maintaining a decently large (yet manageable) monolith Rails application. Initially, all of our backend stack was in Ruby. With time, our ingestion layer was rewritten in Golang, the data layer was moved to Java but the...
  • Fixing code exceptions

    A regular day in the life of software engineer includes a lot of work - discussing status of things, writing new code, fixing customer issues, mentoring others and so on. Specifically, if we talk about fixing customer issues, they could be of two kinds
  • 'Classify' Your Codebase

    Most of the software engineers have a strong (theoratical) grip on OOPs concepts right from the college days but few still struggle to apply them while working. If you are someone who see a large number of small classes in your codebase that are well...
  • Things Code Reviewers Hate

    Is reviewing code part of your daily job? Unless you've got a super nice team (that doesn't actually exist), you must have faced most of these aspects while reviewing your peer's code.
  • Eight Productive Hours

    The key to working fewer hours is not to simply do less, but to do what truly matters most. - Unknown
  • Develop faster, better

    Over the years, has your speed of development improved?. Ofcourse, it would be much better than what it was when you were straight outside college. But have you significantly improved each year?
  • Small testing loops

    If you are a software developer, you must have spent a considerable part of your time debugging the code you, or someone else wrote. At times, it is quite frustrating to debug code due to...
  • Hello world

    I'm starting this blog to give back my learnings to the community. I've thanklessly contributed much less in the past as I was mostly occupied with my work. This was primarily because I got a chance to work only in ...