Github Copilot

I am really excited about GitHub Copilot, a AI code pair programming capability. While good editors do provide some inbuilt code completion features, this is the first one I used that leans on AI to suggest code completions.

I feel this is an untapped opportunity to assist developers in getting more productive. As with anything new it will take time to mature. The quality of the suggestions by the AI assist will depend on how widely uses the programming language is. As with anything else, you should review the code added thoroughly to make sure it is doing what you intend it to do.

Another evolution of this would be for suggested functions to have unit tests added automatically or the AI to suggest unit tests for existing classes or the AI being aware of the framework being used (say Spring or ExpressJS) and suggesting appropriate framework code. While this is not a low code solution, it is definitely building towards a future where an AI could write the code given a text description of the problem statement (NLP) or at least assisting with scaffolding an entire service (with all the required standards agreed by the team and telemetry built in). Excited to see the possibilities with this.


Thoughts on dealing with burnout in tech

Mental Health with Kelsey Hightower on the always amazing Software Engineering Daily podcast –

This was a great podcast, and I want to thank Kelsey and Jeff for doing this talk. Burnout is a topic we do not talk about openly in the tech community; at least that is my experience over the years. I wish Jeff the very best as he navigates this. In this blog, I share some thoughts about one mental health condition that some of us face – burnout at work. My thoughts here are tied to the software engineering occupation, but it might resonate with other fields too.

Continue reading

Technical Debt

For a brief, but an enlightening article on Technical Debt (TD), do read this post from Martin Fowler Technical Debt. My focus here is not about what TD is, but rather some thoughts on WHEN in time do you incur it. Knowing that can help you go in with eyes wide open and maybe reduce the debt burden a bit. To assume you will not gain TD means you are either just out of school with no real-world experience or plain naive (no offense to anyone).

Continue reading

Say hello to Micronaut inside Kubernetes (with Prometheus & Grafana)

In the age of Serverless & Container architectures, there is once again chatter about Java being too fat (and dying). While I can understand the “too fat” observation, I will not put my money on the “java is dying/dead” chatter. That obituary has been written multiple times and the language lives on. It is true that Java was not born in the Container/Cloud era. Yes, it was born in a different age and time, but the language and framework ecosystem has evolved. In the Microservices cloud-native app world where horizontal scaling and fast startup times are expected, Java may (at times depending on the architecture) not be the fastest horse in town.

Continue reading

Engineering Management

It has been a few years now since I moved into the role of Software Engineering Management. While there may be various reasons for one to move to this role, it is a change that comes with very little training and no guidebook. In this blog, I will go over a few areas that I felt are areas to keep an eye on when in this role (a lot of it is relevant to non-manager lead roles too).

Continue reading