If your technical skills are like the ability scores in D&D, then your non-technical skills are the ability modifiers. Non-technical skills are crucial in overcoming challenges in your career - ability checks.
In this post, you will find the non-technical resources I have discovered over my career that will help you become successful in your first software developer job. These resources will help you in building a good relationship with your manager and negotiating a better salary. It will help you in exploring your career paths, taking ownership of your onboarding, and setting better goals for yourself.
This is the first time you will be reporting to a manager. It is essential to understand what you can expect from your manager and what you can do to be better managed. Managers have a lot on their plate and they will appreciate it if you can make their job easier. Reading chapter 1 from The Manager's Path book by Camille Fournier will help you understand the perspective of managers and will help you in building a better working relationship with your manager.
In most places, you will have regular 1on1 meetings with your manager. If such a culture doesn't exist in your workplace, convince your manager to have weekly 1on1s with you.
Your 1on1 time with your manager is precious. Don't use it as another form of standup. Don't provide regular project updates in 1on1s. Instead, use this time to talk about your career, concerns, and risks for your projects, your team's objectives, ask for feedback, and more. The following illustration from Julia Evans has a good collection of topics to cover in 1on1s.
Salary is one of the biggest reasons why we work. Your initial salary plays an important role. All your future raises (sometimes even when you change jobs) are dependent on your current salary. By learning the basics of salary negotiation, you can negotiate a higher initial salary. The compounding effect will make this a hefty sum over multiple decades of your career. The blog post Salary Negotiation: Make More Money, Be More Valued by Patrick McKenzie covers all the basics that you will need for negotiation.
Know your market worth. Make sure you are NOT getting underpaid. The compounding effect can cost you a lot over your career. Use salary data from sites like levels.fyi and opensalary.jp to find what people with similar skills and experiences are getting paid. You can use this data to evaluate your offer and to negotiate accordingly. If you are already in a job and you find out that you are being underpaid, you can bring these data points to your company to support your case for a raise.
Different forms of equity are often a part of the total compensation. It's important to understand what you are getting and when. This will also help in comparing multiple offers. Evaluating equity offers from startups is especially tricky due to their non-liquid nature. The blog post Equity 101 for Software Engineers at Big Tech and Startups by Gergely Orosz is a good starting point.
Your onboarding experience will mostly depend on the company you are joining. At some companies, it will be great and at others, the onboarding experience isn't a priority. Unfortunately, you can't make improvements until you join the company. What you can do is take charge of certain aspects of your onboarding. How? The section Take ownership of your onboarding in the issue Onboarding to a New Company of The Pragmatic Engineer newsletter lists the actionable steps.
You have started your first job or you are about to. Great! You have done it. It is the start of your long and successful career. Where can you go from here? There are generally Individual Contributor (IC) and Management tracks at most companies. Find out what the career ladder looks like at your company. A typical career path at big tech companies is covered in the issue Engineering Career Paths at Big Tech and High-Growth Startups of The Pragmatic Engineer newsletter.
Goals are good for setting a direction, but systems are best for making progress.
Remember, knowing is not enough. You must apply.
Cheers! Have a productive day.
Prashant Anand (@primaprashant)
Special thanks to Sahil Khokhar for reviewing the draft.