Skip to content

Instantly share code, notes, and snippets.

@biancadanforth
Last active February 8, 2024 20:04
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save biancadanforth/dfaa32023cc79da8bcd2655aff813dfa to your computer and use it in GitHub Desktop.
Save biancadanforth/dfaa32023cc79da8bcd2655aff813dfa to your computer and use it in GitHub Desktop.

What happens after Outreachy?

Disclaimer: These thoughts are my own (Bianca Danforth) based on my experience starting as an Outreachy at Mozilla and now working as a Senior Software Engineer.

Congratulations! You’ve just completed your Outreachy internship. You may be wondering: Where do I go from here? How do I get a job in software engineering? Below are a set of steps I recommend based on my own experience.

Introspect

  • Identify goals
    • What are your professional goals?
    • If you're not sure where to start, ask other people you admire what their professional goals are.
  • Identify skills
    • What skills do you need to achieve your goals (those you already have, those that you need to improve, and those you need to learn)?
    • It often helps to look at other people whose jobs you want and what their resume/skill set looks like. Informational interviewing (mentioned below) can help.
  • Identify job requirements

Update your resume

  • Don't wing it. This document is very important. It is often the first and sometimes the only thing potential employers look at to filter you out.
  • Have multiple people you respect review it. Check it very carefully for any errors or typos.
  • I personally recommend sticking to one page and having less text and more whitespace for better readability.

Make or update your professional website

  • Often people use their website to showcase their work, like a portfolio, or as a blog. None of that is required, but it can be helpful for people to get to know more about you, especially when you are short on formal experience.
  • If you're a web developer, ideally you would build your own website. That in and of itself is a portfolio piece.
  • GitHub Pages could be a good first option if you don't yet have a website.

Update LinkedIn

  • Make as many connections (e.g. from your Outreachy experience) as you can on the site.
  • Just like your resume, you should spend a good amount of time making your LinkedIn profile. Have people you trust and respect review it.
  • You can ask your mentor or any other team members you worked closely with to write you a recommendation (and of course, offer to return the favor).

Informational interviews

  • Find people who work at interesting companies, or who have a job similar to what you are looking for (e.g. on LinkedIn). Ask if you can talk to them about what it's like to work at their company, their career trajectories and what advice they might have.
  • These interviews are not intended to ask for jobs; they are for information gathering. It is possible people may offer additional assistance, but that is not the purpose of these interviews.

Apply for jobs

  • Even if you don't think you quite fit a job description (e.g. they're looking for a senior engineer not a junior engineer), you should apply anyway.
    • You never know. They may consider a promising junior engineer with a lot of potential. Many times the job description is describing an ideal candidate that does not exist anyway.
  • In my experience, employers may be willing to give you a chance, say as a contract-to-hire to see if you can learn quickly.
  • The unfortunate reality is that it is very unlikely that you will land your dream job for your first job as a software engineer.
    • Don't completely throw out what's important to you, but recognize this first job as a stepping stone to much more opportunity (and choice) in the future after you get some professional experience under your belt.
    • Unless it's really terrible, I recommend trying to stick it out for at least a year. Less than that can raise questions for prospective future employers.
  • HackerNews Who’s Hiring (first of the month every month; previous posts are archived)
  • Also sometimes companies may be hiring for positions that they have not posted to their careers page. If you are able to reach out to someone at the company directly, you can ask.

While you're waiting to hear back from prospective employers, work on a project or mini project to develop or improve a skill you need for your desired role.

  • You may be able to find some mentorship e.g. by contributing to an open source project. Just be sure you can finish anything you start if you are contributing to others' projects.
  • Some employers look at GitHub activity as an indicator for decision making. If your project is hosted on GitHub, they'll see you are actively working on something, and this can give you a boost.
  • Before the pandemic, I used to go to meetups for JavaScript to network and find study partners. In the U.S. at least, a good website for that was Meetup.

While you're waiting to hear back from prospective employers, also practice some coding challenges and technical coding interview questions.

  • Advent of Code (free)
    • 25 coding puzzles for each year (starting at 2015)
    • This is a good way to learn test-driven development.
  • InterviewCake (not free sadly)

Subscribe to tech newsletters in the industry/areas that interest you.

  • You could join some networking groups like Women Who Code; their email list includes a "Who’s Hiring" section and also often conference discounts (I guess virtual conferences these days).

When you get an interview

  • Prepare for it like you are studying for an exam (assuming you took exams seriously).
  • Anticipate questions they might ask about your background and your experience. If you put something on your resume, be prepared to talk about it at length.
  • Don't just practice the technical interview questions (though to be clear, that is where you should spend most of your time); practice the non-technical interview questions at least a little.
    • You can find lots of common questions all over the internet (e.g. Describe a challenge that you faced and how you overcame it.)
  • Understand what the company does. Ideally, ask who your interviewer(s) is/are in advance, so you can look them up and understand their backgrounds.
  • Try to get a sense of the interview process, so you know what to expect e.g. for the technical interview: Is it a pair programming session? A phone call? A take-home coding challenge?
    • How you prepare will depend in part on the format of the technical interview(s).
  • If you perform poorly in an interview, depending on the interview, it may be possible and even advisable to follow up afterwards with a better solution than you gave in the moment (e.g. emailing the interviewer later that day after you've had more time to think through the problem).

When you get the offer

  • Negotiate! I don’t have a particular resource on this, but you can easily find tons for free online.
    • Salary is not the only thing you can negotiate: Job title, flexible hours, start date, stock options, remote work, …
    • Practice negotiating with a friend or family member. Many times.
    • Many years ago, I was desperate for my first job out of college, I had nothing else lined up, and I still easily negotiated a $5k bump in my starting salary (in hindsight, I probably could have gotten more). That accumulates each year into more earnings and a better negotiating position for future jobs. It's worth it.

If you were talented enough to be selected for an Outreachy opportunity at Mozilla, you are talented enough to find your first software engineering job. As we say at Mozilla: Keep on rockin' the free web!

License

This document is licensed under CC-BY v4.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment