518 karma · joined June 16, 2014
As for the clarification on your idea, this audience (and investors) would expect to see much more than that. After reading what you wrote, all I can tell is that it's related to online advertising, but I'm not clear on what specific problem you're addressing, how your product will make money, or how your product will compete and gain marketshare in a crowded market of entrenched (and capital-rich) competitors.
I say this with the intention of being helpful, not to tear you down. And I'm just a guy who reads HN, not an insider of anything.
We typically do a short phone interview first to assess if there is enough common ground to work with. We're looking for huge red flags at this point, such as an inability to talk through very fundamental programming concepts, difficult to communicate with, or a generally disagreeable personality.
Next we do a take home project, where we share a functioning, boilerplate web app, and ask the applicant to spend a couple hours addressing some portion of "requested" functionality. The barrier we're looking for here is actually not very high. We want to see that the applicant was able to figure out was going on in an existing code base and that that they were capable of making a new, original addition to it (even if very small).
The next stage of the interview is an in-person interview with 3 or 4 us. We usually start off with a 30 minute paper test, where the applicant can pick 5 out of 10 questions to answer. Pseudocode answers are expected, not syntax perfection. This is really another datapoint where we're trying to make sure the applicant truly is technically competent.
We then sit down and talk for about an hour. We ask questions about their resume, the project, and the paper test. A lot of this is making sure that they can talk about the things they chose to list on their resume. If they indicate expertise in TDD then they can expect questions about frameworks used and software patterns utilized to improve testability. If they indicate expertise in a particular database server, they can expect detailed questions in that area. This is also an opportunity for them to ask us questions about our company, culture, methodologies, etc.
The final part is a collaborative exercise in defining the architecture of a proposed system. I recognize whiteboarding a solution is tough in such a stressful situation as an interview with people you have not yet developed a working relationship. So we try our best to reassure the applicant, and to make it as collaborative as possible. Sometimes we'll debate different options amongst ourselves to see how the applicant participates and which direction they choose.
I usually close with a tour of our dev area, as well as a few areas of the company so they can see if it feels like a place they could call home.
Interviewing is hard on both sides.
Each office, as well as the standup area and the conference room, have a whiteboard wall.
I would say that the general idea is that developers come together at standups, and typically plan out the day. If two or more developers determine a discussion is needed, they normally schedule right after the standup. Then the developers depart to their offices, and generally put their heads down and work in quiet. Most leave their doors open throughout the day, and close their doors when they have phone calls or small meetings.
The arrangement works well. Adhoc conversations are not discouraged, and occur throughout the day as needed, but the separate offices keep the trivial conversations and disturbances to a minimum.
From a cost perspective, this layout requires considerably more space than an open layout. And separate offices require separate HVAC ducts, and walls and doors are (obviously) additional expenses, too. I'm grateful that our team's contributions were recognized by the company (a non-tech company), such that the expense was considered worth it. it's certainly a cornerstone of my sales pitch for recruiting developers.
Where I do disagree just a little bit with mrmekon, is that I tend to look for people who have experience with the necessary stack. I would be hesitant to hire a senior developer for a C#/MVC position if they have (broadly) never used C# or never done web development, for example. Modern stacks have a lot of moving parts, and I would prefer senior developers to understand how to troubleshoot, tune, upgrade, test, and deploy on the needed stack. These are things that a very strong developer could remediate within a few projects, though, which is why I only slightly disagree with mrmekon.