Let's talk about getting into a #career in #tech.

I'll share some of my thoughts as a hiring manager for the past 10 years or so.

First, tech and software in particular is really a great career, but it's very hard to get into right now. There is unfortunately a lot of randomness and luck involved just due to the sheer quantity of people entering the career. Don't get discouraged!

I'll tell you some things that I look for in hiring, but just be aware you will get a lot of rejections.

2: Because there are so many people getting into tech now, there are a lot of great and strong candidates. So let's look at this from a hiring manager perspective.

Here's what I want to see in a strong candidate for Software engineering:

3: First and most importantly, a demonstrated ability to learn.

In most cases, I'm going to be bringing you into a team where you will have to learn how to work on something old and probably fragile, probably in a language you haven't used, and a framework that is not recent.

That won't usually be the only thing you'll do, but unfortunately, old code is what is currently making money.

So one of my first things I want to know is can you learn a new language and come up to speed?

4: Secondly, I will want to know what you can bring to the team outside of pure coding skills.

This is where you #CareerChangers will really stand out. What people don't think about as much as they should is the team aspect of coding. I wish more management would emphasize this in hiring.

Can you offer feedback (often in PRs) in a kind and effective manner?

In a few months I'll probably be bringing in more people. Can you help them acclimate? Can you teach them the code base?

5: Lastly, can you code? This is the most obvious, but also difficult for people who haven't been through the tech interview process.

There are going to be some bad interviewing processes and untrained interviewers so be prepared to occasionally offer to show code or talk through projects.

One of the best entry level engineering interviews I did actually started with the candidate offering to walk through some code and being able to articulate the challenges and thinking.

6: So, how do you stand out in #tech as an entry level candidate?

You need to show you can learn.
You need to show you can work well with people and communicate effectively.
You need to show you can code.

I always recommend that people find an #opensource project and contribute something non-trivial. If you can learn a code base, contribute something valuable, and work well with others you can really stand out.

7: How do you find an #opensource project to work on?

There are a lot of guides that walk through this in more detail, but here's what I recommend:

Read this good intro first: https://about.gitlab.com/blog/2022/02/07/first-time-open-source-contributor-5-things-to-get-you-started/

Next, look for some projects that you feel you might be able to help with. Look for some code written in your most comfortable language, that isn't too complex.

Github or gitlab.com are good. But, this is a good place to start since it finds projects looking for new help:
https://goodfirstissues.com/

First time open source contributor? 5 things to get you started

Open source really is *open* but it can be difficult to know where (and how) to jump in. Here's our best advice.

GitLab

8: There are other great ways to stand out as well that don't involve volunteering.

I also recommend going to local tech meet ups. It's a good way to meet people with common interests, but also hear what the industry is talking about. It's a good way to find companies and people you might want to work with in the future, without the weird pressures of an interview.

9: Lastly, interview a lot. Embrace your failures and learn from them.

As someone who has conducted hundreds of interviews, the ability to interview well is a really underrated skill. You won't be good at it until you've done it several times at least.

So apply to a few jobs that you aren't too invested in, and try to focus on learning to answer the questions off the cuff confidently and thoroughly. It's easier to do when it isn't your dream tech job.

@kleaders thank you! great thread!
@kleaders while the advice on contributing to a public project is obvious from your point of view ... boy it can wear projects out. Mature projects get sick of free mentoring and training just so someone can get a job and then vanish. It's even worse if it's just a student doing coursework.
@notzed I agree. Let me add some more to this. It isn't on the OSS world to train people for jobs.

@kleaders Interesting. As someone who has some training in programming but my degree and career is in something else, I often play with the thought of switching to tech (or at least some programming related job adjacent to my field), but am worried about too sharp a turn in my career.

So I keep wondering, how much do I need to have my (hobby)coding experience up to date vs. relying more on my professional achievements?

@nicemicro the interview process will be heavily focused on your programming skills. So I would encourage you to make sure you are at least comfortable with walking through recent code that does something moderately complex. A simple web app or cli tool probably works.

@kleaders I'm working on a Python app to draw molecules (I'm in chemistry), and it has some parts that relate to the way atoms and bonds work, but also some geometry for drawing the formula.

I hope that kind of project is good to show how I can apply basic programming principles with my science background.