Fork me on GitHub
#jobs-discuss
<
2017-03-28
>
andrewboltachev00:03:01

Hi guys. I've gone through some discussions back there. Does anyone really agree that Clojure has more open positions than specialists to occupy them?

cjmurphy01:03:42

I would think the opposite, more people than jobs, certainly for remote work.

andrewboltachev01:03:06

well, same here 🙂

seancorfield01:03:27

I would say there are a lot more people who want Clojure jobs than there are actual jobs.

seancorfield01:03:00

But that includes a lot of people with no-to-little actual Clojure experience who want to write Clojure for a living.

seancorfield01:03:54

The relative youth of Clojure means that for companies wanting to hire senior Clojure developers, they’re going to find the available pool rather small.

seancorfield01:03:21

So I think it’s a bit of both: more senior jobs than there are senior people and a lot more non-senior people than there are (non-senior) jobs.

cjmurphy03:03:16

I guess that 'senior person' is not something that can be easily tested. If I can offer an opinion on the 'supply side' of that equation - I would recommend trying out and then looking at how senior Clojure programmers have completed the Advent of Code problems. Compare your code to someone senior's code and note the difference and learn to code their way. I know I was too easily falling into the trap of too often using recursion and reduce, where a more senior programmer would know and immediately use other constructs that resulted in must less code.

bja03:03:23

less code isn't necessarily a good measure of seniority

bja03:03:51

"good" is often a temporal quality

bja03:03:05

what is good for 15 minutes of work might not be good if a week was spent on the issue

bja03:03:40

what might be short might not be space efficient, cpu efficient, cache-friendly, etc

bja03:03:43

I've witnessed a lot of code in my (relatively short 15 year) career that was good for awhile but didn't cut it later due to changing network, hardware, or business requirements

bja03:03:11

as an aside, I prefer to give a hastily written namespace or two with some questionable decisions as a refactoring + add a feature assignment

bja03:03:28

and then probe for why decisions that get made are made

cjmurphy03:03:12

Yes hard to test for senior with relatively straightforward problems. But the person whose code I chose as the best for me to learn from also happened to be quite senior indeed by all measures. Don't want to give the name away. I though he had the best looking code - I like to think I was unbiased, but undoubtedly was not.

cjmurphy03:03:58

@bja: sounds like a really good idea - testing ability to maintain as well as do things from scratch.

bja03:03:51

@cjmurphy I find that I deploy more code that I have maintained versus code written from scratch

bja03:03:00

also, unless you are finding a very early stage technical cofounder or first-employee type person, I don't often see the need for new people to build stacks/templates from scratch

bja03:03:25

I guess some places that are heavily microservice-oriented might do some of that, but I can't imagine your ops team would be super happy without integrating at a few common points like logging/metrics/databases

bja03:03:06

especially if your ops team is a guy named Eric who has a Super Soaker and knows where you sit

cjmurphy03:03:10

Writing functions that process data structures also can have a 'from scratch' quality to it. You only have to understand the data structure right? Anyway AofC helped to give me more choices - such as reductions, iterate - new ways to solve problems.

ejelome06:03:59

Clojure jobs does not exist, or maybe sometimes it does, but in a typical sense, no. I wouldn't really bet on employability with Clojure because it's just too risky small, and only unless you're very very very good. Add the fact that companies who opens one expects a higher quality candidate, which likely is only 1% - 3% of the pool (the percentage I just made up)

cjmurphy07:03:22

@ejelome: I wonder if this 'very high standard to be considered senior' is a particular Clojure thing? For instance do people say the same thing about Scala?

ejelome07:03:04

I'm not sure in Scala, but it's very typical in Clojure, someone exceptional is a very common requirement, but well, who doesn't want exceptional 😄

tjg09:03:10

Might also want to count language-agnostic companies looking for their first professional programmer. I did that and chose Clojure. Got someone hired to join me.

tjg10:03:47

Also helps to look deeper at the team you want to work with. ("Clojure" is just 1 constraint.) Another constraint may be "I hate maintenance programming!" That could favor looking at companies looking for the 1st professional dev.

jstew12:03:58

I would wager that someone who is good at clojure is a good all-around programmer. Clojure (or any other LISP/FP lang) requires more thinking than imperative languages. If I were in charge if hiring and I saw that someone has a few clojure or haskell projects under their belt, I would want to look at that person more closely.

jstew12:03:33

Even if it's for an only slightly related position. Chances are, that candidate will get up to speed fast and be a better programmer over all.

nilrecurring12:03:58

We actually do this at my company (hire/place people with Clojure experience for working on something else), and to my experience you’re right (context: we’re a consultancy)

nilrecurring12:03:08

The downside of this is that going back from Clojure/Haskell to something else (read: not nice functional stuff) is very painful for me as a developer/programmer/engineer

jstew12:03:08

Agreed. I write Ruby and Node for work, and do all of my personal projects in Clojure, and it's a painful thing to have to switch back and forth.

tord13:03:24

My experience is that Clojurians are hard to find. We've recruited for (in my opinion) very attractive junior developer positions here at Play Magnus two years in a row. We use Clojure (albeit not exclusively), and we posted here at the Clojurians slack both years, but we didn't get a single candidate with interest or experience with Clojure either year. Our pick from last year is happily hacking Clojure now, though.

socksy13:03:41

this is why you work for the cooler java companies... Clojure is just a jar, right? ;)

bja13:03:17

@tord agreed. I've adopted several .NET and Java developers into my Clojure teams over the years

bja13:03:03

it's not that hard to find someone with only a mild allergy to parens

tord14:03:26

I filtered for paren allergy during the interviews. I gave them the exercise of drawing a Koch snowflake in Dr Racket, teaching them as much Scheme as they needed along the way.

jstokes16:03:11

just some context around the “clojure jobs don’t exist” - i came from one of the “cool java shops” that also dabbled with some scala/clojure, and had a few choices for the next FT clojure job

slipset18:03:21

@tord: good thing I didn’t apply for the job then. I have no clue what a Koch snowflake is, and probably would have failed miserably in the interview.

tord18:03:46

@slipset: I explained what a Koch snowflake is too, of course. simple_smile https://en.wikipedia.org/wiki/Koch_snowflake Easily drawn with a dozen or so lines of turtle graphics in Dr Racket.

slipset18:03:54

Yeah, I just looked it up in wikipedia 🙂

tord18:03:22

And trust me, you would have managed just fine. simple_smile

slipset18:03:40

Or, I might just have managed to talk my way out of it 🙂

slipset18:03:18

But then again, I guess you’d arrest me in the discussions about the finer points of the pawn gambit 🙂

slipset18:03:00

Would make for a great discussion around Koch triangles as well.

tord18:03:57

@slipset: No, haven't watched it. Too busy right now, but will bookmark it for later. Thanks!