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.
There is a high chance that you attend or have attended an inefficiently-run stand-up. I have seen various stand-up styles over the years. Sadly, most of the roughly 2000 stand-ups I attended were unproductive. Mildly put, most were status reports for some manager or higher up.
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
1. Clarity What does success mean? For Leads and Managers Are you working on the right problems? Would your VP/Director/CEO be interested in your work? If the answer to any of those questions is no, then why are you doing all that work? If yes, great job! More questions!! What are the secondary and tertiary … Continue reading Five challenges of engineering teams
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
Some engineers believe they have to go to great lengths to eliminate every single piece of technical debt in their codebase. This focus on perfection ignores the cost of fixing debt, the risk of introducing new bugs and contagion (the chances of debt spreading). As is with real-life decisions; not everything is black and white; … Continue reading Not all Technical debt is bad
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 remember an algorithmic problem while studying at MASDAR; I naïvely came up with a simple solution that 'felt' right. My basking in euphoria was shortlived though - a more experienced course-mate needed only one look to declare my approach wrong. Funnily, he didn't know how to solve the problem too! He just knew my simplistic … Continue reading Simple, Complicated and Complex Systems
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