reat people make great companies
There are no seniors or juniors in software development. There are only knowledge seekers. I’ve worked with people that have been in the industry for more than 20 years and been utterly useless. On the flip side, I’ve seen university students be the leaders of architectural design and best practices.
In software development, interviewees are asked direct questions about their skills. Asking a mobile developer, “What CI environments have you set up previously for mobile?”. If they can’t answer, then perhaps they are not passionate about mobile development? Or maybe don’t have the right learning channels/mentors/methods to have heard about CI’s in mobile.
A traditional CV doesn’t tell you anything. It’s better as fire paper than anything else, and here’s why. Where I previously worked at had a hiring process where each part of the process is as a percentage towards the candidates’ success rate. There were three processes; two revolve around the CV.
- The recruiting company would do psychological examinations.
- The CTO would have a light interview with them to suss them out, ask about previous experience. Ask what sort of methodologies they used in their former workplace.
- The developers would grill them with technical questions and get a feel for their knowledge base.
It resulted in a guy who got hired who had failed all the technical questions and literally couldn’t code. His CV and experience seemed to be ‘excellent’: he worked on ‘big projects’ and had been coding for more than 15 years. What happens when he started “working”? Well, he sat on various teams for two years because nobody wanted the responsibility of firing him. He ended up straining the teams he collaborated with.
Just because somebody has worked for Google, Facebook, or some company [insert here, five years] doesn’t mean anything at all. You see, with development, there are so many different facets involved, so many variables that it’s impossible to gauge what their real impact in their previous companies. The only way you can find out is with a creation interview.
A creation interview is where you ask the developer to create something within a timeframe. For example, something we do at Polydelic is to ask mobile developers to create a weather app within 4 hours for both platforms (iOS and Android). It must be functional; it must look good from a design standpoint.
Above, we can see examples of good vs. bad mobile designs. The good one could have created by the ‘junior’ following UX design standards, is smooth, looks great, and offers an excellent customer experience with excellent coding standards and practices. The bad one could have been created by a ‘senior’ with years of experience. We’ve seen submissions like this in the wild from creation interviews.
Phases to hiring good developers
1. Advertise in the right channels. Make job announcements by hosting hackathons, going to developer-centric places, local speeches about frameworks, forums, posting jobs on developer sites like Stackoverflow, etc. When developers apply, filter by the ones that have existing projects on their applications. Download those apps, check out their websites/apps, have the designer critique their work.
3. Google had a problem a few years ago with its hiring process in some of its departments. They were hiring outstanding developers, but they produced shoddy products with a poor user experience, which is still the case today with some of their products. For example, the Google Play developer console is a miserable experience compared to iTunes connect by Apple. They were not looking at each individual’s ability to understand the user experience but only looking at their technical skills.
One tactic I’ve noticed in a few companies is that they take their interviewee to the pub. The CTO or lead engineer joins them and usually a customer-facing sales rep or some other social job role. A sales rep is excellent as sussing people out after a drink or two, for example. You’ll also see them let their hair down, and you might see them talk more freely than in a typical interview. Of course, this could be a health hazard if you’re hiring a lot :-D
4. When the developer passed these stages, they come to an essential part of any developer job: the technical interview. The technical discussion should also include a creation interview. Get them to make something related to their position within a timeframe like the weather app in 4 hours for mobile. If they can’t create a functioning project in the deadline, it won’t work.
Analyze the designs and the code afterward
- Does it follow good user experience patterns?
- Does the code look clean, extendable, are they using components properly?
- Are they using too many tools or libraries?
- Does it build and, does it crash?
- If it crashes, how would you do to debug it?
- Are there warnings or errors reported within the given IDEs?
- Are they using proper backups like git with some remote origin etc?
- Is it scalable for the operations guys?
- Does it use reasonable local data solutions like Redux?
- Are the components appropriately isolated?
- Do they use models, services, actions etc?
- ... and much more
These are just some small examples of potential questions you could be asking as an interviewee.
Along with software development, we also offer developer testing and hiring. If you are interested in this, please contact us using the contact form.