Live data from Hacker News

How to Pass a Programming Interview

blog.triplebyte.com

231–240 of 570 posts

Re: How to Pass a Programming Interview

#231
post #14

What if designers had to go through a similar interview process? Here are some colors, please arrange them in palette groups that are color coordinated for a given visual effect? Why is red font on blue background bad, please justify? That would simply be hilarious.

> Here are some colors, please arrange them in palette groups that are color coordinated for a given visual effect? "Please arrange these colors in complementary, analogous, and triadic color schemes". This is color theory 101 -- something every visual designer should now. > Why is red font on blue background bad, please justify? Again, a valid question. It all depends on the brightness/saturation of the colors, and…

Many (most?) times you provide samples for a software engineer job, they don't get looked at or serve to provide much help to your cause. That you have samples seems to help get an interview but after that it's at if the samples were never even provided. I link to many samples right from my resume so interviewers don't have to depend on HR or whoever passing on extra files. I've often asked the interviewers, "just curious, what did you think of my samples?" Almost without exception they say sheepishly say something like "sorry, didn't have time..." Which is probably true but geez you'd think a portfolio would matter more and merit a required look.

On a related note, I love the story about the Homebrew guy getting rejected by Apple because he couldn't invert a tree or some such thing. Even if it was sensationalized (or plain false for that matter), we aren't even surprised by headlines like that anymore given the current interview climate.

Re: How to Pass a Programming Interview

#232
post #9

Another great post from Triplebyte, but I am confused about their model. Why would candidates want to apply to Triplebyte, if they still have to go through the companies' full interview process on top of the Triplebyte process ?

Triplebyte is also great interview practice that happens over the net. You can do pretty intense (2.5 hour?) interview without missing a day of work if you are on the east coast.

You can schedule the interview by first taking a simple quiz for like 15 minutes and then selecting from a calendar, you don't need to negotiate with a person, go back and forth, etc.

Re: How to Pass a Programming Interview

#233
I'm pretty sure I could never get an engineering job at companies that interview like this. I've shipped tons of real world products over the last 20 years, founded companies, and just reading about what it is like to interview scares the shit out of me. I'm a firm believer in proving real world skills, not silly/irrelevant high pressure short time domain stuff.

Safe to say, we don't interview with whiteboard hazing. We do a phone screen mainly for personality and to see if the candidate deeply knows about a project they recently worked on. We dig in a bit there and look for the spark of passion. Then, if we are moving forward, we give a take-home project in a private git repo that is relevant to the role and tell them to spend 4-8 hours on it depending on their availability and ask them to time it and be honest. They choose the scope of work they want to accomplish. If the code looks reasonable we have a video conference where we do a code review and dive deep and ask "why" a lot.

We have been really surprised at the difference in quality of these take home projects. Some people can barely get started and struggle to produce anything. Others build full on, useful, applications.

Obviously we are screening for people that are self-starters, so being able to choose scope and regulate and make larger decisions is important to us.

An example project for a full stack c# developer:

Feel free to search around and work on the challenges as if you were on the job. Let me know when you think you can have this stuff done by. Please do this on your own time, with your own equipment and tools, and not your employer's. We don't want any lawsuits or IP ownership questions. Also, for the code, you can retain copyright if it's something you'd like to publish on GitHub, etc.

Clever Code Can you send me a code snippet in the language of your choice of something you have done that solves a hard problem in an elegant way?

For instance, here's one of my snippets from a few years back. It solves the complex problem of transactional optimistic concurrency control using ~30 lines of code. The usage of lambda expressions in C# and generics makes it succinct and expressive.

http://blog.jdconley.com/2009/01/functional-optimistic-concu...

Production Backend Question Let's say I have a very popular consumer facing service with 10 load balanced front end web servers running the latest asp.net mvc and averaging 100 simultaneous requests each, appropriately sized ms-sql servers, and a heavily used memcached cluster of 4. Everything is running great until we do some capacity planning and double the number of web servers to 20 and experience a 25% increase in simultaneous requests. Suddenly load shoots up on the ms-sql tier with far more transactions per web request than typical, overwhelming a ms-sql cluster that should have handled twice as much web traffic. Web server requests start timing out and throwing 500 errors to the clients, and the system practically comes to a halt. There were no code changes. Describe how you would troubleshoot this and what you think might be a few likely causes.

Failure Tell me about a project you have worked on that failed. What was your role? Why did it fail?

The Challenge This is meant to be a practical exercise, and is representative of the types of challenges we face. We want to see if you can make reasonable product choices under time pressure as well as write code. You get a lot of ownership here. Please use any frameworks/services/etc you want. We suggest using something you know very well. Feel free to search Google, go to the library, call a friend, or whatever you need for research. Please write all the code/copy/etc yourself. The output can run on whatever OS or PaaS/SaaS provider(s) you want, but it should be something we can also easily run. Please try to limit this to 4-8 hours of your time.

If you want to keep the repo private, please share it with me: https://github.com/jdconley

Create a web site with the following characteristics: Make the hackathon/minimal/proof-of-concept version of some popular consumer web app that you think could use some love. Craigslist, eBay, reddit, whatever...? Site must be responsive, gracefully scaling down to smartphone resolutions and up to full screen desktop displays. It does not need to be beautiful. Supports all the way down to IE8, with appropriate feature degradation as needed. Lean toward implementing things in-browser rather than in back end code. Bonus points if you do a Show HN and your implementation makes it to page 1 on hacker news.

Re: How to Pass a Programming Interview

#234
When the the job interview become a quiz show? I've spent plenty of time on both sides of the interview table. Sure, I've asked problem-solving questions. It was never to pay stump-the-candidate or to see if they could come up with some CS proof on the fly. It was to examine their approach to problem solving, and the way they interacted (back-and-forth questions). The right answer never entered into it, and if the interview question has a "right answer" then it is probably a lousy interview question.

I knew a college recruiter at Large Semiconductor Maker. She had been around the company many years, starting out as a mask designer. She knew nothing about engineering, but had worked with engineers on a daily basis for 10 years. She was great as a recruiter for new-grad engineers. One of her favorite questions was: "My back yard is 60 feet wide, and I want a brick fence across it. How many bricks do I need?" You would be surprised how many people never said another word, worked out a numerical answer, and told her the number. boggle. The point of the question is to find out how good the candidate is at uncovering and understanding the customer's wishes and what the customer's vision is of the desired end result.

Somewhere along the line there has evolved a group of people who never learned how to interview job candidates for problem-solving oriented jobs. A quiz-show lottery is a lousy way of finding out if someone can flesh out under-defined problem statements, replace a stupid problem statement with a better one, and creatively explore the dark corners of a solution space.

Let's stamp out the quiz show now.

Re: How to Pass a Programming Interview

#235

> candidates who have worked at a top company or studied at a top school go on to pass interviews at a 30% higher rate than programmers who don’t have these credentials (for a given level of performance on our credential-blind screen). Welcome to Silicon Valley meritocracy. And it's much worse for founders seeking investment, where there are no hard skills to test at all. It's almost purely about being the same class…

Gotta say, this is incredibly discouraging for someone like me.

It should be encouraging because you're being told the truth and being spoken to like an adult for once in your life.

Re: How to Pass a Programming Interview

#236
post #74
post #3

Another tip which I give: Interviewers vary widely in how much they care about whether your syntax is accurate, whether you handle invalid inputs, and whether you write unit tests. It's really useful to ask the interviewer whether they want you to worry about those things. If you handle invalid inputs for an interviewer who doesn't care about that, they're going to be a little annoyed by you going more slowly than ne…

You can always preempt the whiteboard issue by bringing a laptop along. "Hey, I'm a lot more comfortable writing code on a keyboard and with an IDE. Lets program this together in a text editor instead of a whiteboard".

Cool, since you opened and you have a dev environment. Write compiler/parser in BNF for the editing commands your editor supports. Assume non-standard encodings are possible for the key presses. Here are the examples for vim/emacs. Should work with both.

That could go horribly :)

Re: How to Pass a Programming Interview

#237

Earlier quoted context omitted.

It's my belief that the best experienced programmers don't have to go through programming interviews. Even if you don't actively make an effort to network, you have a network of people who know you're good enough to outright hire without the whole rigmarole. Companies who aren't finding people like this are missing out on many of the best.

> Even if you don't actively make an effort to network, you have a network of people who know you're good enough to outright hire without the whole rigmarole. Not sure why you think this is the case. It is really easy to end up with a worthless network (I managed), and many larger companies insist on forcing every applicant through the HR hiring funnel for compliance reasons.

It's been my whole career. Yeah, I've had to go in and do the grip'n'grin interview and talk to people for a couple hours to make sure I'm not a martian or something. But every job has always come about because someone at the company either knew I was competent (from working with me in the past) or asked someone I knew who told them I was.

I've never had a job that involved whiteboarding or any sort of coding test.

Re: How to Pass a Programming Interview

#238

> candidates who have worked at a top company or studied at a top school go on to pass interviews at a 30% higher rate than programmers who don’t have these credentials (for a given level of performance on our credential-blind screen). Welcome to Silicon Valley meritocracy. And it's much worse for founders seeking investment, where there are no hard skills to test at all. It's almost purely about being the same class…

this is different than other fields how? it's the same old since the beginning :\

Re: How to Pass a Programming Interview

#239

Being a good programmer has a surprisingly small role in passing programming interviews. And that just says it all, doesn't it? I agree that interviews should test candidates on certain basic skills, including (time/space) complexity analysis. But do you really learn anything by asking the candidate if they can recite the time complexity of a moving window average algorithm (as I was asked to do by an interviewer yes…

Whiteboard coding doesn't necessarily have to involve guessing the algorithm - any whiteboard questions I've asked avoided doing so.

On the flip side, my experience with take home projects is that they are much more of a hazing/pressure cooker ritual - at the least, the time pressure of a Google/FB/etc. interview lasts only a half hour. Most will expect candidates to spend a huge amount of time, which many won't have if they're actively job searching, or are busy people in general - I prefer to pour that extra time into open source work, since at the least it benefits others. One company assigned a project to me once that suspiciously seemed like implementing the company's whole business model.

It doesn't take long to figure out if someone has the right skills oftentimes if you ask the right questions - candidates shouldn't be penalized for companies' ineptitude in assessing interviewees.

Re: How to Pass a Programming Interview

#240

Being a good programmer has a surprisingly small role in passing programming interviews. And that just says it all, doesn't it? I agree that interviews should test candidates on certain basic skills, including (time/space) complexity analysis. But do you really learn anything by asking the candidate if they can recite the time complexity of a moving window average algorithm (as I was asked to do by an interviewer yes…

I don't think that is really a problem. We hire people to do a good job and most of the times kick-ass programmer isn't the best person for the job. At least for a smaller company we need someone who can understand business needs, can communicate better and Add Value. This is a far complex job than implementing red-black trees.

Consider this: We need to find the most shared URLs on Facebook in last 24 hours.

I can perfectly see why a lousy coder might achieve this objective better than a kick-ass one. A coder with average skills quickly figured out that Buzz-sumo has a public webpage with that content which can very easily be scraped using phantomjs. Job got done.

Another great coder suggested to me I should buy $10K per month Facebook firehose. He is not wrong and that is a good solution too but he failed to see that we are building a POC and not a full featured product.

Needs of companies are complex, many times if you can pay great salary just having a filter for IQ is good enough. But in most cases I think it is far better to look at an individual and judge.

Post reply on HN