Fork me on GitHub

Does anyone know of a resource for common interview questions that come for a Clojure job? I am thinking that things like core.async, understanding of the ref types, lazy sequences and transducers would make the list. Thoughts?


the clojure jobs I've interview for have not had a set of interview questions, they have had an exercise problem


(an one actually counted my use of transducers against me)


@hiredman: was that a live coding type exercise or paper and pen?


the posed a problem and had me solve it on my own time and email the solution back to them


at my last job, at one time we had a living coding pairing exercise that we would do for interviewing


Cool, thanks for sharing. It's handy to know the sorts of things to expect going into an interview. I personally like the idea of them giving a problem to solve or small program to write offline. Less on the spot pressure.


If live pairing makes you nervous, you could be well-served to do a practice session with a friend or mentor


@donaldball: That is a great idea. I'll see if I can organise something with a fellow Clojure dev.


@sonelliot: Have you done any sort of interview tests before? I have some experiences/thoughts from both sides of the table, but I don’t want to write a long gist and it turns out you know it. 😛


@tjg: i am curious, nevertheless simple_smile


Hokie dokie...


@tjg: I had a fairly standard interview for my current job. But that was 5 years ago, so I definitely need a refresher. I just finished reading this article actually. I think it has a lot of solid advice and I'm planning on running some test interviews for practice.


Any advice you have would be super awesome! simple_smile


Hm, I have been part of a few interviews my self as the interviewed one and never had to program some stuff, neither on a whiteboard nor as part of a "homework". This may have been luck or maybe here in germany they dont do that stuff that often. Also only in one interview I was asked more technical questions. The rest was more of a get to know and very very much based on "how do I fit into the team", "what did I do before", "how do I solve problems" and so one, more the meta stuff going on. This is more of a "trying to find out how someone performs by going into their mind". I am not saying this is the better approach, I don't have any data on that. But what I can say for sure what helped me are several things: 1. Knowing someone inside the company is a big enabler. 2. Have self esteem and have it a lot, but without being arrogant, behave humble, but knowingly. It's a difficult thing to do, but if you manage to find the right path, you can influence how the interviewees see you and how they perceive you. Again this is more of a psychological thing, but, as mostly all of our communication and relations are based on our psyche I consider this very important. I know I can solve most of the problems people will pose me. But I also know my limits and asked about them I am very clear and honest about them, always. 3. Be honest, always, don't lie. You will potentially spent a lot of time with these people so you want to be honest, like in a relationship with your family or friends. Also the other side will notice this when asking tricky questions about your past or other stuff. 4. Saying "I do not want to answer this question" for whatever reason is very honest too. It might be a deal breaker, but listen to yourself and don't listen to your "I need this job so I better lie or do some other crazy stuff". This then again is about being yourself and showing who you are. People appreciate this too. For instance I took a very long time to study for several reasons and never lied about them in interviews. This never was a deal breaker for me and this is stuff people usually are scared about when going to an interview. It just show that you are a human too.


Also I have been on the other side of the table and it was quite interesting. What I wished was, that when asked about what the other one has read in the last year (of course technical related) I would not only want to hear "book XYZ", but also which insights you took from the book, what fascinated you, what you might have found interesting. I think this is a good chance to show several things: 1. You are interested in your field, because in your spare time you read technical stuff, doesnt have to be much, but at least have some of it 2. You are able to understand what you read 3. You are able to reflect about what you read 4. You are able to gather insights 5. Maybe you also applied some of that stuff already and


6. you are able to talk about that, which might show some "teaching" and telling ability which I find myself important too when working in a team.


Thats just some stuff aside the technical topics, maybe it is of help to some here.


@sveri: Thank-you for your detailed reply and insightful comments. I hope you don't mind, I have copied it into my personal notes for future reference. simple_smile


@sonelliot: Of course. Some more things that came to my mind just as I thought about it. 1. Be interested in their product. Even if you are not, for the few minutes they talk about them, be it and ask questions that show your interest. 2. When they talk, listen to them. There is a difference between listening and paying close attention to what they say. This can be practiced in every human interaction. Like almost everything I wrote her btw. 3. At the end there will always be something like "do you want to know some more" or "do you have any other questions". Try to come up with something genuine here. Don't forget, mostly they have a lot of interviews of the course of a week or some months. You want them to remember you. There are a lot of different ways to achieve that and it is up to you to find your way which fits to your personality. It could even be something weird as a red rose petal you wear on your suit. I usually try to think of genuine questions like "If you look into the future and you see me as the most valuable team member of your team in 3 years. What do I need to do to achieve that goal". Believe me, this peaks out of the masses. It may not seal the deal, but when they have to start to think about you, they invest something. And things will turn more in favour of you. Again this is psychology, investing in something means you stick more to it, because some of your energy already is over there and human beings never want to waste energy. This is one of Apples tricks btw. They make their stuff expensive and when people buy that stuff they will defend it with their life, because they spent so much money on it. Every argument will be biased for them and often irrational. 4. The same goes for technical questions. If they ask you to solve something, try to solve it your way. When everything is said and done, turn it around and ask them for their solution, get into a discussion about your both solutions. And finally, before I stop, also read books about psychology in general, this is not only helpful in interviews but in every aspect of your life. There is so much wisdom a lot of people not want to learn or know that it will give you a significant advantage in every human interaction when practiced and applied.


@sveri: Thanks again for your insights. For point #3, a friend of mine recommended a book called the 'Purple Cow'. I haven't read it yet, but the premise of the book is all about standing out from the crowd. Do you have recommendations on psychology books for human interaction? I have read the book on the flow theory, but that is more about personal happiness than interpersonal skills.


@sonelliot: My starting point was "How to win friends and influence people" by Dale Carnegie several years ago. It is a very old book and I was astonished how often I saw the principles described there, be described in similar ways in other books I read. I dont remember all of them obv. cause I read them over the last 10 years. But I know some of them were all related to Nonviolent communication: which I found very interesting. And scrolling through my library these are the last three which are slightly related to that topic: Influence: The Psychology of Persuasion (Collins Business Essentials) Bargaining for Advantage: Negotiation Strategies for Reasonable People Getting to Yes: Negotiating an agreement without giving in But, for getting started I would advice on Dale Carnegie and nonviolent communication in general. From my experience they give a good introduction into human beings in general. It took me a lot of the fears I had because I started to understand people much better than ever before.


as someone from the other side of the table i agree with @sveri 's comments


but, since I'm in The Netherlands, perhaps we share a bit of culture with the Germans


what I usually do is just ask for some code, github, whatever


and I do not ever ask them to code during the interview


what I usually do is giving them a problem that we actually needed to solve in the past, or need to solve in the future. so no fake assignments, real-life things.


@lmergen: so far I quite like the process 👍


it beats asking for FizzBuzz solutions simple_smile


Yea, in one interview the interviewer was saying that we will do some coding now and I gently continued the discussion asking if I should do FizzBuzz now, he smiled and said no and I continued to ask him if knew about Enterprise FizzBuzz. He did not and we got into a chat about it and I actually never had to do the whiteboard coding^^


simple_smile enterprise fizzbuzz... i would like to see the clojure edition!


that would actually be quite a fun programming challenge


Hehe, not really, it was rather boring, just a doall over a range of ints with a cond IIRC.


isn’t there a Enterprise FizzBuzz somewhere?


@thomas absolutely: and it is quite fun to click through some classes or issues


that is the one @sveri thank you


probably needs a clojure wrapper


@jrotenberg: I agree, we should form a comittee, discuss some design strategies and draw UML graphs for it.


I also lacks a nice web 444.0 UI which also has to support IE 7.0 of course.