Adopting A True Software Engineer Growth Mindset: Proactive vs. Reactive
I'm Jian, and I'm here to talk about a crucial mindset shift I made while working at Attentive (a fast-growing startup). In this article, I'll share how adopting a proactive mindset allowed me to make significant wins at my previous company -- both leveling up my impact and reputation.
Most software engineers start with an unhealthy reactive mindset, and it seldom leads to significant progress.
If you're earlier-in-career, your mindset is probably like: I'll do the tasks I'm given, and I'll do them well. As long as I do this, I'll be okay.
This was me when I first started, but as it turns out, I wasn't okay. I couldn't afford this mentality forever (unless I was satisfied with painfully slow career growth). I had to become more proactive, lest drowned by my own doing.
Getting The Opportunity
The fear of this metaphorical death became my greatest ally; it motivated me to take action. At Attentive, I took more initiative – carefully surveying the landscape and identifying key areas where I could make meaningful contributions:
- I ran meetings and asked other coworkers what problems they were facing, trying to see where I could help.
- If I saw an intriguing problem that had high impact, was low-hanging fruit, and needed a driver, I would pounce on the opportunity.
Eventually, I ran into a senior coworker who had plenty of scope but was drowning in work, so I asked if I could help him. My goal was to gain project ownership and find a way to make his life easier as well. My coworker agreed and handed me a project that he wasn't able to get to; it allowed me to work on a new service.
You Have More Support Than You Realize
Even though it felt scary to take on the new project, I still had a good feeling about it. Here's why:
- The project that I took on had a subject matter expert -- someone who I could go to immediately for help if I ever got stuck. This was essential for code velocity.
- By assuming co-ownership of the service, I allowed him to scale himself. For example, if the service ever went down while he was on vacation, I could still monitor any issues that came up; it gave the company another line of defense.
- Him training me meant I could become independent faster, thereby saving him time and making his life even easier. I could provide an extra pair of eyes if I was ever needed for anything.
- Also, since he owned the service, he cared way more about the project than any stranger would, and was committed towards the projects' success. It meant he wanted me to succeed as well, since my success was an extension of him succeeding. Put simply, he was willing to provide the necessary ammo to help me win.
Ultimately, I shipped the project successfully while becoming a reputable co-owner of the service. Since so many of our incentives aligned, I had all the necessary support and mentoring to succeed.
When it comes to seeking help, you're not wasting someone's time if the value you're providing matches or even outweighs the help you're receiving.
In the example I shared earlier, not only did I take on additional responsibilities to help in the long run, but it also created a positive feedback loop where the value of my contributions was reciprocated by even greater help in return. By adopting this mindset and continually seeking ways of being useful to others, I could negotiate myself into better opportunities.
Every team will have some senior engineers who are overwhelmed and looking for ways to delegate and balance their workload. If you're a more junior engineer on the team, you can get so much value by simply asking those engineers how you can help. Don't be afraid to put yourself out there!
I hope you enjoyed this article and you're able to take this advice to really level up your impact. If you like what I have to say, I would love to connect with you on LinkedIn: https://www.linkedin.com/in/jiank/
I was also recently laid off, so if you're looking for a self-starter, growth-oriented software engineer (or know someone who is), let's chat! ☕