3 Software Engineering Tips I Wish I Could Go Back in Time and Tell Myself
There are certain lessons you just have to learn “the hard way”. In a world of advice by aphorism, it’s truly difficult to filter out relevant tips from the flood of information we are inundated with each day. Moreover, while many sayings come from a place of deep insight, the knowledge they contain may not be relevant to you at that given moment in your life.
These three tips I wish I could tell nineteen-year-old me about to start his first internship were already available to me. However, when I heard them from other people, I struggled to internalize the lessons in an authentic way.
My goal in sharing these insights that I stumbled upon firsthand working at a startup called Ridgeline is twofold.
a) I hope some people will directly derive use and encouragement from these tips.
b) I hope that even for those that these specific tips are not directly relevant right now, there is still a holistic lesson to be had about listening. Yes, some idioms your co-workers will tell you are cliché, but others are worthwhile to hear!
Okay, here goes nothing.
1) Don’t Be Afraid to Break Things
At my internships, I was terrified of messing up things that touched production. Looking back on it, this was a sure sign that I wasn’t fully integrated into my team. Trust is a two-way street, so my apprehension to do something risky caused the full-times around me to take a step back in the responsibility they were willing to offer me.
Breaking things is a very healthy part of most software jobs so long as it’s done in the right way. What constitutes the “right way” depends on the stage of your company and the guardrails it has in place. Obviously, taking down a 5-person startup’s website is a radically different result than taking down Facebook for the same amount of time.
You have to trust that the company you work for will have processes in place to catch you when you fall, and that fault will be blameless so long as you followed the right protocols.
Many also think that breaking things is a bad look. On the contrary, any attention is good attention…
Anyone who has broken something knows how intense the “war room” meetings following the disaster can be. But if you break things because you’re doing something important for the company, people will recognize that and the attention can become positive. Plus, it’s a really good look if you use your expertise in the novel thing you created to be the one to fix it. Rush to any and all troubleshooting calls if there’s even the most minute chance that your feature is causing it.
2) Jump at the Opportunity to Pioneer New Technologies
Innovate or die. Though the authorship of this quote is disputed, its message is not. In tech, it’s a death sentence for your business if you can’t keep up with the technology you are using.
Some of my scariest projects were working with a technology that was entirely new not only to myself but to my entire company! Those were my biggest moments of growth, and they gave me the confidence to jump into other architecture that I didn’t author or fully understand. By staying with the latest and greatest, I proved to myself that although I am definitely not the smartest in the room, I don’t have to be scared of the unknown. I also developed a specialized skillset and intuition that quickly became valuable to others.
Sure, maybe others could have done a better job and probably have broken less things. At the end of the day though, I was the one who was trusted to get the job done on this new frontier, and that led to growth for all parties involved.
3) Be a Team Player
This statement is definitely the most hackneyed of the three and seemingly the most out of place when addressing the software engineering experience. That’s exactly the reason why this tip is so important for young engineers to keep in mind. Your company’s success is your success, and vice versa. If you don’t feel that way, it might be worth reconsidering jobs.
Yes, I know career advancement is daunting. With so many other competent engineers around you, it’s very easy to feel like you’ve become another cog in the wheel. If you work at a good company like I fortunately do, you will be recognized for the good work you do even while those around you are elevated for theirs. Everybody wins that way! After all, every team needs specialists and generalists, engineers and managers, and architects and programmers. Recognizing your role early on is crucial, and filling the needs of your company in the short run before your own will only make you more successful.
Don’t get me wrong — in the long run it is absolutely imperative that you have a growth trajectory so you don’t stagnate professionally. Complacency is the last thing for which I would advocate. All I’m saying is that short run wins for your company are long run wins for you that give you the leverage to make big career progress. You just have to trust in the people around you.
These three tips may have gone a long way for me if I heard them earlier, but honestly I probably just wasn’t ready to hear them yet. Think about the ways you could better internalize the free advice you get on a daily basis — you may be surprised who is the one to say something that will change your perspective on something big. I believe there’s something to be learned from every single human on this earth. Don’t squander these precious educational opportunities.