When I started my first Software Engineering job, a combination of technical insecurity (I didn't have a Computer Science degree) and a naive understanding of professional development (this was my first real job) led me to believe that my career advancement would be pretty straight forward: Accrue as much programming experience as possible (patterns, languages, tools, systems, etc.) so I could solve any programming problem I came across. But the longer I worked, the more I realized I was severely neglecting very important parts of my professional development.
Discounting soft/professional skills
Several years into my career I was spending all my evenings reading the top articles on Hacker News, experimenting with esoteric languages like Erlang, and clojure, and hacking on side projects, all in an effort to "catch up" to my peers. But I didn't feel my effort was having a proportional impact. When I audited my time at work, I realized programming was only ~15% of my job. The majority of my job duties were talking to stakeholders, writing Technical Design Documents, getting feedback from dependent teams, running effective meetings, communicating progress, etc. Shortly thereafter I picked up a book, How to Win Friends and Influence People, a book I'd previously dismissed because the title sounded overly Machiavellian. But boy did this book open my mind.
No exaggeration, How to Win Friends... (synopsis here) is nothing short of a playbook for improving every relationship in your life. And when you apply those strategies to your professional life, you'll be surprised how rapidly you develop deeper and stronger bonds with your work colleagues. This has a compounding effect that's difficult to quantify because the benefits somtimes aren't realized for months. People will seek you out for solutions/answers (protip: you don't actually have to solve their problems, just connect them with someone who can). It becomes easier to get things done with a rich network of colleagues you can lean on for favors, advice, mentorship, and more.
So how do you get started? Don't overcomplicate it. Pick three strategies from How to Win Friends..., and start applying them in as many interactions as you can. Next quarter, pick another three and do the same. You won't be perfect and it will feel unnatural at first, but stick with it and it will become second nature. The more people like working with you, the easier it is to get things done and have an impact.
If you're looking to level up your professional skills, my advice is to focus on prepardness. Being prepared is 90% of good professional hygiene. Put an agenda in your meeting invites, review that agenda and state your goal at the top of your meetings, be proactive about sending out status updates, start taking daily notes, anticipate the needs of your manager, document project proposals. If you can do even a few things, you'll improve your capacity for more complicated work.
Inconsistent or absent career planning convos
I used to believe that if I delivered on my projects, my employer would reward my hard work with promotions. And that's true to a point. I say this having worked for some amazing companies, if you don't make it a known priority, they will promote you according to their schedule. However, if you make career growth a known priority (agenda item in all your 1-on-1's, ask for feedback, ask for more responsibility, etc.), you've communicated two very important expectations with your manager:
- career growth is a priority and you will hold your employer accountable for feedback and opportunities
- [IMPLIED] if these expectations can't be met, you'll happily find another employer who is better aligned with your growth goals and who can provide such opportunities
I tell everyone I've mentored that they need to be an active participant in their professional growth. It's not enough to have a casual conversation 1x per quarter. Be explicit about your quarterly goals and make this an agenda item for every 1-on-1, ask for feedback on everything – communication, status updates, engineering hygiene, leadership, – ask where you are deficient, ask to work with specific engineers who you can learn from, etc. These convos will ensure your growth is top of mind for your manager and employer.
Now, on some level it's your manager's job to force these types of conversations. But a manager can only drive so much. You'd be surprised how many Engineers don't have goals more specific than "Get Promoted" and who fail to incorporate peer or manager feedback into their growth. Career growth is like any relationship: it requires two willing participants. If you're not an active participant, it doesn't matter how good your manager is...they will not be able to help you grow.
So how do you have these conversations with your Manager? First off, it's a dialogue. You don't have to have all the answers. Your manager exists to help you navigate your career. Start with "What do I need to work on to get to the next level?" Ask for feedback. Ask what the team currently struggles with...maybe there's a way for you to help. The most important thing you can do in these conversations is to end them with a set of action items, actionable Todo's for you try out and follow up in your next 1-on-1. Keep a running log of notes on each of these and report back to your manager on your success or failure. This starts a cycle of experimentation that by it's very nature will force you to grow.
Not understanding how to create opportunities
An early mentor of mine once told me: A well functioning organization creates a network of people who solve problems and makes life easier for those around them. Make life easier for those around you and you will be very successful.
In your next 1-on-1 with your manager, ask the following: "Hey I'm interested in expanding my impact; is there anything on your plate right now that I can help with that would make your life easier?" THIS is how you add value. THIS communicates ownership and capacity for more responsibility. THIS is how you create opportunities for yourself; become the problem solver, the pain reliever.
Now, in all likelihood, your manager won't have anything immediately top of mind; they'll need time to go through their long list of Todo's and identify things that can be delegated and to what degree. But you've just incepted the idea into your manager's brain that you are hungry for more, and for most managers, this is all too tempting of an opportunity to create more space in their schedule for higher priority work.
Even better, it works at all levels of the organization. If your manager doesn't have anything, ask your peers. They certainly have things they need help with. Whenever an opportunity presents itself to do slightly more work and make a lasting impact, do it. Clean up that documentation that's been neglected for months/years, send out meeting notes to all participants, document a problem and propose several solutions of varying complexity. Don't over think it; small improvements add up.
It's been my experience that these 3 mistakes are the most common amongst the Engineers. You won't improve them over night but if you commit to continually working on these areas you'll truly accelerate your career. If you're interested in my Coaching services, you can read more here.