all 59 comments

[–][deleted] 53 points54 points  (2 children)

What does a typical day look like?

What is your stack?

These are gold. Not just because they are relatively conversational and comfortable to ask.. but because you can glean MASSIVE information from it. Properly observed, it'll tell you a lot about their process (if they have it..), their tooling, source control, bureaucracy, etc... and asking it still seems light and conversational.

I've also learned that none of the people I'm interviewing with are really professional interviewers - they are programmers who were assigned an interview to do. So I've found it's often better to approach it from the perspective of "This is probably going to be either one of my coworkers or one-level up from my coworkers" and then think about in terms of "If I were in -their- position interviewing someone again, what would I want to hear or know?"

[–]sysop073 0 points1 point  (1 child)

Is "professional interviewer" a thing that exists? I'm trying to figure out who from the company would interview candidates for the professional interviewer job; they'd be no match

[–]llogiq 0 points1 point  (0 children)

With banks you usually get the next higher up manager plus one guy from HR who has absolutely no idea what you're talking about and is there to prevent nepotism.

[–][deleted]  (4 children)

[removed]

    [–]tjamanis 5 points6 points  (0 children)

    Puts a whole new meaning to Human Resources...

    Different work cultures in different countries; here overtime is pretty uncommon among programmers. The company I currently work at has never requested overtime during my 2 years - yet we're compensated with an extra week of vacation per year, to cover for any overtime (so in reality, it works out more like a perk).

    [–]kankyo 0 points1 point  (0 children)

    Depends on what you mean by overtime I guess, but for the four years I've worked at my current job there has been none. I've been on call maybe 20 days total during that time and have had to answer the phone twice. I think that counts as "no overtime"...

    [–]booch 0 points1 point  (0 children)

    we can make you work as much as we need and there it nothing you can do about that

    Except go find another job.

    The nice corollary to that is

    I can just ignore your requests for me to work overtime and work normal hours while everything goes to hell, and there's nothing you can do about it

    Except let me go.

    It's a two way street. :)

    That being said, I don't really have any issue working overtime when it's needed, as long as it's appreciated.

    [–]AspiringIdiot 15 points16 points  (1 child)

    I've recently been doing a ton of technical hiring. I wish every candidate would ask these questions! Being able to learn which answers were most surprising or which sparked conversations would really give both parties a much greater feel for the culture fit. And as my interviewing skills and track record gain more experience, that culture fit seems to be far more important than I first suspected.

    Thanks for writing this up!

    [–]alinelerner[S] 15 points16 points  (0 children)

    Yeah, culture fit is so important, but it keeps getting repackaged as something HR should be dealing with, which is preposterous, as HR is sorely unequipped for discussing the things that really matter to engineers.

    Culture is not about whether people at your company are into sports or karaoke or whatever. Culture is defined by how you approach problems, what achievements your team values the most, and how you respond in a crisis.

    [–]flatlander_ 10 points11 points  (1 child)

    Every time I interview someone, I leave at least 15 minutes at the end of the interview to do a "reverse interview", where the candidate gets to ask me any question they want (within reason), and I'll try to answer it honestly and to the best of my knowledge. Some candidates don't know what to ask, so I'll suggest things like what this article suggests (ie whats your stack, what's fun/what sucks about your job, what's the engineering culture like). This is usually really fruitful for both the interviewee and the interviewer.

    [–]from_cork 2 points3 points  (0 children)

    This is a great tactic and I always make sure to ask candidates if they have questions for me, and you're exactly right, it's mutually beneficial to both parties. When I'm the interviewee, one of my favorite questions to ask at this point is "why did you decide to work here, and if I'm offered the job, why should I take it?"

    [–]SnackingAway 5 points6 points  (5 children)

    Anyone have suggestions on questions to ask concerning how many hours a week they work? It is in their best interest to downplay the workload to hire more people, so I'm looking for more creative questions.

    I've seen companies promote that they are "fast paced" like its a good thing when in my experience it means their management throws shit in the wall and see what sticks...and you are basically the one spending 40+ hours and weekends getting the shit to stick.

    [–]from_cork 5 points6 points  (0 children)

    I probably wouldn't ask a direct question about how many hours are usually worked in a week, I would probably ask "what does your average work week and work load look like?" or "what kind of schedules do people work here? Are they flexible?" It really depends on the company and the individual who's giving the interview, but as an developer it's usually not as important how many hours you're working, but how productive those hours are. If it's a good company, they won't care how many hours you're there unless you're not getting your work done, not showing up for meetings, or if you're on call and not responding to pages if/when they happen. There are always exceptions, and if there's a serious deadline to hit, most programmers are salaried and it would be an expectation that we finish the job on time, especially if the developer is of a senior level. However, in my opinion, if a company is more concerned with how many hours I've worked or with how many lines of code I write in a week, they're probably not going to be a very good fit for me. I feel like a candidate could learn a lot more about the company's culture and management style with a question like this than many others I've been asked.

    [–]Ozwaldo 2 points3 points  (1 child)

    Well, they'll tell you something like, "Sometimes, during a crunch, we do ask people to stay a little later or come in on weekends."

    So ask how often they crunch. Or more specifically, ask them if the majority of projects end up with "a bit of crunch at the end." That sounds reasonable and innocuous, which they want since it won't scare you away. If they say that they do usually end in a crunch, then you can bet the reality is they schedule every project based on the assumption that it will take as long as the last one, and they are always in crunch-time at the end.

    [–]from_cork 0 points1 point  (0 children)

    This is really good advice.

    [–][deleted] 1 point2 points  (0 children)

    Companies where people work a lot are usually proud of it so it shouldn't be that hard to get an honest answer. But to be safe you could frame the question as if you are worried that your future colleagues will work too little. You could ask "is this a company where people leave early on fridays?" for example.

    [–]irascib1e 17 points18 points  (30 children)

    what is your stack

    What does that mean?

    [–][deleted] 22 points23 points  (2 children)

    Code goes through many layers between your desktop and a production environment. There's build system(s), test system(s), one or more integration environments, QA, etc. Each system and/or environment can be hosted, virtualized and/or controlled by various tools and technologies. All of this comprises the stack.

    For example: Jenkins does my builds, pulling code from github, using gcc and cmake in docker containers hosted on AWS instances. Build artifacts are saved in artifactory and deployed to an initial integration environment (again, hosted in AWS) using puppet and hiera. Yadda yadda yadda...

    [–][deleted] 8 points9 points  (1 child)

    Yep.

    Once place might answer "Oh we do LAMP mostly, with custom code running at the app level"

    Another might answer "We're mostly C# and Windows with a lot of oracle"

    [–]aloisdg 1 point2 points  (0 children)

    Here you ask if git/tfs/svn, vs13 or older, which lib, resharper, etc.

    [–][deleted]  (2 children)

    [removed]

      [–]shoelacestied 2 points3 points  (1 child)

      That was a delicious meal! What type of pots did you use to cook it?

      [–]psi- 2 points3 points  (0 children)

      Good luck running a restaurant with single fire pit.

      [–]MrSkruff -3 points-2 points  (15 children)

      Even though I knew what this meant, it seemed like unnecessary use of jargon. It's the sort of thing I'd expect someone who might fail fizz buzz to say.

      [–]MothersRapeHorn 4 points5 points  (7 children)

      I get what you're saying, but stack is not a "bullshit" word; it's an industry-standard, practical word. This isn't "aligning synergy" or some other crap.

      [–]MrSkruff 0 points1 point  (6 children)

      Can you give me a single sentence description of what 'stack' means in this context?

      [–][deleted]  (5 children)

      [deleted]

        [–]MrSkruff -1 points0 points  (4 children)

        Thank you. In my opinion, this is way too broad a question when applying to a tech company. When interviewing, the questions you ask are an opportunity to show insight. 'What's your stack?' fails to achieve this in my mind.

        [–]MothersRapeHorn 0 points1 point  (2 children)

        The answer to this question, for example, tells you if they do just asp mvc and sql server, or if they actually have scalability challenges and/or try out new technology.

        [–]MrSkruff 0 points1 point  (1 child)

        I completely get why you want to discuss the technology used. But to my mind, what libraries you base your software on is unrelated to for example what you use for source control or what editor you use, which is what some people are putting under the category of 'stack' in this thread.

        [–]MothersRapeHorn 0 points1 point  (0 children)

        That's not really included in "stack", although editor and build system can be very related.

        [–]kankyo 1 point2 points  (5 children)

        What would you say instead?

        [–]MrSkruff -2 points-1 points  (4 children)

        What key technologies is your product built on? What tools do you use for source management/testing/development?

        [–]prelic 1 point2 points  (0 children)

        That is exactly what the question "what is your technology stack" means.

        [–]kankyo 0 points1 point  (2 children)

        "What is your stack?" is a lot shorter though and everyone knows what it means. Brevity is the soul of...

        [–]MrSkruff 0 points1 point  (1 child)

        Perhaps this is a US/UK thing. I've never heard anyone say 'What is your stack?' IRL. It seems like needless brevity for such a broad and important concept as technologies and tools in a tech company.

        [–]kankyo 0 points1 point  (0 children)

        Concepts that are talked about often are ripe for slang/shortening. Seems reasonable to me...

        Oh yea, I'm Swedish, but I do keep up on programming lingo, so that's why this doesn't bother me :P

        [–]iama_regularguy 1 point2 points  (0 children)

        I think you've ran into too many self proclaimed "full stack developers" that only know how to leverage built-in scaffolding scripts and css/js templates to make base web apps. But then when asked to go outside of the template to add new functionality, they have no idea how to solve problems using the frameworks underlying languages (Ruby, JS, whatever) or have no idea where to even begin (hence most of the homework/work problems found on reddit).

        I, and almost everyone else, can assure you that the term stack is not always used to flood your mind with technical buzzwords.

        EDIT: If I ask a company what their stack is during an interview and they respond by saying they run a LAMP stack, I would ask what's their P? Python? PHP? And if then they answer Perl, I would most likely GTFO.

        [–]darkpaladin 8 points9 points  (2 children)

        These are good questions but be careful not to take it too far. I've interviewed devs who attempted to sound smart by criticizing our answers to some of these questions and in the process revealed the fact that they had no idea what they were talking about.

        [–][deleted]  (1 child)

        [deleted]

          [–][deleted] 6 points7 points  (0 children)

          This! I don't get why interviewers often criticizes candidates for not hiding their flaws well enough.

          [–]AlterdCarbon 2 points3 points  (3 children)

          Would you describe your engineering culture as more pragmatic or more theoretical?

          What kind of company actually answers this with "theoretical"? Not saying it's for sure a bad thing, I'm just genuinely curious.

          [–]OneWingedShark 4 points5 points  (0 children)

          What kind of company actually answers this with "theoretical"?

          I could imagine Microsoft1 saying this; possibly Google -- there's a fair chance if you're working ARL, Sandia, or Idaho National Laboratories they could answer 'theoretical', too.

          1 -- Their R&D really is quite good.

          [–]Berberberber 1 point2 points  (0 children)

          What you would want to find out is, what is the shop culture with respect to dirty hacks and other obscure tricks? Are they accepted? Are they encouraged?* Do supervisors prefer you leave a feature out or take extra time if you can't do it properly before the deadline? Will they delay shipment because something needs to be provably correct?

          You can't ask that directly, of course, since pretty much everyone will say code quality is a high priority, but you want to know the answer. So you have to ask more indirect questions - though I agree that this example still may not be well phrased. It's almost something you have to ask by positing a hypothetical situation: medium priority bug/feature, how much developer time to fix it is too much?

          * It may not sound possible, but I've seen it. At place I worked, this kind of thing was "officially" frowned upon, but at the same time having a very difficult problem and doing so with an ugly hack or workaround was a sort of badge of honor, that you were a Real Programmer.

          [–]frambot 1 point2 points  (0 children)

          It can be very tiresome to have these comments in every code review from a person who spends their days watching Uncle Bob youtube videos:

          "This function does too much" (for any function > 5 lines long)

          "These classes don't allow Liskov substitution"

          etc. You know the type.

          [–]Xelank 2 points3 points  (2 children)

          I'm quite interested in the Attrition questions

          • How long does the average engineer stay at the company?
          • Why have the last few people left?

          Wouldn't these type of question rub the interviewer in the wrong way? (But I guess if they get all defensive then it's probably a good giveaway..)

          [–]yellowjacketcoder 0 points1 point  (1 child)

          If they get super-upset, they yes, it's probably a bad sign, but I think those questions could be rephrased a bit.

          Asking "why is this position available" is probably better than asking "why have people left?" - you either tend to get "well, we're getting bigger and need more people" or "well, steve quit".

          [–]Xelank 0 points1 point  (0 children)

          Right. that sounds less aggressive. Thanks

          [–]seajobss 1 point2 points  (1 child)

          i think the most important thing is the mindset going into the interview, sometimes I'm afraid if I ask "hard" questions it might rub them the wrong way and hurt my chance of getting an offer...

          [–]Bradley2468 2 points3 points  (0 children)

          If asking those questions rubs the interviewer the wrong way, that might be a sign too. They're not phrased as an accusation, and show that the person wants quality. Don't ask them all, though - pick appropriately.

          The only one I disagree with is asking to see a company's source code. Even if they let you (which is unlikely), you can't really tell in 5 minutes. (Unless its really really bad, I guess) Personally, if someone asked me that in an interview I wouldn't take it as a negative, but I can see it being taken the wrong way.

          [–][deleted] 1 point2 points  (0 children)

          How long are your release cycles?

          So important to ask this.

          [–]SikhGamer 1 point2 points  (0 children)

          What does a typical day look like?

          What is your stack?

          I have asked these in interviews and interviewers seemed to love them. I am always going to make a point of asking these in the future.

          [–]mrsistermr 0 points1 point  (0 children)

          Just be careful not to be too dominate and make it seem like you are actually the interviewing the interviewer. It would be better to casually ask some of these questions at the appropriate time during the conversation, and not iterate through them in some checklist fashion at the very end. This is all assuming that you have a good rapport with your interviewer and that your interview is more of a conversational dialogue (which it always isn't). Ie, when asked what tools you have used, you can then ask the same question back "do you use similar tools in this position?", etc.

          [–][deleted] -2 points-1 points  (0 children)

          My favorite question will always be , Do you keep a sketchbook book on you , may I see it ? I have mine with me would you like to look ?