I am a big believer of SurveyMonkey’s vision on the career growth:
Initiated by you, facilitated by your manager, powered by the company.
We, individually, take full responsibilities for our career growths. It is
essential to understand what are your goals and objectives:
- Do you believe FIRE (Financial Independence, Retire Early) life style?
- Do you focus on your family, and pursue a work-life balance?
- Are you fascinated for problem solving, and prefer specialized as a domain expert?
- Are you passionate of the reach of the products and services you are building, and want to change the world?
There are really no right or wrong answers, it is just how we want to prioritize our lives. My recommendations are:
- Do NOT fixate your choice too early, try different things. We should randomize our the initial states for global optimization; and we can always adjust our goals after we gain more experience.
- Pick something you are really passionate about. Do not work for the vanity, or money. The extra money will not justify the agony and anxiety if you dislike your job.
I used to work in the companies of varying sizes: small startup(Skytap), medium-sized startup(SurveyMonkey), late-stage startup(Airbnb), and corporation(Microsoft). Generally you will have more autonomies for the tech decisions in the startups, but lack the resources to tackle the fundamental technical challenges.
I regard the growth as the most important aspect when I pick my next gig, or next team. Growth will not solve all the problems, but it leaves breathing room for the company to address the root causes. Employees are also more tolerant for the growing pains thanks to the promising futures. A fast growing organization usually leads to head count expansion, — which will open the door for your promotion and opportunities to transition to a manager.
I would pick a team in the revenue center, over the one in the cost center. Simply because the revenue center will continue to grow while the cost center will be capped for better profitability eventually. Other considerations for a new team are: head count projection, retention, team composition, operation and on-call duties, project management and workflow, etc.
The T-shaped skills, domain expert with comprehensive knowledge, are highly desired in the industry. Small companies prefer generalists to work end to end for quick iterations; while the specialists are valued more in the corporation for deep dives.
This also applies to the your career path:
- You can grow to a domain expert, such as Brendan Gregg, or Glen Kohl.
- Or a generalists with broad reach, as Joel Spolsky, and DHH.
Interestingly, the specialists shine in the corporation, while generalist thrive in the boutique shops.
I chose the generalist path, since the alternative did not work as a PhD dropout. I consider my value proposition is the full stack development capabilities, system design experiences, leadership, and strong communication sills.
Your manager is probably the most influential factor of your career growth: not only does he/she evaluates your performance solely1, your manager often dictates which projects you will work on. It is an uphill battle without your manager’s cooperation and facilitation to progress your career.
In the discussion, we agree to use the 1:1 time wisely: besides the status update, demonstrate your humane side, such as complaints of the naughty kids, stubborn teenagers. Show some vulnerabilities2 to make yourself more approachable.
I also find the after-work happy hour is quite effective to let guard down and build up the personal relationships with your colleagues.
Audience with keen eyes may find out I used transition instead of *promotion for manager role, since I view the manager role requires significant different skill set than the senior individual contributors:
- Leadership. Motivate and lead the team to deliver results.
- Communications. Communicate with your direct reports, peers and managers for alignment. Amplify the team mission to the rest of the company.
- People management, such as performance reviews, hiring and firing.
Therefore, if you final goal is to become a manager, you don’t need to climb the ladder of the individual contributor, — unless the seniority is a. prerequisite.
Talk to your manager with your career goals, and asks him/her to facilitate the leadership cultivation, such as an intern manager, or boot camp buddy. You may also want to broadcast your career goals to other managers for potential opportunities.
In-team conversion is a win-win for the company and yourself. Compared to the external candidates, you are more knowledgeable in this domain, and have built up connections with stakeholders. Your leadership can almost immediately take effect to the team with little or none bootstrap. For yourself, equipped with the understanding of the code base and contexts, you could make technical decisions without too much efforts. Thus, you can focus on the transition on the leadership and people management.
It is almost infeasible to transition when switching a job. You will compete with other candidates with several years managing experience in a levelled playground. It is really difficult to convince the future employer in interview that you are suitable for this new role without any track record.
I am strongly against the concept of player manager. This idea often emerges when the manager to staff ratio is too high, and the company is unwilling to lose a senior engineer’s productivity. It does NOT work, unfortunately. The team requires a full-time manager to focus on hiring, building the norm; not a part-time engineer blocking the critical path due to the limited availability. It is also unfair and unsustainable for you since you will be evaluated as a manager in the performance review at the end of the day.
I want to thank Heng Ji, Qi Zhang, and Tian Guo again for the weekly discussions, and shared meeting notes to help this reflection.