76

I'm in the search for a new job in Germany as a senior developer (7years exp), and have done interviews for a variety of roles in large scale companies (minimum 1000 employees, IT teams 200 devs).

A consistent experience which I had is that if the companies core business is not IT (let's say car company), their interviews don't include any coding task, but rather some high level questions about my primary programming language or platform.

Should I see that as a sign that they're not serious about IT? Or is it the norm?

  • 2
    Comments are not for extended discussion; this conversation has been moved to chat. – enderland Mar 18 '17 at 12:58
  • 2
    I'm also German, but entry/mid-level dev. I think I only ever had one interview (out of ~10) where I did an actual coding task, and one where I did some simple LINQ expression on a whiteboard. Seems to be not that common here. – Lennart Mar 20 '17 at 6:55
  • 1
    Hah, I know the company. S... or D..N.., right? :) For my opinion, it is a bad sign.. Ah, when I remeber how much I prepared for some interviews and it was so easy in the end... And that easy is NEVER a good sign. – pandabear Mar 20 '17 at 13:48
137

Whether you're asked for programming questions shouldn't be a critical factor in your decision. They might not ask you simply because they don't know how. That's why they want to hire a senior/lead developer, because they don't have the resources to train you.

Example

My workplace develops very technical products, and provides good career opportunities. My boss didn't ask me a single programming question in my interview because:

  • The company didn't have a guideline for hiring a programmer (programming was not the core business)
  • He didn't know much about programming (that was why he was hiring!)
  • He was used to interviewing non-programmers, and thus wouldn't ask for very technical questions
  • He could only judge me from my résumé, which he would confirm by calling my previous employers
  • He was more interested in cultural fit

It's not a bad sign. Being the best developer in a non-technical environment could be a better opportunity than getting yourself into Google. Internal promotion is very competitive in Google, but you wouldn't have any competition in a non-technical workplace!

  • 23
    A non-technical workplace may not be that competitive, but also won't have much opportunities for promotion as a programmer. I'd not be surprised if @chiplax found out at his new job that there are no other programming positions above him. So not having competition for a position that does not exist is not a big plus. – Mindwin Mar 17 '17 at 13:14
  • 7
    Though, if they already have quite a codebase (that maybe even was done by contractors for them), you could possibly get into a situation where you have to cleanup a big pile of crappy code of which they maybe didn't even know that it was so bad (cause they had no experienced dev to tell them...) – Jan Nash Mar 17 '17 at 13:32
  • 5
    @JanNash and please, cleanup that crappy codebase by next week. – Mindwin Mar 17 '17 at 14:20
  • 8
    Please note that given the OP specifically asks about Germany, there there it is not common (and in fact: not legal, see zeit.de/karriere/beruf/2014-10/… as source) to call previous employers. – Reinstate Monica - dirkk Mar 17 '17 at 15:09
  • 4
    Another point to consider: If you're experienced and have a good resume that they trust, there is no real need to give you coding tasks. You've proven yourself over the last seven years. – David Mar 18 '17 at 5:23
60

The other answers are fine and mine should not be understood as exclusive. It's more of a lengthy explanation of the cultural background of why the other answers are correct:

Germans tend to believe what you present in the interview. Compared to other countries, we are not used to people lying in an interview. Sure, a little white lie here or there or maybe omission of facts that are not necessary to bring up if not asked for, but nothing you'd classify as intentional fraud. Other countries seem to have that and I can see Germany getting into coding tests real quick if we had fraudulent applicants en masse (like this poster).

Why is that? Well, much of our interview process is written down. We have no system of "references" where HR calls a former coworker or boss and gets verbal information. We have a system of written testimonials, both for certificates and former job experience. Now you could say "well, but that's even easier to fake than having to have a guy waiting for a random call. That's just a paper I need to make up!" and that's true. But it's on file. Forever.

Now, being on file seems to be nothing special. Who cares if your potential lie is on file, as long as you got the job, right? Well, yes, but... Germany has a good system of workers rights. It's hard to get rid of somebody, there are unions, protections, long notice periods. Special rights for disabled people, anti-discrimination laws etc. Lying on your application is the absolutely fastest way to be out of a job. You could not get fired faster if you had attacked your boss with an axe. There is no protection, no benefits, nothing that would hinder the company to kick you out the minute they find out. Courts even ruled that lying on the application is a reason for immediate termination of the contract even if the person did the job properly for years, which common sense dictates means their lie was of no consequence to the company in the end.

So lying is the stupidest thing you could do when applying for a job, in Germany even more so than elsewhere. Germans rely on applicants to know this and act accordingly. If you have a paper that says you did a good job in your previous company (Arbeitszeugnis) they tend to believe that. If you have a paper saying you finished your education with success, they tend to believe that.

I've interviewed my fair share of developers in Germany and though some were not what I was looking for, I did not meet a single one that would not have been able to code FizzBuzz in at least two languages and pseudo-code. But they all had written references from an institution I trusted, that had already certified that they could do it. There was no need to do it all over again.

In addition, German contracts normally contain a probation period where company and worker can quit at very short notice without the need to give a reason.

So with the majority of applicants already certified by a trusted source (other company or educational institution) to be able to solve simple coding tasks and the good feeling that you can still get rid of people that somehow faked it very fast, there simply is no need for such tests.

Personally, I am a fan of having the potential candidate over for a test under real conditions, not on a whiteboard with an artificial task, but that's another story. Most Germans require no coding test and that's not a bad sign. It's not an exceptionally good sign either, it's basically just the default.

  • 8
    If nothing else, worth the tick for having a good view of how another country handles their intake of employees. – SliderBlackrose Mar 17 '17 at 17:17
  • 9
    It is not a matter of fraud, it's just that people are horrible judges of their own skill-level. This is true in every country. I have interviewed developers who rated their own skills at 7/10 who couldn't solve the simplest imaginable programming problems. Never attribute to malice what you can attribute to incompetence. – BlueRaja - Danny Pflughoeft Mar 18 '17 at 3:24
  • 5
    @BlueRaja-DannyPflughoeft That's true and Germany is no exception in that regard. But applicants come with a lot of paperwork that can be trusted, so whatever they say about themselves, I will have statements of others, too. If someone says they are a 9/10 and their education records rank them C and his former employers all rank them "average", then I know what to believe, no matter what that person thinks about themselves. – nvoigt Mar 18 '17 at 7:05
  • 2
    On top of that german courts state that laying on your application voids your work contract and they have no hesitation to proceed criminal charges for that commit crimes. – TomTom Mar 18 '17 at 7:25
  • As a minor note, references in the United States and elsewhere are quite frequently written (especially in academia)--but in Germany's system they always are. – chrylis -on strike- Mar 18 '17 at 23:14
18

I'm a Solutions Architect working in Germany and my experience is a mixed bag.

On the one hand, most German companies haven't tested me for coding, and this is specially true for more senior positions. On the other hand, the best companies I have worked for did much harder interviews, and they included coding exercises (although this was for junior positions).

As an specific example, one company made a mistake and called me to interview for Software Engineer, with a coding task attached. When I told them that I had applied for Software Architect, they skipped the coding exercise and brought me to the Lead Architect for a verbal interview.

All in all I wouldn't take it as a bad sign if you feel that the rest of the interviews were rigorous. However, if they are willing to sign you up with almost no effort from your part, I would consider it at least a warning sign.

  • 5
    "if they are willing to sign you up with almost no effort from your part, I would consider it at least a warning sign." - worth expanding, it may not be an issue for the current hire, if you feel competent at the job and that concerns about seriousness of IT are covered. However, your new IT colleagues will probably have been through the same hiring process, with potential holes in the filters. As a senior hire, you should be concerned about the quality of the staff you will get to work with and may be responsible for. – Neil Slater Mar 17 '17 at 14:29
  • Software Architects don’t know how to write code? I knew it! – JDługosz Mar 19 '17 at 8:45
11

It most likely means that they don't have anyone with relevant experience able to test you so they are relying on you to honestly describe your skills. They are then trying to evaluate your honesty to decide how to accept that. This is what references, employment history, interviews and suchlike are about after all.

I've had similar things before, I was interviewed for a Java coding job and the guy interviewing me was technical but not Java. He tried to give me a Java test and I could tell almost instantly he wasn't very familiar with Java. In my case that didn't matter as I wasn't exaggerating my skills but if I had been so inclined I could easily have blagged my way through the test with only limited Java knowledge.

In fact after I was hired they put me on all future Java hires to do a proper Java test. Until they had a senior Java dev they knew they couldn't test it properly but were just doing the best they could with what they had.

This may actually even be a good sign - this could be your chance to build something new from the ground up and be in at the start.

8

Yes It's a bad sign.

I personally avoid any company that doesn't ask a proper (and interesting) technical test.

Why ?

Simply because I don't want to work once more with incompetent colleagues. And not having any test makes it more likely to have at least one bad colleague.

On top of that, it generally indicates that the company doesn't really understand why it's important to have good developers, which leads in general to development teams where no good practices are enforced, leading to horrible code...

If the company is too small and they have nobody in technology to interview you, then it's fine, you can then interview the following ones.

But in your case, with companies with 200+ developers, I would be surprised if none of them could at least test you for basic knowledge.

  • 2
    I never said there shouldn't be a verbal interview with it. Making sure someone can actually write some code and can think logically is already a great start. And I can assure you that in a company I used to work, many developers couldn't because they have not been tested. A technical interview is just a good way to filter out most of the bad candidates (but that might also filter out some good ones). – dyesdyes Mar 17 '17 at 17:22
  • 2
    There was no mention of how many, if any, other developers were there, how technically savvy the interviewer is, what the company's interview process comprises or how they go about it (multiple stage interviews? Basic knowledge eval->psych eval->HR interview->team interview->?) so it is an arbitrary situation to say "Is this bad". – SliderBlackrose Mar 17 '17 at 18:34
  • 1
    Ask yourself honestly: what proper and interesting technical test could you possibly you ask a potential senior/lead developer that does not involve the applicant bringing a sleep bag and a toothbrush along to the interview? I might be exaggerating a little, but you get the point – crizzis Mar 17 '17 at 23:39
  • 2
    @crizzis: Actually a simple dumb test, any practical (i.e. not white-boarded, but coded and run) FizzBuzz variant, still filters out senior staff in my experience, and as a relatively senior developer nowadays I do not see such a thing as an affront to my intelligence. Whether or not that is a correct filter from the business perspective is arguable. However, personally I have been much happier working in teams where basic problem solving skills like this are checked and not assumed due to years of seniority. – Neil Slater Mar 19 '17 at 9:02
  • 1
    @crizzis I agree with Neil Slater, you would be surprised how many senior devs can't actually write code but are really good at bullshitting, hence going through technical discussions easily. – dyesdyes Mar 20 '17 at 8:16
5

Being also German, I can confirm your impression. Small coding tasks (Fizzbuzz et al) are very rare here, mostly because (which is, I admit, an achilles heel) Germans have perhaps a little bit too much trust in certification and documentation.

Some points are valid: Jonathon Cowley-Thom mentioned the probationary period of six months, so you need to blame yourself if you cannot tell the wheat from the chaff after this time (But I have a story confirmed by several people where a horrible programmer was able to fool people for years with a staggering amount of arrogance). Lilienthal is also right that the fear of losing face plays also a big part: Giving coding tasks to people does put the experience and the claims to a test and that may ruffle some egos.

So at all, the situation is not so unusual. It may point out to deficiencies in the quality of the acquisition, but it is still possible that you find excellent coders and high quality software (Ask for a probation day, it is not unusual to get a better impression). As already said, it may be also your good chance to raise the bar.

The reason I still hold coding tasks high is their informative value. Such small coding tests do not really test how good you are if you have some experience, but if the applicant has not a total blackout, they inevitably expose impostors who cannot code...AT ALL.

And yes, they exist. So some ways to defuse the situation if someone does not want to code is saying that everyone must do such a test.

You put them before an active and ready IDE and give them a small task.

Put out "tshoausuntagpcurhntaougcruats" without t, o, h and ending the string after the second g.

Simply by observing you will know at once if the applicant has experience with the language (will code at once) or if the applicant has not experience with the specific language, but know to code (they need to "translate" the code constructs, use wrong patterns (C++ => Java ==/equals, C# => count/size()) but will complete the tasks). Then there are the bad programmers and the complete incompetent ones.

You can also see bad habits at once:

  • Several commands in a line; those people often do not debug.
  • Several non-speaking variable or constant names i,k,j,ab,abcj etc.
  • Reusing excessively variables, scope violations, no memory management.
  • No formatting (Is not really important what formatting style, only that it is consistent and readable).
  • Voodoo programming: return at the end of the void method, continue as last statement in loops, initializing same variables twice....do strange things to avoid the wrath of the inscrutable compiler.
  • 1
    I saw a lot of who we called Wizard's Apprentices after the IDE “wizard” code generator and the Disney cartoon. I ask them at a white board, not an IDE. Some have no clue how to actually write a class (in C++). – JDługosz Mar 19 '17 at 8:48
  • I and j are very common as array index's in technical programming its a holdover from the 50's/60's and Fortran – Neuromancer Mar 19 '17 at 20:47
  • 4
    Not only is i common for a loop index, using another name is misleading because it suggests the variable is more than a loop index. And "no memory management" would be better than "good memory management", in my book. I somewhat suspect that I'd like Thorsten's interview style, because it would keep me from working for him. – MSalters Mar 20 '17 at 11:42
  • @MSalters And how do you know that i is nothing more than a loop index or the other way round ? Wouldn't you prefer to know immediately that it is a row,column,index (only direct access),offset (only used with a base),counter (does nothing)? It simply prevents errors. In the early days memory was so limited that short names payed off for interpreters, so it was quite reasonable. GC'd languages can still have needless open object references/system handles if you are not careful. (And I like you, too.) Anyway, I suggest to move the comments to chat if we need to discuss this further? – Thorsten S. Mar 20 '17 at 12:30
  • 1
    @ThorstenS.: You miss the point: the author knows, and chooses i IF AND ONLY IF it is no more than a simple loop index. This is a strong convention. It says "nothing up my sleeve here, don't bother searching for a hidden meaning". Trying to force a meaningful name in the absence of such meaning is actively misleading future readers. – MSalters Mar 20 '17 at 13:18
4

Should I see that as a sign that they're not serious about IT?

No, that would be assigning to much value to it. You can consider it one of the data points you collect on a potential employer during the interview process. True red flags in an interview are rare, usually you'll instead end up with a combined picture of how the company approaches the hiring process, their goals or the market.

For instance if they don't do coding tasks, don't grill you about your experience and don't check your references, that could be potentially worrying since they open themselves up to hiring poor developers or outright charlatans. But then again there could be a reason why they're skipping certain steps with you or they may just not follow a standard process all the time. If they know you or people who worked with you or otherwise have reason to believe you're on the level then they might not think there's any need for basic competency testing.

In fact, that's why these kinds of tests are (or should be) rare for senior profiles: a lot of senior developers consider them a waste of time and borderline offensive. After all, they basically signal that the company doubts your claims or experience. When you reach senior developer level you are assumed to have the required skills and such testing should be replaced by reference checks to verify that a candidate is who they say they are but mainly to get a sense of the knowledge and experience they bring to their work. A resume won't tell you that but neither will a coding test once you're talking about people with 3+ years' experience. Note that in some countries reference checks are rare and in those cases it can be more common to still test candidates in ways that you wouldn't if you could call references.

Remember that hiring is a two way street. If something an interviewer does or doesn't do puzzles you, it's fine to ask them about it (with some obvious exceptions). If you're concerned that they're not doing their due diligence you can ask about their priorities in hiring, whether their employees are certified, what kind of profiles they've hired, why they have a vacancy and so on. But just the fact that they didn't do a coding test doesn't really tell you anything.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.