What do I have to learn to be hirable in Clojure?

July 22, 2016

Summary: You actually need to learn nothing. But it's more complicated than that. This article will show you what can set you apart.

From a reader:

I'm currently working as a software developer in Ruby but I would love to work in Clojure, though I'm still a beginner. Unfortunately, I don't think my company would switch to Clojure any time soon. And I also don't have much free time to work on Clojure. What do I have to learn to be hirable in Clojure?

This is kind of a trick question. The reason it's a trick question is technically you need zero Clojure knowledge to get a job in Clojure. I know this because I just met someone who was hired right out of a Rails internship into an existing Clojure codebase. 1 He had absolutely no Clojure experience.

I talk to a lot of people who work in Clojure and are hiring for Clojure. There's two broad categories of experience requirements for those jobs.

1. They want experienced Clojure programmers.

You'll find jobs like this for a couple of reasons. Sometimes they want to replace an experienced programmer who is leaving. And sometimes they're just starting up and want to hit the ground running. I have also seen it where the CTO likes Clojure but wants someone better than them because Clojure is new ground.

For these jobs, they're really looking for someone with a solid Clojure skills. But there's a secret I'll reveal at the end of this article.

2. There is no Clojure experience required.

This category is more interesting. You'll often hear them say they're "looking for good people". They know it will be hard to find experienced Clojure programmers.

For these jobs they are willing to invest time and money making you a Clojure programmer. You will be paid to learn Clojure, often working with mentors.

Clojure experience will help, of course. I can only imagine the second type gets way more applications, so you'll want to stand out. But still, you don't need Clojure experience. Here are some things that will make you stand out. These are arranged roughly in order from the most powerful to the least.

1. Clojure experience.

"Finished"2 projects on Github.

These don't have to take long. They don't need to be complicated. Just show that you can make things happen with Clojure.

Bonus points for

2. Other Lisps

At the very least, this shows that you know what you're getting into. Even a college course or some completed exercises in SICP would help.

Bonus points for

3. Other Functional Programming experience

Haskell, Erlang, Scala -- heck, even functional JavaScript or Java 8 streams will be impressive.

Bonus points for

4. JVM experience

Clojure runs on the JVM, and there's just a lot of little details about how objects work, how the JVM is deployed, and all of that stuff that comes in handy when programming Clojure. It could help you stand out a little.

Bonus points for

5. JavaScript experience

If you're going to use ClojureScript at this job, knowledge of the browser, the DOM API, and all of the issues with JavaScript deployment will be helpful.

Bonus points for

6. Multiple languages

If you're going to be learning a new language on the job, show that you can actually do that. The best candidates will have at least 4 languages under their belts with a variety of paradigms.

Bonus points for

After all this, the number 1 reason people don't get hired is they don't apply to enough jobs. Get your resume together, trudge through your work/school/side project memories and find things from the list above to highlight. Then apply to lots of jobs, bring those things up in the cover letter and interview.

The little secret that I hinted at before is that even jobs that are looking for experienced Clojure programmers often will hire smart people who are excited to learn. Requirements are just a suggestion. So go apply!

Here are good sources of Clojure jobs:

The only other thing is that getting jobs is also still about who you know. There's a lot to say on that, and you've got more of an advantage than you probably know.

You might also like

  1. Seriously, I never would have thought there would be multiple companies hiring for Clojure in New Orleans. They all happened entirely without me.

  2. If you're like me, projects are never finished. But a "finished" project accomplishes some goal. It's useful and it works.