Job hunting, interview process and anything related to the experience of a job writing the Clojure language.
seancorfield 2020-03-06T00:16:56.082700Z

(back from a doctor's appointment and catching up...)

seancorfield 2020-03-06T00:18:21.084400Z

Yeah, I think it's a fundamental problem that most companies seem to completely overlook: how you solve problems at work is completely different to any interview environment. Even the trial pair programming sessions, since you're suddenly thrown into a new environment with a new teammate, and you're still under "interview" conditions because you're being "tested".

seancorfield 2020-03-06T00:20:15.086300Z

And as @thom704 says, how do you deal with take home tests if you don't normally program at home because you have a full home/family life? A lot of people don't actually have a "work-equivalent" computer setup at home -- so expecting them to be able to produce any sort of non-trivial "app" at home may well be completely unrealistic.

seancorfield 2020-03-06T00:21:45.087900Z

It just shows how much bias companies have around hiring: there is an underlying belief that "every" developer should have a "development system" at work and/or should be able to switch into "development mode" in any environment with no notice. Both of these are simply not realistic expectations.

seancorfield 2020-03-06T00:23:31.088500Z

(this is all part of why I do not put candidates through any sort of coding test)

Cameron 2020-03-06T01:14:45.088700Z

There also seems to be some sort of strange hazing mentality, or at least a weird satisfaction many have in disqualifying someone, as if somehow that's proof something is working because so many can't pass it. I'll see conversations where someone is bragging about what single factoid they're checking for because 'omg if you haven't heard of this by uni 101 you can't program for shit bro', as if you can really correlate any one or two data points with overall programming skill that easily. I feel like there's a lot of superficially treating strength as a scalar, that one either has or hasn't, when its really a vector, with a billion different useful directions (including an infinite amount of directions that haven't been explored, that one day someone will pioneer and show to be useful) and its useless measuring some vector going off in a direction completely unrelated to your work (albeit close, superficially), as is often done with a lot of these tests. I'm gonna go hire a bodybuilder by seeing who can bench best with their feet

Darrell 2020-03-06T01:26:54.090500Z

Excellent analogy @zdot101

Darrell 2020-03-06T01:29:49.093Z

There was a good post to Hacker News recently by a guy who was lamenting the state of tech interviews. In his follow-up post he said he heard from so many people about how broken it is. But what was surprising was that many of those people were the hiring managers themselves. Even they acknowledge that the way we conduct interviews is ineffective and broken. So it seems like we as an industry whole dislike it but for some reason there are too few who are willing to do anything about it. Someone on HN suggested it was because FAANG companies do it so everybody wants to be like them. I’ve never interviewed at one of those companies so I don’t know. Seems like a plausible theory, though.

seancorfield 2020-03-06T01:44:37.095900Z

I interviewed with Google years ago and stopped the interview about ten minutes in and switched the topic to hiring practices and interview technique because it was exactly the sort of broken approach that they've been (rightly) widely lampooned for. I gather they've changed their interview process these days (to some degree). My experience with early screening by both Microsoft and Amazon suggests they're way better than Google. I have never gone deep enough with either of those to see whether later rounds are just as bad.

seancorfield 2020-03-06T01:45:49.097100Z

The thing is, even they complain that their hiring practices don't seem to be successful -- they have a high churn rate and quite a high post-hire termination rate for candidates that aced their stupid interview process but then didn't actually work out on the job.

seancorfield 2020-03-06T01:47:06.098500Z

I've never had to let someone go for competence-related reasons after they've gone through my interview process. I've been a hiring manager to some degree for about 25 years at this point. Everyone I've hired has worked out well in the job.

Darrell 2020-03-06T01:54:40.099200Z

Based on your interview mind map I gather you’re able to get a pretty good feel for whether the candidate is a competent developer AND whether they’re someone you want to work with.

seancorfield 2020-03-06T02:15:07.101900Z

Yes, and mostly I try to get the candidate talking about work they've done, problems they've had, interpersonal stuff, some opinions on technology and practices. If they're a good fit for the team/people/company and they don't raise red flags based on the areas I like to discuss with them, I figure we can always mentor them on some stuff if they have weaknesses in actual coding.

seancorfield 2020-03-06T02:15:32.102500Z

I start in the top-right and work my way down that side, then switch to the top-left and work my way down that side.

seancorfield 2020-03-06T02:16:27.103200Z

By getting candidates to relax and just "chat" about a wide range of stuff from their past work experiences, you can find out a lot about them.

seancorfield 2020-03-06T02:17:40.104100Z

I've used that mind map for about ten years I think...


rseq 🙂

hindol 2020-03-06T04:30:56.107600Z

Here is a guide to interviewing from Joel Spolsky of StackOverflow fame. I find his blog fascinating. Do read his article on estimating time.


That's true. I am lucky that Cursive still run well on my 2011 mac book air.

seancorfield 2020-03-06T04:33:49.108Z

My non-work machine is a little Dell XPS 12 from about the same era 🙂

seancorfield 2020-03-06T04:43:15.108300Z

"But in general, the way to learn the most about a person is to let them do the talking. Give them open-ended questions and problems."

seancorfield 2020-03-06T04:43:38.108900Z

(I disagree with Spolsky on a lot of things but so far this article seems solid 🙂 )

seancorfield 2020-03-06T04:44:18.109200Z

Aw, and then he goes and spoils it

Easy Programming Question
Pointer/Recursion Question

hindol 2020-03-06T04:54:31.111600Z

I forgot what he exactly said about these two points, but an easily solvable question is not too bad. In another article he praised FizzBuzz as such a question.

hindol 2020-03-06T04:55:23.112900Z

And the article is from 2006, so pointers must be a thing back then.

seancorfield 2020-03-06T04:55:26.113100Z

And then he devolves into programming exercises on a whiteboard... so sad... he was doing so well until about halfway through 😞

seancorfield 2020-03-06T04:55:50.113600Z

Pointers are still a thing. They're just hidden now.

hindol 2020-03-06T04:56:15.114400Z

For me the gist of the article is, hire smart people who get things done.

seancorfield 2020-03-06T04:57:59.115700Z

Yeah, and that's fair to a degree. Part of my problem with Spolsky is that he makes out his company only ever hires "A+" programmers -- but that's what a lot of companies try to tell you "we only hire the best!" and that's such a b.s. attitude.

seancorfield 2020-03-06T04:59:23.117Z

It's like the whole nonsense about the "10x programmer". You can't have a company full of those -- for all sorts of reasons (not the least of which is that "10x programmers" are stupidly rare!).

hindol 2020-03-06T05:00:39.118Z

10x programmers may also like to work in isolation, I think.

seancorfield 2020-03-06T05:01:13.118400Z

Which does no company any good...

hindol 2020-03-06T05:03:44.120500Z

But I do agree that programmers should not be treated as interchangeable. In reality, there might be 2x programmers, 😂

hindol 2020-03-06T05:03:55.120800Z

But not 10x

seancorfield 2020-03-06T05:05:25.122500Z

I've worked places that assumed programmers were interchangeable -- it's unpleasant. A good team is diverse in many ways, with complementary skills and approaches.

hindol 2020-03-06T05:06:45.124100Z

From my experience of giving interviews in different places, tech divisions of non-tech companies tend to do that.

hindol 2020-03-06T05:07:06.124500Z

But my experience is limited.

seancorfield 2020-03-06T05:11:11.126800Z

I worked in England for most of two decades and I've been in America for two decades now. And I've been a hiring manager of some form for close to 30 years now I guess... across a range of industries... I'm very skeptical at this point 🙂

hindol 2020-03-06T05:12:08.127200Z

My experience is limited to India.


I believe that there are 10x programmers ... it all depends on with who you compare them 🙂


I love to compare myself to my cat, for example.

hindol 2020-03-06T05:15:03.129800Z

That's also true when I compare myself to Rich Hickey.

seancorfield 2020-03-06T05:16:04.131100Z

My dealings with India have been at a distance. When I first moved to the US, the company I was with experimented with hiring through an Indian agency (a very poor experience). Then I moved to Macromedia who had an excellent facility in Bangalore and the teams there were great to work with but they mostly operated outside our office hours and we outside theirs. I wasn't senior enough then to visit the facilities in India (my direct manager went out there quite a bit).


Did you name your cat Rich Hickey? :rolling_on_the_floor_laughing:

seancorfield 2020-03-06T05:16:50.132Z

(then Adobe bought us and they had a large facility in Noida, set up much the same as Macromedia's Bangalore facility)

hindol 2020-03-06T05:22:09.132500Z

My cat is fluffier than Rich's hair.

gibb 2020-03-06T08:11:31.134400Z

How should you prepare to get a remote clojure job? I'm an experienced system architect and Java / Go / JS programmer with fp aspirations, but I'd like to come prepared. Any tips?

slipset 2020-03-06T09:41:49.136300Z

There is some good points on hiring in the latest cognicast

slipset 2020-03-06T09:42:37.137300Z

And to address a very specific point somewhere high up in this discussion about javascript and connecting to mongo.

slipset 2020-03-06T09:44:58.139700Z

We work in Clojure and have mongo as our database. I've been working here for 2.5 years, and I have no clue how to connect to mongo from Clojure. Reason is that this was already done before I arrived, I haven't had a need look at/fix that code, and doing the connection-setup is something you're likely to do only once during a projects life-time, so it's not anything I keep in my working memory.

slipset 2020-03-06T09:45:25.140300Z

To be fair though the OP said that the candidate would have google available, so I should probably be able to figure it out.

slipset 2020-03-06T09:46:25.140900Z

Lol, first thing that showed up was me answering how to do this.

dharrigan 2020-03-06T09:53:18.142500Z

I'm the OP. What I do is base my questioning around their CV. If someone, coming in as a senior developer, says they have 5+ years of Mongo and 5+ years of Javascript, and allowed to use google, they struggle to even do a connection to the database and query for results, then it makes me wonder why.

dharrigan 2020-03-06T09:54:13.143100Z

I just did a google for "mongodb javascript connect" and there are lots of examples

dharrigan 2020-03-06T09:55:01.144Z

I find that more and more, people embellish their CV

slipset 2020-03-06T10:07:03.144900Z

I find myself in total agreement with you. There are few problems you're not able to solve by googling for five minutes.

slipset 2020-03-06T10:10:42.147500Z

A tool that I've been using with (what seems like great success) is to reply to any job application with an "aptitude test" of some sort. This could be a coding test. When we post job openings on the major Norwegian site ( we get quite a few applications, and an aptitude test filters out some 80% of them, either because they can't be bothered to answer or because the answer basically show they cannot program.

slipset 2020-03-06T10:11:28.148500Z

Problem is, that we don't know how many of the "can't be bothered to answer" who are actually candidates that we would like to talk to, but for some reason don't want to do the test.

slipset 2020-03-06T10:12:50.149100Z

The aptitude test is something you do before a possible first interview.

dharrigan 2020-03-06T10:23:31.149300Z

Yeah. Hiring is hard

dharrigan 2020-03-06T10:23:41.149600Z

There isn't a perfect hiring process, otherwise we would all be doing it.

dharrigan 2020-03-06T10:24:01.150Z

Each company imposes different constraints on how to interview/hire people

orestis 2020-03-06T10:29:48.153400Z

What I did last time is filter CVs by priority, then actually went ahead and scheduled 45min "get to know" talks with the most promising candidates. If there was a good fit (would they enjoy doing the tasks that need to get done? would I enjoy working with them? would they enjoy working with me?), then I'd send a small aptitude test to be able to compare results. The aptitude tests ended up pushing some candidates up the queue, some down.

orestis 2020-03-06T10:31:05.154900Z

This was possible because I only posted the job in Clojurians Slack and ClojureVerse, and the hired applicant found us from there. Posting the job at the local Danish startup board ( got us 3 times the CVs but much lower "compatibility".

isak 2020-03-06T15:12:34.155600Z

What kind of aptitude test do you use? Is it a work-sample test?

orestis 2020-03-06T15:35:54.157600Z

Listening to lvh talk about work samples, I just wonder what a work sample would look like for a UI-focused developer. UI is notoriously complicated and I’m not sure there’s a way to “compare” approaches.

slipset 2020-03-06T15:51:49.158800Z

Yes. Basically something that should take the candidate about/less than an hour to solve.

isak 2020-03-06T16:14:35.159Z

Oh, interesting. Do you think your test is easier or harder than this one? Also, do you give your work sample test before or after speaking with them? I do it after, and get a maybe ~80% response rate (though maybe 20% of those show too many problems to continue the process). I think it helps to give it after talking with them, because a lot of people apply to many jobs without knowing too much about them, so they may not be interested enough yet to look at a sample problem.

slipset 2020-03-06T16:19:34.161900Z

Somewhat easier, but a lot more open. We do send the test before speaking to candidates. This is more important when you get a lot of candidates, as you apply the filter earlier on in the pipeline, so to speak.

isak 2020-03-06T16:20:48.162100Z

I see, yeah, makes sense

seancorfield 2020-03-06T16:37:09.164800Z

I would be in the "refuse to answer" category -- my views on technical tests like this are fairly well-known and I won't work for companies that use them.

slipset 2020-03-06T16:52:51.171800Z

I would totally be onboard with someone who denied doing a test like this, but I would like to have an explanation, and preferably something that convinced me of their ability to code. You could easily point to your vast corpus of open source work, but many candidates, as you pointed out, can’t.

isak 2020-03-06T16:54:09.175Z

@seancorfield For the anti-programming test thing, is it more out of a sense of fairness (e.g., people with no suitable dev computer being disadvantaged), or that it actually is against the interests of the company doing the tests? What do you think about the research indicating that IQ/cognitive aptitude tests (illegal/impractical in the US) > work sample tests > other interviews for general interviewing? Your record seems very good, but I've also talked to others who do a similar strategy with very poor results.

slipset 2020-03-06T16:54:28.175800Z

I’m curious (and you might have answered that already) why you are opposed to a test that for someone like you would take half an hour to complete, which is probably less than what you’d spend on touching up your resume and writing the cover letter.

slipset 2020-03-06T17:00:01.179100Z

Personally, I’d much rather apply by sending in a larger work sample if that meant I could get away without the resume and cover letter. I find those really hard to write well.

seancorfield 2020-03-06T17:00:50.179300Z

I have answered that already in the main channel. Thom Lawrence mentioned a good reason too -- having a family with three kids and almost no time outside work. What about folks who don't have a "work-capable" computer at home? etc etc There are more reasons in the channel.

seancorfield 2020-03-06T17:01:30.179500Z

Asking people to do take home tests of any sort is basically discrimination.

seancorfield 2020-03-06T17:02:09.179700Z

(as you can tell, I am very strongly opposed to such tests on principle)

seancorfield 2020-03-06T17:05:30.180500Z

Mostly "fairness". There are a lot of assumptions baked into how most companies approach interviewing that cause a lot of bias.

seancorfield 2020-03-06T17:06:17.181400Z

And it's particularly acute at the junior end of the scale where it's much harder for candidates to object (as well as participate fairly). Which is why I make such a big, public deal about it.

seancorfield 2020-03-06T17:08:35.182900Z

> I've also talked to others who do a similar strategy with very poor results. As an industry, we almost never bother to train people to do interviewing "properly". We somehow magically expect the average software developer -- who we hired for their ability to program! -- to be able to do a good job of interviewing other developers... and then we're surprised at the poor results?

slipset 2020-03-06T17:13:46.187500Z

For the record, I also have three kids (and do climbing and skateboarding (and write presentations on my spare time (and spend too much time on Twitter (and sometimes contribute to open source (and enjoy doing coding tests for interviews (and just noticed there is no paredit in slack)))))

seancorfield 2020-03-06T17:37:22.187800Z

I have zero kids (but I have a dozen cats, do they count?) and I don't do much in the evenings outside work (or at weekends, except for occasional cat shows) but I still object to take home tests even tho' I spend all evening on my work-capable laptop while watching TV. So I certainly could do any number of take home tests -- but I still refuse to do so on principle 🙂

isak 2020-03-06T17:57:16.193500Z

The thing is you can't please everyone. There are some people who would automatically turn down a job if there were no coding test (out of concern for co-worker quality), so one could say you'd be unfairly discriminating against those people with your approach. Best you can do is to have a system that works pretty well for many people. To appreciate what kind of negative impact the work-sample requirement has, we'd need to see the numbers for viable applicants dropped out because of lack of time/access to a computer. I would be surprised if it was a big proportion.

seancorfield 2020-03-06T18:13:13.194100Z

> There are some people who would automatically turn down a job if there were no coding test I haven't encountered that in nearly 30 years of hiring (but you may well be right that such people exist).

seancorfield 2020-03-06T18:14:46.195200Z

(I have had people comment that the non-coding-test style interviews I give have been the toughest interviews they've ever had so... different strokes for different folks)