How do you get a brand new team to become productive within three months? This post describes the lessons and techniques from rapidly ramping up these teams. These tips should help new members become productive within 12 weeks.
This post describes a simple framework for evaluating career choices along three dimensions and helps you to choose what is most important to you.
You have two choices when new challenges emerge: Offer several reasons why things wouldn't workSeek growth opportunities from the challenge Let's talk about the latter option. Scenario Your team dances through complex rituals every month before it can successfully deploy a big batch of changes. Engineers dread the drain on developer productivity and attendant customer … Continue reading Taking on scary challenges
A lot of time, I see engineers promising to boil the Pacific Ocean while climbing Kilimanjaro. I love optimistic engineers however there are also physical limits to what is possible. Another common refrain is "I worked so hard on x but I don't know what happened". Whenever I poke deeper, it's nearly always a case … Continue reading Results over Actions
What would you do in the following scenarios? Presenting radical new ideas to an unreceptive audience Collaborating with parties with opposing interests In all these scenarios, it is expected that stakeholders will push back and might even expose gaps in your plans. How do you increase your chances of buy-in? In the past, I would … Continue reading Being Deliberate
How to brilliantly deliver on seemingly impossible projects
Tips for making learning a habit and maximizing knowledge acquisition
Sample chat between two engineers Engineer 1: We should use Hadoop/Kubernetes/Cassandra/insert-random-cool-tech. Engineer 2: Why? Engineer 1: Well, all the cool guys rave about it: latest-fad-tech is the next big thing on the tech horizon. All the hot startups are using it too! Engineer 2: So what will we use it for? Engineer 1: Well, we … Continue reading Chasing fads or solving problems?
One of the most underrated parts of working at any job is interacting with people. It is amazing how much humans achieve via collaboration and also how fast relationships can degenerate. The following paragraphs cover real-life experiences and propose a model for kind influence - especially for senior team members. I am right and you … Continue reading Kind Leadership: Influence over Authority
1. Automate Automate toil away! Everyone has daily tasks that could be automated. Automating mundane tasks leads to immediate time savings, skill acquisition and huge cumulative benefits in the long run. For example, a 10-minute task costs about 2600 minutes a year (assuming 260 working days). Automating the task to run in 5 minutes leads … Continue reading Less work, More Impact : 5 tricks to boost productivity
Habits die hard It is hard to focus in a fast-paced work environment: there can be live-site incidents out of the blue; bugs to fix and meetings to attend. I have always struggled with coping with incessant demands and distractions; the urge to drop whatever I am doing and hop on the next fire is hard … Continue reading Less Work, More Impact
There is more to software development than writing code. this post describes three of the most oft-repeated tasks I have been asked over the years. These are not strictly programming tasks but help magnify the impact. 1. Documentation As a grad student in 2012/2013, I set up a continuous delivery pipeline on AWS for my … Continue reading Three high-impact non-coding tasks for software engineers
Do you want to sleep well at night? That was the question a senior engineer asked me in 2015. I had sought his feedback on some elegant code I wrote. While I was sure the code covered the scenario; I could not prove it would cover all possible scenarios all the time. That was a grey … Continue reading Do you want to sleep well at night?
But why do we do this? What do you do when you run into code that apparently serves no purpose? Do you immediately expunge the code? Also, what do you do if you have to follow some organizational process that appears to make no sense? Do you just eliminate the process? Take a deep breathe and … Continue reading What you should do before you start reforms
Late in 2016, I made a conscious decision to become a full stack engineer. It was a tough decision for me because it meant a career reset and came with some risk. I would also have to learn a lot and fast too to be an effective contributor. I could have remained in my comfort … Continue reading Why you should step out of your comfort zone
I used to read a lot in the past without practicing what I learnt; that exposed me to a variety of ideas and empowered me to discuss a lot of things. Over time, I found out that I mostly didn't 'know' what I thought I knew. Yeah I know it sounds somehow but it's really true. True understanding … Continue reading Reading is not enough
What makes a great senior software engineer? That's the question I always ask managers and senior engineers when I meet with them. This post discusses the traits of the excellent engineers I have had the opportunity to work with over the years. 1. Empathy Simple: do not be a brilliant jerk. No one enjoys working … Continue reading What it means to be a Senior Software Engineer
I bet everyone has had thoughts similar to the following go through their minds at one point or the other in their careers: side A: No, you don't know it, in fact you don't know anything... side B: hmm, I think you are just beating yourself too hard, it's a new area and you are … Continue reading Fighting the impostor syndrome
Time for a classic rant again; yeah it's always good to express thoughts and hear about the feelings of others - a good way to learn. Lots of people think the most difficult aspects of software development revolve around engineering themes like: Writing elegant pieces of code that are a joy to extend and scale … Continue reading The difficult parts of software development
Looking back on my time as a developer, there are a lot of things I would have avoided doing if I had as much knowledge and maturity as I did now. While I am grateful for the experiences and don't regret them; I felt it would be a good idea to share these. These might motivate others … Continue reading Maturing as a software engineer
I try to read a lot of books. Over the years, my 'taste' for books has been refined and some of my criteria are listed below. Book Impact Scale Length: The 200 - 300 page range is just about right for a technical book. Longer books contain a lot of fluff and repetition. Sometimes I get the … Continue reading Influential Books for programmers
I have made a couple of mistakes over the years and wanted to share those pitfalls so upcoming programmers know what to avoid and what works. 1. Focus You can't do everything - I don't think it is possible for one person to simultaneously be a pro at writing high quality code, network engineering, computer hardware and … Continue reading Advice for aspiring programmers
I wrote my first program around 2006 or thereabout - it was some toy program for the FORTRAN course at school. Ever since then, I have been given the opportunity to take on more challenging programming tasks. It's been a heck of a journey for me and I am very grateful for the learning, the mentoring … Continue reading 10 years of programming: Lessons Learnt
Effectiveness, (noun) : the degree to which something is successful in producing a desired result; success. Over the years, I have tried experiments, read books and watched several talks in a bid to improve my effectiveness. After a series of burnout and recovery cycles, I finally have a 3-pronged approach that seems to serve me well. 1. … Continue reading The Effective Programmer – 3 tips to maximize impact