Note: this is the third part of a mini series that I originally wrote as a newsletter titled How to Become a Better Software Developer. You can view the full table of contents here.
Last time we saw that leverage gives you an indisputable advantage in your journey to becoming a better software developer. By removing exploitable inefficiencies and keeping a laser-focus only on what matters, you get further, faster. The goal is to arrive in 10 years where most people take 40 so that you can soar out of the stratosphere with each progressing decade. The goal is to be an A player, the kind of developer people love working with and want to keep around.
The first aspect of this leverage is positive energy. It’s an encompassing phrase with one specific implication we want to look at today.
In his book Book Yourself Solid, Michael Port advised his consultant readers to fire their least favorite clients. It’s a counterintuitive step to becoming booked solid, but it’s a critical one. By removing the negative energy from your life, you enter a healthier frame of mind. This lets you do your best work with worthier, higher-caliber clients.
I’m stealing this idea for software developers. If you’re an employee, take a hard assessment of your job and ask yourself whether you are in an environment that exudes positive energy or negative energy. We’ll look at how you can determine this in a moment. Almost every job and company requires working with a few bad apples. But if that describes your overall environment, consider switching jobs. Work for a company where this isn’t the case. Don’t just consider a change — make it. Give yourself no rest until you’ve transferred to a position in a better company.
I can’t overstate how big an impact your company has on your view of technology. In a negative-energy environment, your love of computer science wanes. So does your interest in learning new things in general. You stagnate like your peers. You seek to just to do the bare minimum so you can go home on Friday and get your paycheck. Instead of becoming a better software developer, you’become a worse one. It’s a terrible way to live, and it sadly describes B-C software developers. Rather than becoming sought-after experts increasingly laden with rich experience and insight, B-C players inevitably go downhill after college. By retirement they’re nothing more than walking zombies, retired on active duty. You want to get as far away from that environment as you can.
Here’s a checklist of things that indicate whether you’re in a negative-energy or positive-energy job:
- Which does my company value more — the product or the process?
- Does my company empower its developers to make change happen, or does it systemically perform power-grabbing gestures that pigeonhole developers?
- Does my company view technology as an IT expense or as its bread-and butter — a first-class citizen?
- Related, are the people actually writing the software considered grunts or acknowledged as being critical to the success of the company?
- Are my coworkers focused too much on their titles? Do they take themselves too seriously? Have they confused who they are with what they do?
- Does my company spend more time in meetings than in actually executing?
- When’s the last time anyone on my team went to a development conference or hackathon or expressed interest in a side project?
- Do employees at my company enjoy talking about technology outside 9-5 work or does conversation always drift to hobbies and movies and family sagas?
- Are the decision makers in charge of the product technically savvy and passionate, or are they business people focused sheerly on an enhanced bottom line?
- When things go awry is there team ownership and loyalty, or are individual developers hung out to dry?
- When developers find ways to save time on things, is this lauded or is it inevitably pushed back with a “that’s not how we do it here” attitude? In broader terms, does my company have a “can do it” attitude or a closed-minded “that won’t work” attitude?
- Could my coworkers get a job elsewhere if they wanted to, or do they have to stay put because they’d be incapable of getting a job elsewhere?
- Are my coworkers generally the kinds of people I’d enjoy hanging out with anyway or do I merely tolerate them because they’re there?
You’re forever limiting yourself if you’re staying in a negative-energy environment. At a positive-energy company, you’re using leverage to fast-track your journey to becoming a better software developer. Where you work makes a difference.
By now you might be thinking, “The above resonates. I’m in a negative energy environment right now. But how can I change? How do I find a better company?” While I can’t give an exhaustive answer, here’s a good rule of thumb: companies with negative energy often don’t have competition vying for their human resources, which is why they get away with being negative. Companies in hot markets with competition for human resources have to remain attractive. So for example, startups are often (though not always) positive-energy, whilst more stale companies are often (though not always) more negative-energy. It also varies by locality. A negative-energy company in Silicon Valley has less of a chance of existing as one in a more rural place where fewer employment alternatives are available. Relocating to a more viable city is an option, as well as finding a remote company that allows you to escape the boundaries and limitations of your own constrained local markets.
As a final piece of advice for today, don’t quit your job until you have something new lined up. With the one exception being if you’re in an environment that is so toxic that you’re afraid you’re on the verge of going postal (any kind of action that could result in being fired and/or a lawsuit), stick with it. Go home and submit your resume to 5 companies every night. Go to work the next day, smile to everyone, and plot. Wink at yourself in the bathroom mirror, knowing that the ship is sinking and you’re not going down with it. Go home and continue to research companies and submit your resume. Get some recruiters on your case. Find them on LinkedIn. Rinse and repeat, and before long you’ll have multiple offers to choose from. As I mentioned a few weeks ago, due to the crazy shortage of developers versus the jobs open for them, when it comes to exchanging your hours for dollars in the computer science industry, it’s a seller’s market.
If you’re fortunate enough to be in a positive-energy company already, count your blessings, and revisit the above checklist periodically where you’re at. Situations have a tendency to change over periods of time, sometimes for better, sometimes for worse. Chris Lattner witnessed this firsthand. He was a brilliant A-player who worked for Apple for 11 years. Eventually he got bored and went in search of a new challenge, and landed at Tesla in 2017. Just 4 months into Chris’ new gig though, it became clear to him that he was in (what was for him) a negative-energy environment. So he quit, and went to Google instead. Recognizing that you’re at the wrong company — that it’s time for a change — can happen to the best of us; if it can happen to Chris Lattner, it can happen to you. Learn to recognize it and admit it, and pivot accordingly. It’s an essential ingredient to becoming a better software developer.