On Getting Your First Job in Tech (Part 1)

07 Apr 2024 12:03 UTC

This is my opinion based on my experiences. I'm not a professional recruiter and I don't know much about the landscape for folks outside the US.

This is part one based on a question from the Black Python Devs Community

I have been asked a lot about getting a job in tech (especially that first job).

I have some ideas and WARNING they are not fun or glamorous. Work is work sure it can be fun but often it is time consuming. When you are looking for a job, that is your job. If you treat it like that and do the thing as good as you can you will see rewards. There are not tricks or techniques and now that every job opening is bombarded by hundreds of AI generated resumes and cover letters you will need to work around that.

The process is slow so get started

Get started. The best time to plant a tree is in the past. The second best time is now.

Baby Groot

My first developer advocate job took 6 years of passive and 6 months of active applying. That time was my "college" as I didn't attend college.

I had a job as a system administrator after I left the military and then networked internally to move to from IT to marketing. This was because I wanted to write more code around data and the eCommerce team was a part of their marketing department. Then I excelled in that space because I was able to automate many of the marketing and eCommerce processes not just for me but others on my team.

I met several people from local user groups that I volunteered for and helped organized like San Diego Python, CodeNewbie, WeAll.js and Operation Code. I setup chairs helped serve food and volunteered to speek as often as I could. I couldn't use my company's data so I swapped it with public data from my local communities or federal and public data portals. This meant that anyone could replicate my work.

Setting up for an event to talk to high school students

I shared what I knew and tried to learn more all the time. I wasn't game theorist my way through it I just wanted to keep learning Python tactics. I built solutions to the problems in my non-tech job and shared them with everyone in my friend's group. They helped me make them better.

When I started applying I let my friends know and they were all checking with their companies and their friends companies they reached out to me about opportunities and I was able to skip the recruiters and the résumé portals.

My first tech job was for Elastic (makers of elasticsearch). I had played with it once to create a search page but I was able to take the knowledge from my marketing and eCommerce to explain that I could do the job (which is to help developers at current and future customers, most of which that aren't tech companies)

Stop looking for FAANG level jobs and look for jobs people are not thinking about

The other mistake I see is folks only trying to game theory their way into FAANG jobs. There are jobs out there. Many of them are not glamorous or with big names. Honestly we don't know because we're consumers. Business-to-business is a different industry that markets different.

My first job was a company that sold cleaning and janitorial supplies (from toilet paper to floor buffers and large machines). I saw the trucks for this company everywhere but no one ever knew the name of the company that was on the labels of the urinal trays they were peeing on. (That visual is intentional. Think about the name of the company that you see all the time and you're like I wonder if that is a $600 Million dollar company)

Urinal Tray

Imagine the technical complexity in a company that does construction or large scale landscaping. What needs do your local government services need, like trash pickup.

I know of folks who have worked in their local government for years. The pay is decent not great, so they rarely have layoffs making it relatively stable. (LOCAL not FEDERAL, I understand that not all governments are a safe option)

Job-adjacent jobs

I'm not a software engineer (unless someone not in tech asks me what I do). I'm a developer advocate.

Make sure that you aren't looking at just software engineering roles. Find a niche that you enjoy. This can be roles documentation, QA/Testing, data, administration, analytics, UX, marketing, and yes, EVEN SALES.

Sometimes these roles can lead to being able to transition internally into a developer role. Or maybe you enjoy the work you're doing and stick with it there.

Doing this gets you familiar with their work language. PMs will want to work with you if you know their needs and can address them in your work. Same for data analysts, web developers, DBAs, Product Marketing, etc.

The biggest thing I look for when I'm interviewing someone is "CAN I WORK WITH YOU?". If you have an ability to work not only with your teammates but the folks that there is often friction with, you will be a valuable asset.

Community and Network are you friend

I know a few people (myself included) that got the interview because of a friend of a friend.

This means that my friend knew of an opening and told the person to reach out to me.

Here are my two caveats with this.

Your friends are not your recruiter

Bad Attitude

I promise you this. I'm going to recommend my friends who I know can do the work because I know they are great people with good work ethic and strong moral character. This takes time to build a relationship with folks and doing it for the sole purpose of getting a job will not work (at least not with me).

I've had several folks join this community and DM me asking for jobs and I've never seen them post in the community or online about what they're learning or how they've helped others. It is quite literally the first conversation I've had with them.

I'm not going to have those conversations with my friends about others looking for work until I know the person would be an excellent choice for a role.

I have recommended several people in the past not ONLY because they were my friend but because I know they are capable of doing the work.

Volunteering and contributing to the conversation are amazing ways to build your network

The people I've put my reputation on the line for are folks that are learning and sharing things publicly. They offer to get involved and volunteer for things.

If they don't have time for that level of commitment, they answer questions to the best of their ability.

They share about things they've learned recently or even just retweet or boost a message or try to help grow communities they don't belong to.

That is all to say being a contributing member to the community is often a way for people to appreciate your efforts and return the favor your way.

This isn't guaranteed

Getting a recommendation isn't a guarantee nor will it ensure you get the job. I was rejected for about 6 of 10 recommendations, but I was still able to get good feedback about my interview which is something incredibly valuable.

Stop focusing on all the new stuff and learn some old tools

Did you know Bootstrap (not tailwind) is the most popular CSS framework. Python is great and used a lot but it's not the thing driving most the websites on the planet. Thats HTML and JavaScript and most importantly PHP.

Drake Meme preferring old technology

I’m not saying to not learn Python but knowing a little PHP or at least how to read what’s going on will help you.

On the dataside, learn the classics like how to write basic queries in MSSQL, MySQL, and PostgreSQL. There are way more companies using those traditional relational DBs more than Firebase and Snowflake or DBs less than 10 years old.

Remember that most companies are behind on their tooling. So when you’re learning Django 5 make sure you can push down to Django 3 and 4. Have good reasons to why you might want them to upgrade and show that you have experience in making those transitions.

Open source EVERYTHING YOU CAN

The best way to do this is to have your open source playground.

My GitHub account is my greatest portfolio. I know I'm getting into the next round of interviews when they ask about a time when I blah blah blah and then I can link them to a GitHub repo or blog post I made showing how I solved problem. Even for my first job, they saw how I solved marketing problems with Python and evolved those solutions over time. They also saw that I had published my solutions as blog posts or even super small Python packages.

This is a tangible record showing that I'm willing to make the team better and get folks contributing, not just doing things by myself.

How do you start doing this

When you learn something add it to your blog or microblog. It doesn't need to be fancy. It can even be a gist. I write gists for so much and share them with folks if they need to see it or learn from it.

Make notebooks with steps on how to do things. Share them on your website or social media.

Finally, share your personality and style and start speaking at meetups like our weekly Coffee and Code.

Meetup recordings are powerful because they show that you don't just know the information but you are also open to sharing it. They are also easier to get to speak at over conferences.