This has been my greatest lesson as a software engineer. I went from immediately jumping into the code to taking the time to understand the situation, think about the actual steps I'm going to take and then once I can see the solution then I'll start coding. If I thought through the entire situation and solution, 9 out of 10 times your code works and you're able to see the expected output.
"Slow" is the fastest way to ship code. I learned this the hard way at Google. I was working on a high-visibility project to migrate a feature to new infrastructure. The deadline was tight. Having worked at Amazon, I was a strong believer in "bias for action". "Ship fast, iterate later" - that was my motto. I built the feature in 2 weeks and launched an A/B test, feeling proud of my speed. That's when all hell broke loose. Multiple edge cases I hadn't considered started causing bugs. Not only did I miss the launch deadline, but I also created weeks of extra work for my entire team. The worst part? All of this could have been avoided if I had just spent 2-3 extra days understanding the feature thoroughly before jumping into implementation. Those "extra" days would have actually saved us weeks of cleanup work. This taught me the most important lesson of my engineering career: Moving fast doesn't mean coding fast. It means thinking deeply first. In Software Engineering, sometimes you need to slow down to speed up. Btw, if you want to prepare for technical interviews more deeply, try my free email newsletter: https://lnkd.in/gPjuaY9w
Software Engineering Graduate from Per Scholas, seasoned professional.
3wThank you for this tidbit!