6 ms·
10+ years of experience and no hash maps or Fizz Buzz for data engineers
- candiodari 9y agoI guess you missed http://joelgrus.com/2016/05/23/fizz-buzz-in-tensorflow/ http://joelgrus.com/2016/05/23/fizz-buzz-in-tensorflow/ Along with a thorough discussion about why it works and how it could be improved would give me pretty good faith about a data engineer's capabilities.
- DrinkWater 9y agoWell, if thats true i am taking the next one-way flight to London.
- mattlondon 9y agoIn my experience at previous employment there were a lot of chancers in technical contracting for Java and front-end dev in London. They all interview well, but when on the ground and asked to do stuff they are usually found out to be useless fairly quickly. The "one weird trick companies dont want you to know!" is that it takes about a week or two for people to fully appreciate the contractor is useless and needs to be sacked, by which point they've made £500/day over a week or two which is £2500-5000 for half a month's effort which for a majority of people in London is a pretty tidy sum. My lesson learnt from this is dont just quiz people in a face-to-face interview, but get them to do something in the interview.
- jkadlec 9y agoContractor in London here. I've seen this for Python / dev-ops as well, well more the aftermath since the contractors were usually already gone. But the level of incompetence was jarring for someone on 500 pounds per day (this was before Brexit).
- flukus 9y agoRemember the people in these examples have been employed in the industry for years. You'll probably be working either alongside them or on the code they produced...
- fiftyacorn 9y agoThis has always been true in London - if you are willing to blag it you can get a well paid contract role. You can normally spot them because they have a lot of 3-6 month contracts, and no renewals
- robinduckett 9y agoI've never had a contract that wasn't renewed (apart from one two week project based contract because the work was completed), in three years I've had four clients. All contracts started off as three month contracts.
- deleted 9y ago[deleted]
- Quarrelsome 9y agoI once attended an interview for a contract in the south of the UK with a company that I had applied to before a couple years back but sadly had a mandatory "must have degree" caveat. Strangely enough they'd dropped it the second time round. I step into the interview room and this tired looking 55-60 year old gent asks me the first question. > What does the "private" keyword do. Said in such a tired fashion that I skipped the question mark to effectively transmit its delivery. So I answer, as you do and this gent breathes the biggest sigh of relief I've ever heard. I ask him what's up and he replies: > You're the sixth candidate I've asked that to today and the only one to get it right. We have issues with finding real talent in the UK (my company STILL has an entire team of 4-6 developers to fill) and Brexit really isn't helping.
- headmelted 9y agoThis can't possibly be true... can it?
- Quarrelsome 9y agoI exaggerated the number a little. I think I was the third or fourth. At that company I met a contractor who thought architecture meant just turning everything into a Singleton. I was asked to write some tests for his code (fml). > Its in the Gang of Four! Was his defence.
- Ntrails 9y agoOne chap at my last place had a crusade against the global variables littered throughout the code base. By gods did he fight the good fight. After what must've been a good 2 years of active bitching and pruning, a new product was developed by a sub team without him - to be considered the pinnacle of tech that the team could produce. Look at this - just a single global variable!!! Amazing! The progress! Just that one global Dictionary<string,object> which contained everything the various classes would ever want, all easily grabbed with nothing more than a string and a quick cast into whatever the actual type was. Magic
- YourAnMoran 9y agoThe story of the senior Java developer is startling but plausible. If you work on legacy applications for 15 years and you're never the originial author who starts from scratch, it is very possible that you'll never write a main method. You always have one already.
- Quarrelsome 9y agoyeah but how the hell do you even start to grok a code base without knowing how to identify the main entry point? This is what disappoints me with MS technologies like WPF where they go out of their way to hide the static void main.
- haltingthoughts 9y agoYou can abstract out how things are setup. If you have an inversion of control framework that creates all your objects and makes sure services get started in the correct order then you don't really care about the exact details.
- Quarrelsome 9y agoyeah but where do you initialise the IOC container? ;) Also sometimes the magic breaks and you need to know how it works to fix it.
- andyjohnson0 9y agoI'd still expect such a person to have written standalone utilities and throw-away test applications.
- Joe-Z 9y agoEven then, this is stuff that the IDE simply generates for you. Why would I memorize the signature of a method I will probably never use?
- drej 9y agoI went to this data engineering interview and it appeared they had the same list of questions for all their roles (ranging from senior C++ engineers to Python ETL guys). After really struggling with some questions on libc, low level network and bitwise operations, I was asked "do you know how to quit vim?" I've never felt more super human.
- wiredfool 9y agoLittle known fact: ! is pronounced 'dammit' in when in vim. (at least for emacs users)
- deleted 9y ago[deleted]
- roel_v 9y agoIs 500GBP a normal contracting rate for such experienced developers? Seems so low, compared to mainland Europe.
- headmelted 9y agoToo true. Sigh. We'll always have Switzerland, roel_v. (It's Zug that has the 6% tax rate, right?)
- pja 9y agoThe £ used to be 1.6 to the $ not so very long ago...
- legulere 9y agoWhy should I know the exact signature of the main method? It's not like you write it every day. Eclipse offers to add the main method for you with one clicking I guess IntelliJ does as well. Hell after programming only Rust/Haskell/... for a while I forget the order of the statements of for loops in C/Java For the first question it is very much possible that the interviewer expressed himself not clearly enough what he actually wants.
- Quarrelsome 9y agohow do you start to understand a technology you've never used?
- mmjaa 9y agoYou let the IDE do all the work?
- Quarrelsome 9y agoand if that technology doesn't have IDE support? Lets say that due to an emergency you are the only person that can look at a problem with a WinForm client and there is an issue with Initialisation prior to the WinForm loading. Lets say (since this is a _very_ good example) that you need to create an architecture to share components between WinForm. Without knowing of static void main within program.cs you're not going to find the entry point and any attempts to share components is going to result in static sadness without doing some sort of service container gubbins or constructor shenanigans (although that will fuck the designer) prior to Application.Run(form) hitting in static void main. The ignorance of static void main is a key reason why so many WinForm applications actually suck and why so many developers make the sad mistake of putting their user interface FIRST which has the knock on effect of making code reuse problematic. This is fine when people make utils but I have a very long experience of seeing companies struggle with this issue as their util grows into something more complex. The entry point IS important and if you're trapped in an IDE you suck. Go read pragmatic programmer the chapter: Wizards. You need to know how Wizards do their magic or you get burnt hard when the magic breaks.
- headmelted 9y agoI realise that the way you've worded the exchange is just to make an example of your point, that said - I would've known the answer to the question, but the way it's worded might have made me look at you sideways in an interview if only because of how it's been framed. If you had worded the query "Regardless of programming language, what's the [accepted/efficient] way to store a series of variables so that I can quickly find a single value later" I'd have given an answer. Also, as hashtables / dictionaries are key-value stores I'd have been thrown off by the fact that in the question you're not looking for a value by a seperate key, but by the value itself. Fair point on the applicant not knowing how long that would take to return though, and not being familiar with the most common parts of the standard library after 16 years.
- bartread 9y agoI've done a lot of recruitment over the years. In fact in a previous role I spent an entire year doing nothing but recruitment. This sort of thing is sadly commonplace. It's not trendy or popular at the moment but asking somebody to write some simple code on a whiteboard is a really good indicator of whether or not they're a good programmer. Even if they're nervous and uncomfortable doing it you'll find out if they're a good programmer or not. That being said you want to try and weed out the people who definitely aren't good programmers before you invest the time in interviewing them. Things like Codility can be helpful, or you can do a 20 - 30 minute telescreen/Skype call and ask them to write out some code in a shared Google Doc. Honestly, if you can't reliably write some simple code on spec - e.g., write a function to reverse a string in a C-like language (if you're recruiting for Java, C#, C, C++, Go) - you may be many things, but programmer is not one of them. An argument I often hear against this sort of question is that it's not "realistic", but that misses the point. The point with problems like this (also Fizz Buzz, and the simple data structure problem in the article) is not to be "realistic" but to cut to the essence of a person's skillset and leave very little room for blagging. If you can't handle these things I don't believe you can handle more "realistic" problems either. Being a software developer is obviously more than "just programming", but the fundamentals matter, and programming is absolutely fundamental to software development. Do not accept any hand-waving or flannel from anyone on this point, ever.
- collyw 9y agoI would disagree. I was far better at that sort of thing straight out of university where we did a lot of small scale coding problems. Now I think a lot more about architecture and avoiding clever coding, more about database design and how everything fits together. I write far better code than I did 15 years ago, but I am poorer at white board style problems.
- akvadrako 9y agoAny decent programmer without a major handicap should be able to come up with a simple algorithm on the fly and write it on a whiteboard. That doesn't mean you have to be good at it; you may take your time, the syntax doesn't matter and it'll likely not be totally correct. But if you can't do it at all, which many candidates can't, I find it hard to believe you could be a useful programmer in any capacity.
- edem 9y agoI think that these people are not necessarily dumb. Thr problem is that they started traversing the knowledge tree depth-first instead of using breadth-first for at least a few years.
- Cakez0r 9y agoThe UK software contracting market seems to be flooded with people like this in general. It's infuriating if you can actually do the work because it makes it very difficult to make it past CV sift stage when everybody is blagging.
- forgottenacc57 9y agoThis guy is just so awesome, and right! Everyone sucks! I loved hearing about how people suck. I LAUGHED with him, at them.
- cbushko 9y agoI have personally encountered this because while working on a legacy java code base. Maps were never used because java didn't even have maps until after 1.3 or 1.4. Our codebase pre-dated that by a long haul...