⬅️ Back to notes

Creating a Career Plan

Last updated: Sat Jan 01 2022

First created: Thu Dec 30 2021

Asking yourself why you want to work in tech

It's okay if the answer is for the money! But there are many high-paying career options, so there are likely other reasons why you are interested in a tech career.

Some examples might be:

  • The ability to succeed without formal education/degree
  • The idea of working on or with new technologies is exciting
  • You think the work will be intellectually stimulating
  • You like the idea of being a part of something a lot of people will use
  • You want to work on something innovative or cutting-edge
  • You think people who work in tech are pretty cool and want to be one of them
  • The ability to work remotely in most tech roles fits with your lifestyle
  • The abundance of opportunities available in a growing field

It's important to understand the reasons why you want to work in this industry, because that will help guide your decision-making about what types of roles to consider and, in turn, what skills to develop.

Deciding whether you want a technical role or a non-technical role at a tech company

I have worked in three different areas of tech:

  • Software developer at a company with a consumer product
  • Customer success at a company with a technical product
  • Developer relations at a company with a technical product

Typically when people want to work in tech, they mean one of two paths:

  • A technical role at any company
  • Any role at a tech company (a company with a technical product or service)

It's important to determine which path you are interested in pursuing, because this will determine which skills you should develop.

If you are looking for a specifically technical role, this could include:

  • Engineering
  • Product
  • UX
  • Design
  • Support
  • DevOps
  • Security

These roles tend to have more clear paths of what you should learn, and even certifications or courses that align with the role types. There are different specialties within each -- for example, Engineering could mean building software applications in C# or web development with a JavaScript framework -- but it is typically easier to find resources on career paths.

If you are looking for any role at a tech company, this could include:

  • Customer success for a technical product or developer tool
  • Technical product marketing
  • Developer relations
  • Technical recruiting
  • Sales for a SaaS company or technical product

These roles are more nuanced, and could require a combination of skills and specialized knowledge depending on the company. Identifying opportunities and career paths here can be trickier. Reading job descriptions to understand requirements, reviewing career paths of others in these types of roles, and gaining knowledge in a particular industry can be helpful. I also recommend talking to people in these roles to get a sense of their day-to-day activities and what skills they have found beneficial.

Documenting your existing skills and interests

Thriving in tech is not just about what coding languages you know! There are many aspects to these roles that will require skills like written and oral communication, research, analyzing data, learning quickly, problem solving, presentations, participating in productive meetings, empathizing with users, organization, planning, and more. Additionally, different roles can pique different interests, so understanding not just what you're good at doing, but what you actually like doing, is also important.

Take the time to write out your skills and interests. You aren't going to be good at everything, so knowing specifically where you excel can help narrow things down. If you aren't sure, read job descriptions and jot down things that catch your eye as something you'd like to spend time doing. For your skills, think about areas in school or previous jobs that you've excelled or received positive feedback. You can also ask people that know you well what they consider to be your positive skills and attributes.

Finding the overlap between you and your future career

Once you have a strong sense of your skills and interests, you can evaluate that against the requirements and responsibilities of jobs in the tech industry. You can do this by compiling the skills and requirements from job descriptions and comparing it to the list you've created about yourself.

For example, if you like building things, learning quickly, and solving puzzles, sofware engineering might be a good fit. If you are great at empathizing with users, communicating, and always lead group projects in school, you might thrive in a product role. If you are analytical, organized, and like peicing together clues, data science could be for you.

This isn't the easiest thing to do, and you may find that you're excited about multiple roles and opportunities. That's okay -- things in tech move fast and you'll have a chance to shift gears in the future if you change your mind. However, for most people it's helpful to narrow it down when you're actively searching for a job and building up your skill set. I've seen some struggle when casting too wide of a net, because they have a harder time differentiating themselves to employers and finding their niche.

If you're struggling with this, write down the actual day-to-day activities of the roles you're deciding between, and rank them based on your interest. Also consider how much time you'll spend actually doing each activity.

For example:

Front-end web developer

  • writing code
  • debugging code
  • writing tests
  • writing documentation
  • researching solutions
  • clarifying requirements
  • participating in meetings
  • maintaining the codebase
  • investigating defects
  • deciding on developer tooling

Product manager

  • interviewing users
  • reviewing user feedback
  • desiging user surveys
  • reviewing open issues
  • reviewing usage data
  • reviewing business requirements
  • prioritizing features
  • sprint planning
  • defining user stories
  • defining personas
  • clarifying requirements
  • validating work against requirements
  • documenting new features and releases
  • educating customer-facing teams on product changes

Job descriptions can be helpful here, as well as talking to people in the roles to get a sense of what makes up their work day.

Filling in the gaps

Once you have decided which role you'd like to pursue, you'll need to determine what skills you need to develop to get hired.

Defining what you need in a role to be successful

It's true when they say that interviews are for both the candidate and the company, and that it's important to determine a fit on both sides. Take some time to define your "must-haves" and "nice-to-haves" for roles you are considering. This will also help you ask the right questions of recruiters and potential employers about the opportunity.


  • Remote, hybrid, or in-person work
  • Overtime expectations
  • On-call expectations
  • Employee onboarding - smaller companies may not provide formal onboarding and ask you to figure things out independently or learn as you go.
  • Collaboration/pair programming/mentor opportunities with more senior developers
  • Communication frequency you'll have with your manager
  • Metrics of success - some companies may have set metrics or criteria for evaluating performance, others may not.
  • Professional development - some companies may provide a budget or reimburse expenses for courses or educational material
  • Benefits - what do you need in terms of healthcare, retirement savings, paid time off, parental leave, etc.?
  • Compensation - what baseline compensation do you require and what is the market range for the role?