Go skills are a hot commodity on the engineering job market. Right now on Triplebyte, the newcomer back-end-oriented programming language is the fifth most popular kind of tech stack experience that recruiters filter candidates by. In total, Go has been included in over 21% of all such searches on the platform since the beginning of the year.

But even though engineers themselves display as much of an interest in Go’s simplicity and power as tech companies, they aren’t running out to learn it. The language is merely ranked 20th for skills listed by candidates on Triplebyte (with only ~4% claiming experience with it). And this is while roughly half of engineers on the platform claim some experience with back-end development.

Go experience.png
Triplebyte candidate data.

So how are companies who want to “Go” all in dealing with this seemingly problematic shortage of skilled-up engineers? And if you’re a back-end dev reading this now who doesn’t know Go, should you run out and learn it immediately? I spoke to several engineering managers hiring for Go engineers right now to find out.

Related: How to choose your engineering specialization

What’s behind the Go engineer shortage?

Go was developed by Google, with its first full version getting a public release in 2012. In the following few years, the language started making its way beyond the search giant’s services and into the tech stacks of other trendy Silicon Valley companies.

Early adopters like Uber praised Go’s speed, simplicity, reliability, and its static typing. It wasn’t long after the good word on Go got out that companies of all shapes and sizes started wanting in.

“Go ticks all the boxes,” software engineering manager Stephen Pittman told me. His company, Merit, is in the process of converting from Scala to Go.

“In some ways it's the polar opposite of Scala,” he said. “It's a simple language, where there’s generally one way to do things. It’s fast. And it's kind of cool, right?”

Mind you, this mass adoption of Go on the company side is happening early in the language’s life, before it’s had a chance to gather many on-the-job learners and well ahead of it becoming a standard in engineering education. (For context, Python’s boom began in the middle of the 2010s, when the language was already over 20 years old.)

All of this is why (or at least why it feels like) there are more job postings today for Go engineers than experienced Go engineers available to fill them.

The back-end language you can easily learn on the job

Luckily, the whole part about Go being a “simple” language makes it a great fit for engineers to learn it at work quickly. Good hiring teams know this, Mixpanel director of engineering Aniruddha Laud told me.

“I would say 90% of the people that we’ve hired did not have prior [Go] experience,” he said. “And every one of them was able to pick up Go within a few months and become very proficient in the language.”

Even’s director of engineering, Aseem Kishore, told me that his company doesn’t necessarily seek out candidates with Go skills, either, despite Even being a full “Go shop,” as he put it.

This is an important difference with Go hiring. Because though companies commonly avoid hiring engineers based on specific languages or frameworks, it can often be necessary to get language-specific for hiring back-end roles.

“If you've used any language, Go is probably easier than that language that you've used. That’s not true for, you know, Clojure,” Laud said. “If you're an online shop who uses Clojure heavily, bringing someone along to train them to be a good Clojure developer is going to be a long path. With Go, that's not true.”

He added that Scala and Haskell are two other languages that can require costly ramp-up time for new hires if they don’t already have prior experience with them.


package main


import "fmt"

func main() {
  fmt.Println("hello world");
}

A snippet from gobyexample.com. Go can be a more verbose language, but its “one way to do things” method makes it easier to learn and code-review.

Laud’s takeaway advice for back-end engineers without Go experience: Don’t shy away from applying to Go jobs.

“Experience building performant back-end systems and infrastructure and distributed systems – that is the main thing we look for in hiring,” he said. “If you have experience using Java, or a bit of Scala, C#, C++, it means there’s a very good chance that you can easily understand how Go works.”

But demand remains for ‘Gopher’ experts

Though some companies are happy to teach Go to new hires, there are still big (and profitable) opportunities out there for Go experts, or “Gopher.” as the language’s budding dev community has dubbed them.

“We're looking for someone who knows and has used Go, who can train the entire engineering team on standards and how to best use Go according to its strengths and weaknesses,” Merit’s Pittman said. He admits finding the right person could take a little time.

“We think that hiring people for a specific language is not the way to go in general. But, given this major strategic shift [toward this young language], we're breaking that rule.”

The numbers show that there is no shortage of companies who at least aim to hire for Go engineers this way. Hired’s most recent developer survey reported that experience with the language got candidates an average of 9.2 interviews in their engineering job search last year – the highest of any language skillset.

Related: The AI skills that generalist engineers should consider learning

And don’t think for a second that companies who are willing to hire Go engineers without Go experience wouldn’t still jump at the chance to bring in someone more familiar with the language if possible. Even’s Kishore admits prior experience is definitely still “a bonus” for a candidate in their Go hiring process.

And to be clear, being as competitive as possible for one of these jobs means a better chance at putting yourself in one of the highest salary tears in the industry. Stack Overflow’s 2020 developer survey reports Go engineers grab an average of $140K a year, taking a backseat only to Scala engineers, who make an average of $150K a year (but who also have to program in Scala, so meh).

Where do we Go from here?

It’s true that programming language fads come and … go. But since Go can bring a lot upside to varieties of tech stacks _and _it’s simple to learn, that gives it staying power and growing power.

We're betting on the language, said Pittman. That's a good way to put it.

If you’re interested in finally getting in on the Go wave but haven’t yet, don’t be bashful about applying to a Go engineering job and showing why your background makes you a great candidate for ramping up with the language quickly. On the other hand, if you want to be as competitive as po$$ible on the Go market, it’s not a bad idea to get started on learning it yourself and contributing to some open-source Go projects. Sure, learning new languages for free isn't everybody’s cup of tea, but something tells me the supply and demand condition ballooning Go salaries today won’t be around forever.

Discussion

Categories
Share Article

Continue Reading