First it was the market, and now it's AI. Let's face it, landing a developer job nowadays is challenging, even for non-JavaScript positions—and it's even harder for junior developers!
So the question is: How can you stand out?
Most software developers gravitate toward JavaScript and Python because, although they are not the easiest to debug, they are the easiest to learn. Guess what? Large Language Models (LLMs) excel in these languages as well. By choosing less common languages like Go, you're already improving your job prospects. Just to be clear, I'm not saying these languages are bad; every language has its pros and cons.
If you're a junior Go developer, you likely started by building some ORM-based backends in Go. Think about it; it's what everybody does: it's easy and familiar. But this approach does not help you build the real skills that set you apart.
Go is very popular in infrastructure; just look at Terraform, Kubernetes, and many other extremely popular projects—they are all built in Go. Some, like Kubernetes, even have a pure-Go policy.
I hope at this point you see where I'm going: If I have in front of me a list of candidates and one of them demonstrates they can go beyond the ORM use-case, that person will definitely get an interview!
Now, without professional experience, how would you demonstrate or at least signal that you're a Go-wiz? The answer is simple: contributing to open-source projects.
You have to choose the projects you'd like to contribute to very carefully. Larger projects may not have many issues for a junior developer; however, it might take forever to get your PR merged, if it even makes it there.
The great news is there are a lot of newer projects in the infrastructure space. These projects have easy-to-tackle issues and will be more willing to work with you and even merge your PRs very quickly.
Here are a few projects you should consider:
- Tau - Open-source Cloud Computing Platform on Autopilot.
- Drand - A Distributed Randomness Beacon Daemon - Go implementation.
- KCL - KCL Programming Language (CNCF Sandbox Project).
- Fury - A blazingly fast multi-language serialization framework powered by JIT and zero-copy.
- Camel-K - Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers.
Before you dig in, a few things you should keep in mind:
- How complex is the setup: Generally not an issue with Go projects unless you see a Makefile at the root of the repository.
- How many contributors: If the project has a lot of contributors, you should expect a longer time for your PR to get accepted.
- Is there any issue with the 'good first issue' label: You don't have time nor enough knowledge of the repository to create your own issue.
I hope this advice helps you enhance your Go skills and boosts your chances in the job market!