Show HN: Free, anonymous coding interview practice
interviewing.io
interviewing.io
Unfortunately, this style of interviews is likely ineffective and leads to hiring people who look alike and have similar skills. Solving a problem with someone looking over your shoulder and forcing you to talk to explain what you are thinking is a skill that I've never seen used in the real world. I'm sure new grads spend a lot of time in classes training for this. Many great people don't function like this and still they may come up with brilliant ideas after a day or a week. Some people have breath of knowledge and study specific topics as needed. Some people can write very well and may not be super fast in tests. I know many brilliant engineers who have been rejected and are doing just fine, building amazing products, and leading teams.
If corporations really wanted a cookie cutter method to evaluate CS knowledge, then they should require a scientifically validated standardized test conducted by a third party. It would be cheaper than using engineers' time. So why don't they do that?
The reality is that they think they are doing more than that but there is no scientific proof that the interview method works. They don't want false positives but they cannot measure efficacy. If you are one of the guys who know how to perform, then you can get hired faster. In some cases if you are an outsider (older, female, different), then your chances of knowing the "secret interview code" is much lower.
What else can you do that would be an accurate simulation of their job that only takes 1hr?
First 1/2 hour: Discuss their code samples in detail -- asking pertinent questions about each as to what they do, and why they did things they way they did. Drill down for detail, ask how they might have done things differently for different use cases, etc.
Second 1/2 hour: Bring out some of your own production code and do the same (allowing them space to ask questions this time). Works best if you let them see something that's a bit "raw", i.e. quick and dirty, which you know you could have done a lot better if you had more time or knew better about the requirements (or perhaps you're simply older and wiser now).
In both sessions, nuance (both in what they can observe, and how they chose to express themselves) is key. And it'll come out a lot more freely than in in a whiteboard interrogation precisely because they interaction will be natural, uncontrived and unforced.
Simple, non-confrontational and 100% reflective of what engineering work is like. That's what we do during the day, 99% of the time -- digging up (sometimes woefully) less-than-perfect components of production systems, and trying to make them a little bit better.
But as to how often we drag someone to a conference room, throw them at a smudgey whiteboard with creaky pens and no eraser, and force them to solve some abstract problems while we boredly look at our watch, and interrupt them with hints?
Basically never. Except, that is, in coding interviews.
Candidate is fast and chatty: "I don't know. He seems smart, but he was also talking a lot of fluff. Kind of pretentious and arrogant."
Candidate is slow and hesitant (and perhaps pauses awkwardly now and then): "I don't know. He seems smart, but he seems a bit underconfident. We need someone with more energy."
On the other hand, everyone's favorite anecdote: "senior engineers" not passing basic tests like mine.
I still don't feel qualified for entry level (and other peoples' interview experiences don't help!) and that's because entry level and other competency levels are subjective right now. What knowledge should you know from memory? What knowledge are you safe delegating to Google to remember? However, my feelings about my skill could just be nerves.
Lines in the sand would really help the self taught crowd and could be used to bring outdated, lagging CS programs and their graduates, up to speed.
You should commit things to memory the things your memory naturally keeps. If it doesn't it means you aren't using it often enough to bother remembering it. There's so much information I used to keep re-learning and forgetting because I never used it. I finally realized that it was a waste of time.
I guess the problem is when the job you're interviewing for will need vastly (or slightly) different things committed to memory than what your current job does.
I also like something between google and memory: cheatsheets. I have a dev notebook full of checklists and cheatsheets for various technologies I've used and tasks I've done.
Organization is pretty simple. Just need a decently named file with the relevant information. E.g. I would have an sql.txt file containing sql database operations that I don't use often enough to remember, but use often enough to be annoyed by having to search the web on how to do them.
Another example might be a centos5.txt file, giving me a quick rundown of the various setup options I've wanted in the past, and the location of various configuration files.
For programming languages, there's many that I use maybe once every 3 or 4 months. So ruby.txt might contain a quick rundown of how to do basic things: how to define a function, a class, perform loops, instantiate an object, access command line arguments, etc. I find it much better than having to hunt down a tutorial which will also be more wordy than needed.
I also have some for more computer science related things, such as tables of graph and search algorithms, along with their tradeoffs.
Checklists are another good thing. I have checklists for processes I've messed up.
E.g. committing new code. If I don't use my checklist, I always seem forget to forget to update a sample file. Or add a file.
Another big checklist is for giving estimates. For example, one of our legacy products is translated into 5 languages. This checklist reminds me to think of translations, because they have been a huge bottleneck in the past.
Hope that helps some.
The best interviews I've had were legitimate pairing interviews, where the two of us were tasked with solving a problem in a real codebase that the interviewer hadn't solved before.
(The best best interviews made it an issue in an open source project, so it can be a not-canned interview without you writing potentially production-ready code for a for-profit company without being paid)
The interviews I had with the company I work for now were amazing; they asked me some basic questions to verify my resume wasn't completely BS, then asked me to discuss previous projects I'd worked on, asking questions about technical details on the way. ("Why did you use collection type X in stead of collection type Y?") This allowed them to learn about my real world experience without the risk of asking me about one specific type of problem I may not be familiar with.
There are interviewers who treat coding interviews as a high pressure, adversarial exercise, though. On the other hand, those sorts of people are rarely a joy to work with.
Maybe it would be a more accurate measure of ability to ask software engineering applicants to read code and explain what it does, or to judge them as you'd judge a composer, by their portfolio.
When I mentioned that I thought that the purpose of me being brought there was to add an ML dimension to the team, which was far too data analysis (using SQL and some R)focused and with no Python expertise, I was given a blank stare.
Then it hit me: the guys interviewing me didn't know how to do any of the stuff I had been brought down (by higher ups who weren't in the room) to do, so they weren't evaluating me on it. They evaluated me on what THEY knew. It's the equivalent of Peyton Manning being asked to evaluate a linebacker, and demanding that the linebacker throw passes downfield.
The highlight was when one of the guys (typical pony-tail neck-beard type) pointed out that an alluvial flow diagram in my portfolio of data visualization projects wasn't "Tufte-esque". (It was a gross misinterpretation of Edward Tufte's commandments on his part, but am I really going to get in an argument with the guy interviewing me?)
It was clear that the guys in the room wanted someone who knew what they did and thought like they did. A brilliant recipe for getting a homogenous team with no diversity in skills.
What an epic fucking waste of time. The best part? The company only has 150 employees, and a recruiter just contacted me for a position on another team that uses Python. She was unaware of the fact that I was there a month ago. I told her that they should have thought about that when they flew me down the first fucking time.
Frankly, I think this is anti-candidate behavior if the employer suggests it, but if you actually want it, they should be willing to do it if they can vet you otherwise (github, etc).
Thanks for that!
On the other hand, most likely the other Python team would grind you on Python and again nothing on ML, and of course your Python ML projects suck because "blah blah blah"
You've never once explained your thought process to a coworker? Explained how you arrived at a conclusion? Tried to elucidate your reasoning on a piece of code to someone?
These are absolutely real world skills and they are absolutely applicable when working on an engineering team with other humans. I understand what you're getting at in your comment, but it really feels like you're throwing out the baby with the bathwater. Can interviews be improved? Absolutely. Does that mean that there is no value in these kinds of interviews? I certainly seem to glean some value out of them. Whether that is the right value is a hard question to answer.
But I want to address something. Your whole comment is about why these kinds of interviews are shit. But you offer no alternative methods, no ways to improve these kinds of interviews, and really no constructiveness. You seem so sure that interviewing this way is wrong, but you don't say what's right. I would love to hear some realistic ways to interview people that can help me find better candidates without rejecting people because they're bad under pressure.
Trying to do the same while you're trying to solve the problem, with a judgmental crowd scoring your comments, however, is an absolutely and completely different matter. Even thinking about how I would narrate my thought process as writing this reply ("maybe I'll talk about how I'd narrate the writing of this reply") is confusing enough.
I don't disagree with the concept of technical interviews, especially given that there are countless people who hold none of the skills they claim they have mastered. A process I implemented requires developers to come in for a coding test, where they are equipped with a development machine with full internet connectivity and a full toolset, and given a problem within their skillset to solve, alone in a closed office and for as much times they need. After the test we do talk through their "thought process" and their implementation choices.
I know this offends some people, among whom I'm sure are the people who completely failed to demonstrate even a basic knowledge of skills they claimed an expert level of competency at.
The alternative interview technique that I like to use when hiring engineers is to send them the questions I'm going to ask a few days before the interview. I ask difficult questions, but there's no surprise. I don't really care if they talk about them with other engineers beforehand...there will always be follow-up questions that I ask to get them to defend their solution that will uncover those that haven't understood the problem fully.
I was asked to come up with a recursive-like solution for puzzle like problem. I just froze during the interview. Later on kept thinking about it for couple of days and sure enough I was able to come up with three different solutions that used various techniques such as memoization and I felt really good about it.
I guess what I'm trying to say is it's really counterproductive to evaluate someone's abilities by subjecting them to time pressure.
"Boy you sure criticize those Nazis a lot for genocide, but you offer no _real_ solution." "Dude... stop criticizing those banks for their greediness when you have no solution". I realize these are rather hyperbolic examples, but you see where I'm getting at.
As for the OP, this does seems like really cool stuff, even if I don't really agree with "the interview" method myself because I don't do too well at them. I mean sure, there should be some on the spot questions to get sort of an outlook feel on the candidate, but that really isn't sufficient.
Why not give the the candidate a real world problem - maybe even related to something your company is trying to solve - and a few days to come up with a solution. I don't care if they also do some copy/paste from SO and other sources on the internet. That's why the interwebz is there in the first place. What would be more important in my view, is how the candidate is able to integrate all the information he finds - be it on the internet, books or his own head - and converge to a solution. And even if he doesn't come up with a working solution, you as an interviewer can now infer a lot more useful pieces of information than with a basic interview. You can ask questions like: 'why did you choose that library over the other ones?', 'why that programming language over the others', 'how did you come across the code on Stack Overflow; is it correct?', 'why that database and not that other one?', 'why is your solution single threaded and event based, rather than multi-threaded?', 'how would you further optimize that piece of code?' and so on.
I think this kind of conversation is something much more likely to happen day to day between the candidate and his coworkers if he does get the job.
I'm often in the position to have to explain my reasoning while developing software. Code reviews and pair-programming come to mind. It's about being able to communicate complexity and being more rigorous about the software development process.
That said, this style of coding interview brings up a level of stress that I'm rarely under at work. It's an unfortunate condition of interviewing, but I don't think it's completely avoidable no matter how comfortable you make the interviewee.
It is more about the communication aspect of the question, not about getting to the answer. Because communication is a lot more important in business...even tech business...than you seem to think it is.
I use this same technique now when interviewing others.
Two weeks ago the position of my dreams -- literally, exactly what I wanted to do, and at a totally rad and well-regarded company -- vanished during my second interview after (what I believe) was a killer and detailed coding challenge submission (which we discussed at length) and an excellent first interview.
Why?
Function.apply -- LOL
"Describe event delegation" -- LOL
Stuff you learn during DAY ONE of JavaScript coding (I've been programming for over ten years in a number of languages, and have built many, many large-scale applications). It was absolutely humiliating, and I'm still recovering from it in the worst of ways. My brain just froze up completely.
Thanks for putting the site up because I'm sure there are many people that will benefit. I've got an interview at Amazon at 3pm and those are notoriously difficult; wish it were already live and running! I'm not looking forward to it.
Or it could be a simple miscommunication, or they thought somebody else done the app given your performance on the interview. Reaching out and asking will cost you little compared to potential windfall.
Either way, I think you've nothing to lose by sending that mail/picking up the phone. Regardless of the doubts the interviewer may have in you post-interview they'll know that everybody is prone to a bad day every once in a while.
You can think of it as a much higher fidelity Stypi, Etherpad, Collabedit, etc, except that you can run the code in the browser as you write it. It really helps alleviate the choking sensation of being asked to write out an entire problem on a whiteboard without any of the modern affordances we've come to know and love.
I loved how smooth and fluid it made the whole process, that they could switch between languages during the interview and the rewind functionality.
But I blew my first coding interview both in the interview itself -- in which I repeatedly blanked out and froze -- and in my failure to show the company my best work (they asked what I was hacking on and so I showed them a half-assed blog engine I was rolling using the remnants of another project when I should have shown my more polished work.).
This interview was so bad that I cannot yet bring myself to try it again, despite spending lots of time polishing up on algorithms and data structures. Up to now, I had never experienced performance anxiety of any type -- I did very well on interviews and standardized tests like the GRE. Yet now I'm petrified of programming interviews.
By local standards, I'm a pretty good programmer (by HN standards I'm probably average). And what I lack in knowledge I made up for with enthusiasm and persistence. I've got a bunch of code of varying quality on Github, including small contributions to several very large open source projects and a moderately popular open source project that I created and maintain myself.
I'm also limited by the fact that due to my family situation, I can only consider remote jobs at the moment. But by far my main hurdle is this fear of programming interviews.
I'll definitely be taking a look at this. Maybe this will help be break through my mental block.
I'm not looking for a new gig but I'll give their site a shot when I am.
As such, you should fully expect to completely blow your first 1/2 dozen interviews (this includes your first 1/2 dozen when changing jobs after a couple of years). Go in with the expectation that you are going to fail. That doesn't mean you shouldn't try, just that you expect to walk out with nothing more than an hour or five behind you. You'll find a couple things happen: first, the pressure to perform will be reduced, so you'll be more comfortable and confident answering questions; second, you'll be able to better analyze where you might have gone wrong on any given interview to perform better next time.
No matter how badly you failed that first interview, you are better off now for having done it and failed than not doing it at all. The same will be true for each future interview until you land that job you want.
Sure, some, if not most, of the candidates will use Google, Stack Overflow, their old college textbooks, or whatever will help. But they're going to do that on the job too, like most of us do. The key would be to get them to explain, in detail, how they solved the problem and why they choose their particular solution, going line by line in the code if needed.
I think this is perfect because it doesn't put the candidate on the spot. The shyest person should be able to work on their own, and I've never met a programmer so introverted that they couldn't explain the work they've already completed. The people who just faked the exercise by copy-pasting should be readily apparent once the detailed questions about their code arise.
This is probably an overly simplistic answer but I think it would make a huge difference. In the job description, make it clear this will be your interviewing style and you'll attract quite a few of the shy-but-qualified people who would probably skip Google or any of the other high-pressure interviewing companies.
My strategy was to start interviewing a lot. Don't go to your "first pick" companies first. Just go to any that look at all interesting as practice. That will take quite a bit of pressure off too. Over the course of 2 or 3 weeks I did phone screens at 20 or so companies and progressed to a code interview on most of those and then about 6 in person interviews which led to 2 offers. I never did get around to trying for my first pick companies because they are famous for dragging their feet and I was currently unemployed.
However I did put quite a bit of effort in revising my basic coding stuff before I hit the interview trail and in general I don't apply to places I really want to work at until after I've managed to get a few trial runs under my belt.
I wouldn't sweat the freezing I've done the same thing when someone asked me a question about stuff that's on my CV but no other interviewer had bothered to ask about. It should get better.
[1] some failed at phone interview, others at face to face
These days I skip all interviews which require me to code in the interview. I have plenty of open source code, if they cannot figure how good I am looking at, then they definitely cannot figure how good I am with a 3 hour coding interview.
IMO, coding interviews is like public speaking. Many people get nervous in front of a crowd. It's a skill one has to obtain should it be required. Coding interviews are quite irrelevant for a programmer/developer position.
Dig in, look around, its obvious what I can do, and what I'm capable of learning.
Ask me to code a sample app and comment every function with detailed explanations of my thought process.
Add me as a collaborator to GitHub and request that I make some pull requests on your product.
Live coding interviews are more irrelevant than irrelevant and completely ignore the fact that many people -- and especially introverted technical types -- just don't do well in front of groups.
Technical screens are synchronous and relatively well understood. If they are not the literally BEST choice of time for figuring out if someone is a good developer, they are at least a very defensible choice.
I find it incredibly nerve wracking because it gives me that feeling of someone standing over my shoulder without me being able to fully interact with them or read their body language. When you sit down to hammer out a solution you have all the additional pressure of trying to stay engaged with someone you can't see. As a result I constantly drop my focus on the problem and lose what I've worked out in my head.
Maybe they want you to be slow and thorough (I've been nailed for not checking the exit status of print statements). OR maybe they want it quick and dirty, in which case you'll get nailed for "overengineering", or you just wont have time to do it the imaginary time frames they set for these tasks, if you go for any of the defensive practices that the other guy would have nailed you for. Fun, fun, fun.
2. Actually evaluate them on that.
Anything else is a psychology test, and you aren't psychologists.
It's a combination of nerves and needing to suppress a part of my natural coding process that occasionally involves a brief frenzy of guess-and-checking and pattern recognition to get my bearings on possible solutions. That part of the process is unconscious and intuitive, kind of like how athletes don't think about what they are doing. If I slow down to consciously relay those early steps of the process it breaks the spell/flow and I go blank.
I think the problem is that I have a habit of letting rapid ad-hoc intuition guide my coding, rather than being a rational agent following a pre-planned 'waterfall'. In-the-moment intuition somehow (surprisingly) produces nicely workable and even readable code much of the time, but also entails some amnesia about the steps I took along the way. I occasionally have doubts - am I built to be an engineer? By nature I am a very logical person, why can't I always conceive of a whole answer (or at least a clear direction) before "putting pen to paper"? Working memory deficiency? ADHD? Lack of practice? However, my doubts about programming potential are quelled when my friends and I look at the code I can write and the problems I have solved.
Practice makes perfect as they say. I really look forward to using this service.
I've interviewed several people with lots of code on github and what looks like lots of accepted pull requests to many projects who still can't seem to reason through a problem described as "write a function that takes two unsorted lists and returns one sorted list".
I think I'll continue asking technical/coding questions...
def function(unsorted1, unsorted2):
return [1, 2, 3]
;-)poorly specified questions are very important to ask IMHO :)
Chill, he said 'so'. i think he was just saying he looked up the answer but that persons answer was faster
I do this for many reasons, one of which, is they obviously weren't interested enough in my talents to throughly research me before the interview to assess my skill-set, which means, they weren't that interested in hiring me to begin with. I don't want to work for someone who is just slamming through interviews for talent; I'll bow out. I want to work for someone who is specifically interested in working with me and understands my skill-set before hand. The second reason, I don't deal with these questions is that I don't like to be put on the spot without my normal working environment, I feel at a disadvantage and uncomfortable. Keep in mind most developers are introverts.
I consider a good interview to be about people; not technicals, which can be referenced/refered or looked up; they should provide a medium to see if the employee is a comfortable fit. If goals and motives align. To talk history and such.
If you are a recognized leader in a particular field your situation is obviously different, but you can't expect me as a interviewer looking for a web developer making a mostly standard CRUD app to have the time to delve into your personal history and divine your technical expertise without asking you about it.
i do agree though interviews should be more focused on soft skills and not technical, even for technical jobs.
The cost of hiring someone who is incompetent is high. High enough that companies generally make several attempts at finding and filtering people that might be incompetent. I don't think anyone who interviews programmers actually believes the standard technical interview process is fun or necessarily even accurate, but there's nothing else as low cost to implement that works better.
Further, someone who treated a technical problem in an engineering interview as a "shit test" would be walked out at any company I've interviewed for... Good luck with that!
merge_sorted(list1.sort(), list2.sort())
> people with lots of code on github and what looks like
> lots of accepted pull requests to many projects who still
> can't seem to reason
How does that happen? Do you think they were lying about their github identities?The only reasonable hypothesis I have where I assume the candidate was honest is that the quality of the code in his github profile is largely due to help from others.
In development, who would do design, code and review on only one change in a straight sequence? It is like asking half your brain to shut down and the gods to smite you.
Presumably it's possible to distinguish people who interview badly from people who lie on their résumé. The question is "How?" Followed by "How many interviewers know how to do this?"
My goal when interviewing someone is to determine if they will, on net, add more lift or more drag. If someone is so nervous that they can't communicate, they (sadly) will almost certainly not be able to demonstrate this.
Luckily, there are personal referrals. A strong engineer who interviews very poorly but has good first hand references will be given MUCH more slack.
"H'm, this looks a bit like mergesort, where you take two sorted sublists and form a bigger sorted list. So...sort the sublists using mergesort, then call the merging algorithm? (compare the heads of the two lists, and form the bigger list)"
This would be the answer I'd start giving. Tell me if it corresponds even remotely with what your idea of a correct answer is, or what points would you deduct from if it is incorrect. Off the top of my head, I'm not sure I'd be able to write the exact python code for this that covers all edge cases in less than 15 minutes.
I treat all questions as conversational. The direction the question goes depends on where I (or other prior interviewers) think more evidence is needed.
For example: merge sort is an answer that satisfies the conditions of the problem. Given that, I would decide if I need more evidence about your ability to code, if so I'd ask you to implement merge sort; I might want more evidence on how you explain things, so I would pretend that I didn't know what merge sort was and ask you to give me a description of it.
I'd ignore the fact that there were initially 2 lists and just concatinate them and sort. I.e sort(unsorted1 + unsorted2)
For large lists, the best you can do is copy the lists into an array, use a parallel n * log n array sort, then fix the pointers.
The problem doesn't seem to require any real thought. It is difficult to make optimizations because the problem isn't especially well defined and the optimal asymptotic performance is obvious the moment the word "sorted" is uttered.
The "trick" is to iteratively merge your two lists: at each step you select the smallest of the two items you're at in both lists then move forward on the list whose item you picked.
An extension to this problem (I've asked, and been asked, many variations of this) is to merge K sorted lists of N items each. The naive solution is to merge them all together and sort but you can do better if you extend the algorithm above from 2 lists to K and choose a helpful intermediate data structure to optimize the "select the smallest of the K items" operation. AFAIK, all-up the best you can do then is O(NKlog[K]).
EDIT: Re-read the question, realized I read "unsorted" as "sorted" - not sure what you can do to merge two unsorted lists in better than O(Nlog[N]) time beyond non-comparison-based sorts where you make assumptions about the range or distribution of your input (radix/counting/bucket sorts).
Work they'd otherwise be doing during the 3-hour coding interview?
2) if they're doing something not related to your interview during your interview, you don't want to work with them anyway
Public speaking is something you really should take the time to get good at. I think you are greatly underestimating the importance of communication skills in the workplace...even for developers.
You don't ask an electrical engineer to layout a complicated PCB on a whiteboard, you don't have a civil engineer build a bridge out of popsicle sticks.
Surely hiring an incompetent electrical engineer is just as bad as hiring an incompetent software engineer, but from talking to the EEs I know, they just get asked basic questions or go over past projects--nothing nearly as stressful as a coding interview.
If other industries can get by without them, whiteboard technical interviews must not be as necessary as they're made out to be. It seems to me they are just a damaging fad. I think the high stress technical interview could even be one of the factors contributing to the software monoculture.
No other engineering discipline does this, and software didn't do this until everyone started copying Google.
In fact an HR guy from Google basically said that interviews were useless. [1]
>Years ago, we did a study to determine whether anyone at Google is particularly good at hiring. We looked at tens of thousands of interviews, and everyone who had done the interviews and what they scored the candidate, and how that person ultimately performed in their job. We found zero relationship. It’s a complete random mess, except for one guy who was highly predictive because he only interviewed people for a very specialized area, where he happened to be the world’s leading expert.
Everyone else is copying Google assuming they are doing it right, but they're not. Once Google selects potential candidates and weeds out the people who lied on their resumes with basic questions, they'd probably do just as well hiring a random selection.
[1] http://www.nytimes.com/2013/06/20/business/in-head-hunting-b...
I only see 3 steps that look more like facts than actual "how's". Totally free fully anonymous and interviewers from top companies. How does that explain how it works?
I would prefer something like:
1) Signup 2) List all available interviewers (or interviews, or subjects or something) 3) Select one, schedule it 4) Have an interview 5) See results!
Or something like that.
I have found that when you use a question as a webpage, blog or other text, it's really good when you actually answer said question instead of not. Or don't use a question as a section title perhaps?
I would be much more interested in this neat idea if I had a better way of evaluating it I had more info.
Edit: For example, can I select interviews by subject? or by interviewer ex-employer, or by level (basic, advanced, etc) or is it random? Can I rate the interviewer as well?
But I do wonder if I could put this to use in freelancing as well. Sometimes clients, especially early-stage startups, go for a very normal-technical-interview approach to hiring freelancers
Be sure to check out her blog as well, "making technical recruiting suck less." Tons of fantastic content. http://blog.alinelerner.com/
So to fix problems with signaling there should more signaling and even more wasted hours?
The 4th company I interviewed at had a very different perception of me than the 1st because of the month's practice, even though I had essentially the same technical skills. Coding interviews test "coding interview ability" rather than "coding ability", unfortunately the other ways (Github, aptitude tests etc..) have their own problems.
She said I had to sell my skills much more, instead of strictly answering questions and then waiting for the next one in silence. I felt like a sociopath with no people skills.. I'm kinda shy guy that doesn't do well with strangers, or bigger groups. From my readings online, this is very common with anxious people or introverts.
In the interview there wasn't a group but there was the "this person can control my destiny" pressure, which is also irrational (you can always get another job).
Another things that affects me is impostor syndrome: selling myself feels like lying.
Also the crap unanswerable questions like "What's your biggest flaw?"
So this could actually be very good for me :)
How does the business model here work? Are interviewers paid? Are you planning on eventually expanding into recruiting?
One small issue: I don't know what I'm getting into when I join the waiting list. I understand what the site is about, if I join will I suddenly be asked to take an interview next Friday? It would be nice to know a little more about the process.
re what you're getting, i'll update the copy, but all that's gonna happen is that you'll get an email with an invite once we're ready for more users. nothing will ever be scheduled without your permission, and of course, no one will ever get your info.
If I'm going to be challenged to write code in front of you, give me the tools I use every day, let me use the resources I use to solve problems efficiently (which btw can include StackOverflow) and you will get a much better picture of me. I don't write perfect code the moment it's written. Often I will mentally acknowledge something needs further thought and my brain will revisit it, sometimes days later, sometimes after multiple iterations. I'm fastidious about those types of things, and as a result I can realistically say I write some of the best and least buggy code in my company. I'm also very good at theorizing about problems and debugging, which is never looked at in an interview.
I guarantee you should hire me, but how can I show you that, and how can you gain confidence in that?
http://algorithmsandme.blogspot.com/p/blog-page_27.html
https://news.ycombinator.com/item?id=7477095
https://news.ycombinator.com/item?id=7827048
http://www.quora.com/Which-are-the-frequently-asked-intervie...
I could put up alist for math for ML/data science as well)
Unfortunately there are people with amazing cv's who can't solve simple problems or who can't explain what they have done in previous projects.
Interviewing is hard and there are a lot of biases at play but it needs to be done.
Lately I have realized that I use google a lot less than I did in the past. I don't have to look things up as much, thus I have seen gains in speed when working on some functionality. The interesting part is that coding/reasoning without google feels a lot like whiteboarding. In fact I get into the same 'mental patterns' when solving a problem I don't need google for that I feel when brushing up on algorithm problems at the white board.
I don't come from long history of math rigor. I don't have a mathy degree at all and have hardly used a whiteboard in front of any professors or math nerds. But I'm also not an imbecile; computer science is built upon a foundation of mathematics and if you aren't willing to play ball then get off the fucking field.
I've had 3-4 so far and even for similar jobs I feel like the interviewers are looking for totally different things. Some want me to spit definitions back at them and others are looking for me solve problems. It is hard to know what to expect, especially when interviewing at startups.
How are the interviews going to be conducted ? What will be the different forms of interviews (as most companies have different forms and phases of interviews) ? How will the feedbacks be given ?
Hope this just doesn't turn out to be just meeting place for anonymous interviewers and interviewees .
The idea is if you have developers they will interact with other developers - so track those interactions and you get a good idea of where and how to fish
I was thinking about posting "Ask HN: Interview me" since I don't have many interview opportunities in my corner of the world and wanted to find out how good you guys think I am.
If anyone wants to test out their interview skills with me, we could set up a meet over at talky.io and discuss some C# or js. Mail address is in my profile.
Charge a little to filter out people that clicked, but don't care. I'd pay.
I, too, am curious about sustaining this service though. Have you considered offering tiers for participants?
Seriously, I have no idea what kind of service you are trying to describe on interviewing.io. There is only the usual BS like "totally free" and no actual answers.
Being Berlin based I am really curious on how tough the interviews are gonna be.
The interviews I have had here were not challenging at all. The technical problems did not even reach the difficulty of qualification round problems in Google's Code Jam.
Great job, keep up the work!
The video could occasionally say "Are you sure you want to do that?".
[1] But without the dicks
I laughed at this...
identifying that brilliant junior who is worth 5x his years or the dirty rat who has 30 years of experience working out how to not do his job and get away with it.... that's hard.
interviews are already easy to win for the prospective employee...
So what happens if you're lystdexic?
EDIT It seems to crash in the background if you have a "+" in your email address.
I always crack when it comes to algorithm type question. I am aware of some of the run of the mill ones like, write a palindrome detector, bubble sort.
However, I still can't figure out the crazy hard ones like:
In a pyramid of numbers, write an algorithm to find the path to the biggest sum. Write a method to produce pascal's triangle. Given a grid, where X = wall, O = space, write an algorithm to figure how big the room is and so on....
My biggest gripe is knowing that these type of questions will kick my ass and not being able to prepare because you are already supposed to know this from your comp sci courses, which I've never been to as I have been self taught through making my own software, and learning as I went along.