How to become a software engineer 2022

Ben Blaine
7 min readJan 29, 2022

For some reason people keep asking me this in DMs, although I’ve never been a full time software engineer myself (I’ve hacked some web apps together in my life but nothing worth mentioning).

It might be because I was an early employee at OfferZen and was the Talent Advisor for the first 100 developers we placed in jobs.

During that time I spoke to a few thousand software engineers about their careers, from people who wanted to start coding to people who had built systems used by millions, and I helped them think about what they wanted to do next with their career and find a job (through OfferZen’s process).

Anyway, people ask so I give them my opinion although I warn them that they could probably get better advice elsewhere. That being said many have got back to me later thanking me and letting me know they got their dream job after following some of my advice, and that the push I gave them helped.

Here goes…

Learn voodoo

Breaking into tech can require a bit of “voodoo magic”. Some people seem to almost fall into tech jobs whereas for others it’s an uphill battle. I think the problem is that some people think that getting a tech/dev job simply requires you to know how to code. Sometimes only knowing how to code can work, and definitely you do need to know how to code well. But pouring all your energy simply into learning how to code is quite likely to limit your ability to land a dream job, or any job at all.

Coding and building software is done in a business to solve problems. To solve problems you need to be able to understand problems and people who have problems, translate those problems into solutions and translate those solutions into code. That’s the voodoo.

So break it out into three different things you need to practice: talking to people about problems, coming up with solutions using their insight and converting those solutions into code.

Ideally this is practiced as a cycle: build, measure, learn. But it’s hard to get exposure to all of these things at the same time — unless you’re lucky enough to build something that people immediately start using — more on how to try do this later.

Also, on making a fool of yourself: I’ve got countless memories of times I felt I made a fool of myself. I’m sure many times I did. However many times when I thought I made a complete ass of myself, I actually had people reach out to me later thanking me for doing or saying the thing I did.

Don’t wait for permission

But first a bit on the approach.

Every time I’ve made things happen in my life I’ve ditched hanging around waiting for someone to give me permission or “the nod”.

Rather ask for forgiveness than permission. Otherwise you might be waiting till you’re dead.

I’ve heard that some people struggle with feeling that they don’t want to make a fool of themselves by putting content out that looks stupid or low quality.

It’s better to dance like a fool than to stand around looking like an idiot.

You need to dive in and get your hands dirty in various ways. By being willing to break the rules and make a fool of yourself, you gain a massive advantage over other candidates out there currently trying to get the same job you’re going for. Focus on how you handle failure, not on success.

Coding boot camps

Don’t let a coding bootcamp or anyone dictate how fast you learn. Everything you need is online.

Joining a coding bootcamp is a good idea to surround yourself with like minded people and make connections, but you can get started learning tonight without joining anything.

That being said it’s important to know that people come out the other side of coding bootcamps and struggle to get employed. So you can’t rely on this as a route or you’re likely to tank.

This is a great roundup of coding bootcamps in South Africa in 2022: https://www.offerzen.com/blog/2021-guide-to-coding-bootcamps-in-south-africa

Coding courses

I’ve found doing coding courses useful in the past as a way to start building a habit of coding every day. You can just open the course and get going. I’ve also maxed out at around 1 hour a day of course work. Academics was always quite a bore to me after a certain point — I suddenly have a desire to get my hands dirty and struggle to focus. The course helps to get the wheels turning and gives you a reference point for interactions with a project or other developers.

I’d recommend this course as it has the aim of actually teaching you how to get employed https://zerotomastery.io/blog/learn-to-code-in-2021-get-hired-and-have-fun-along-the-way/

Other than that I don’t know much about courses. The courses I’ve done are usually just the free ones (Ruby on Rails and Django).

Build things for people

When I started teaching myself to code (for the 5th time) after I left SnapScan a few years ago, I started working through some online free course on Ruby. It was great to learn the fundamentals, but it didn’t give me drive (a feeling of autonomy, mastery, purpose).

A tech founder I knew heard I was learning to code and he challenged me to build a real product — essentially a bitcoin arbitrage bot. This really gave me something to do as well as do my course. Being able to bounce between “studying” and “building” meant I could switch when I was bored — but keep learning to code and build software systems. Having someone interested in what I was building helped me gain experience getting feedback which is critical in the workspace. After that experience, he hired me.

I was lucky knowing someone and being approached. If you don’t know anyone, approach CEOs, CTOs and devs on LinkedIn and ask them if they have any challenges for you to build a tool they’d like. They’re often too busy building companies to try out some of their crazier ideas and if you can put in the hours and they can advise, it’s appealing to them. This is better than making up a random idea that no one is interested in and includes learning to network and get customers. Build it for free if you have to.

An example is the CTO of The Delta, @Jared Wesner, who made a simple plugin to get @OfferZen updates in Slack — you can read about it here: https://www.linkedin.com/feed/update/urn:li:activity:6891832953157025792/ — that lead to recognition from the OfferZen team when he posted it online — a great way to connect.

Keep it simple! You don’t even necessarily need to code much (or at all). Use Google Sheets if it’s easier.

And remember you don’t need permission — Jared didn’t ask OfferZen for permission to build this useful integration into Slack.

Hack recruiters with Github green blocks

Create a Github profile and start adding to it every day — even if it’s just one line of code or even updating a readme. It helps if you have a lot of green blocks on Github because recruiters look at this when filtering CVs. If you get to the stage where engineers are reviewing your profile I this is what they’re looking for…

@Outis from zatech.co.za Slack had this advice about GitHub profiles:

  1. The signal we’re looking for on a git repo is consistent work on some idea. That can be in chunks. It doesn’t have to be daily. But I want to see the development of the project over time.
  2. My big piece of advice is have something live. Show you know how to get something from your repo to the public. And I cannot emphasise this enough — make sure nothing is broken.

Hack your nearest coding community

A great way to practice talking to other devs if you’d not already is to join a dev community such as a Slack group. Look out for channels like #startups, #devs, #coding and language specific channels. Then engage in these channels. Try to solve problems or questions asked by people, or ask for help in these channels.

An active local community in my country is ZA Tech (zatech.co.za) but you can also look for local meetups on meetup.com.

Do #100daysofcode

A fun thing to do if you want motivation to write code every day and build your Github profile is #100daysofcode https://www.100daysofcode.com/

Also post about your progress online such as on LinkedIn as that will give people a chance to notice your effort and progress — and to comment on it and connect with your journey. Post about what you learned — imagine someone who is thinking about taking your journey reading it and getting inspired to take the journey and post what you think will be useful to them.

And get Twitter too and follow devs and others that are posting their learning journey.

Start reaching out to devs now

I think reaching out to software developers working at companies is a good idea — and asking them for advice. That way you get on their radar now and build relationships. When it comes time to look for work you’re not starting from zero.

Remember to ask them if they’re working on any side projects and if you can help contribute. If you can work with a dev now and get their feedback on your code and work thats going to help a lot to building your understanding of how devs work.

Get a degree. If you can.

It’s not a necessity but it does open up new doors and automatically get you shortlisted for interviews and gives you much higher chances for international mobility. It does also take quite a bit of time, usually three to four years for a solid Computer Science degree, so this can be a slower route if you’re looking to accelerate things.

This advice was provided to me by @Kuerz on ZA Tech when I asked for feedback on this article.

Ok but what about a job?

If you’re lucky, following some of the steps above will lead to some opportunities. But otherwise here are some ways to get opportunities:

  • Apply to OfferZen or a similar head hunting platform
  • Apply to jobs on career pages
  • Get a list of companies and connect with their dev team on LinkedIn and start conversations with them — ask them what it’s like to work there, how they got their job and what you need to learn to stand a chance of landing a job there.

--

--

Ben Blaine

South African tech jobs, communities, ecosystem 🇿🇦🌱💗 Work: @offerzen , @snapscanapp