It’s a challenging time, but unlike those in the NHS and other organisations, we’re not confronted with the threat of Corvid-19 at work on a daily basis. All of us at Alto are taking part tonight in #Clapforourcarers at 8pm as a very small token of gratitude to those who are risking their health in order to help those most in need. Medical staff we know have told us how much they appreciate this guesture of support, and so we encourage everyone to join in.
Author Archive for: haltow
Technical Interview Questions
Hopefully you’ve already read our article ‘How to Interview Technical Candidates’ – if you have and you’re now looking for some examples of technical questions, great – read on (if not, we’d recommend that you have a look here). We’ve asked a handful of particularly successful CTOs and development managers for their top technical questions and have added a few of our own.
1.. What is an interface?
Toby Widdowson, CTO at SeeLocal, believes that this is a really good way to explore how much someone really thinks about what happens when they write code.
Toby says ‘If the interviewee says ‘an interface is a contract guaranteeing that a method will be present at run time’ then they just get a tick and we move on to something more advanced and interesting. But it’s surprising how many people don’t really get this concept. At least I would be expecting some sort of discussion about polymorphism, loose vs tight coupling, avoiding inheritance, compiled vs uncompiled languages and run time errors, or some other aspect of coding that shows they really understand what these interfaces that they use every day actually do.’
2. Give me an example of a SaaS application that you have recently built – what technologies were used to create it? Why did you choose to use that technology stack?
This question gives you an indication of how flexible a candidate is when choosing technology, and ensures that they understand the differences between similar tools. A good candidate will be able to explain in detail why they chose to use a particular language, the benefits of it, and will show that they are able to pick up new ideas quickly.
3. How do you ensure that you write clean and reusable code that meets modern standards? What design patterns do you know?
A good developer will write code efficiently and so that others can read it, and will care about the quality of their code. Checking this helps you know if they have a good grounding in development and how detailed-oriented they are.
4. How do you ensure that you are keeping your knowledge fresh with modern ideas and current thinking?
A good candidate will talk about reading blogs and using forums; a great candidate is likely to talk about the cool project they’ve built on GitHub and how developing a new tool has improved their productivity.“
5. What do you understand by the acronym CD? What challenges does it bring?”
Simon Pearcy, Director of Software Engineering at Amdocs, likes this question because he wants to see if developers have a broader understanding of the full software/product lifecycle or just bash out code in complete isolation – in modern software development it’s essential to have a customer focus to remain relevant.
6. How do you manage source control?
This is an interesting question that gives an insight into a candidate’s views around the development process – do they view source control as a hindrance, or do they find it useful? What system do they use and what do they like and dislike about it?
7. Do you test your own code?
Are they part of a cross-functional team, or do they have a siloed mentality? Asking candidates this helps you determine if they are flexible enough to get involved with areas that might not traditionally be seen as tasks for developers and finds out how serious they are about the quality of their code.
8. What do you look for when you review other peoples’ code?
It’s harder to read through other peoples’ code than your own – this question should prompt candidates to talk about clean and reusable code, as well as bug-checking.
9. How would you go about building a new application from scratch? What software would you use and why?
A wide-ranging question that gives you an insight into how a candidate would begin a project, and what they consider before starting work.
10. “Do you prefer to use relational or non-relational databases? What are the pros and cons of each?
Guy Lewis, Co-Founder of Sprint Education, asks candidates this – it gives him a good understanding of whether candidates understand issues around architecture. We like it because it also shows whether candidates consider the cost and business implications of particular technology choices.
11. How do you ensure that confidential data entered through a web app is kept secure?
Security is of increasing concern to consumers and businesses – and this question helps you see if candidates consider a wide range of security issues.
12. What was the greatest technical challenge that you have encountered? How did you resolve it?
Don’t just look at the complexity of the challenge they describe, but also their resolution of that problem. How quickly did they find a solution, and what did they do?
Breaking through the competition – how to make your company appeal to prospective employees
In a previous article, I talked about how Agile practices and pool tables are no longer enough to attract and retain employees on their own. But how do you make your company attractive and different for employees and prospective employees? In the last couple of weeks, tech companies have come under increasing criticism for providing meaningless “perks” such as pool tables and Friday drinks instead of real benefits that make a difference to their employees lives and engagement.
Providing useful and meaningful benefits to your employees is essential for keeping your staff on board – and equally essential is a company’s culture.
Without a good, positive culture, retaining and attracting top talent is tough. Great benefits and high salaries will take you so far, but if your company culture is negative or even poisonous it will come across in interviews to prospective employees and will cause your staff to leave.
How do you build a fantastic and positive culture? Culture comes from the top. Managers must be respectful of their staff and encourage them. Sure, this can be hard occasionally, especially if they are engaged on an arduous task (and let’s face it, every company encounters that sometimes) or if the company is going through a difficult period, but managers at all levels must look beyond this to the future to keep motivation up. I was recently asked how one motivates staff if they have to do an arduous and boring task. As a manager you need to remove as much of their pain as possible – not by doing their work for them, but identifying those pain points and working out how to reduce them, and by encouraging your team to work through the ennui as quickly as possible. Pizza may help.
Differences in culture and diversity must be embraced, not mocked – this sounds so obvious, but it’s remarkable how many organisations fail to do this – and allow some employees to bully others. No matter how important and valued someone’s contributions are, no matter how senior someone is – if they don’t contribute to a positive environment they poison that environment. Its effect, and the legacy of cleaning it up, has been felt in several high-profile companies recently (Uber, The Silicon Valley Community Foundation to name but two). Doing this can seriously distract from a company’s main mission and purpose – and that’s not to mention the negative publicity that can accompany such problems. To top it off, it’s been consistently proven that diverse companies are more successful, as the greater spread of cultures and experience leads to greater productivity and growth.
But what sort of culture do you want? Do you want a company where your employees are hungry and driven, or do you want one where they are empowered and work collectively? This will often depend on the structure of your company – one dominated by its sales team is more likely to develop a culture focused on individual success and performance; one driven by its development team may be more focused on collaboration and more holistic goals.
Flexible working is a divisive subject among many of my clients. For some, it enables them to reach a far greater talent pool than if they insisted on 9-5 in the office five days a week; for others, employees in disparate locations and working at different times is a barrier to successful collaboration and ideas sharing and may hinder practices such as pair programming.
In my experience, companies that embrace flexible working able to attract top talent considerably more easily and are more likely to retain their staff. It can also help them manage real estate costs effectively – occupancy surveys in companies that have introduced flexible work policies normally find that they can grow their companies without buying additional office space. Collaboration and creativity can continue to be stimulated through apps such as Slack, Microsoft Teams, and Join.me, to name but a few.
Why is flexible working attractive? It can reduce commuting costs and time, both of which raise employee satisfaction with their work/life balance, it can enable people to concentrate on their tasks without the constant distractions of a busy office, and it gives them the flexibility to manage their lives around work more effectively (which can help companies recruit a more diverse workforce).
Flexible working is often something that companies struggle with – and it’s not appropriate for everyone. But, and especially with the help of technology like Slack or Hangouts, and using cloud-based systems – it can work well. Flexibility doesn’t have to mean full remote working with the sort of extreme flexi-time embraced by some government departments; variable start times and the option to work from home one or two days a week can have a real impact on attraction and retention rates – it also can help improve diversity as candidates (especially women) are more likely to apply for roles where this is an option.
One client introduced a highly popular bonus scheme. Instead of financial rewards, the company introduced bespoke incentives – a bike and cycling accessories for a mountain bike fanatic, a new TV and games console for an online games enthusiast. Why was this popular? Financial bonuses often disappear into the household purse (and given that my last bonus went towards new carpets, I can sympathise), whilst specific material items or experiences are longer associated with success and may not otherwise be purchased. Such a scheme may actually be cheaper than conventional financial bonuses. Benefits always have a cost to the company, but some are more expensive than others. Doing a cost-benefit analysis is vital as it will identify which benefits employees will value, and which are a dead cost.
Additional holiday entitlements are a good, cheap way of extending benefits – and will help give your workers a greater chance to unwind and de-stress. In my experience, relatively few employees take all their holiday allowance when given more than the minimum, and so increasing holiday entitlements can have a lower cost impact than you might expect. Holiday entitlement can also be increased with length of service to encourage retention, or staff can be enabled to buy extra leave – this latter option is more complex and most suited to larger organisations.
Duvet days (when an employee can take a day off for any reason without notice) are also very popular with people, and can be particularly useful for people dealing with stress. It’s sensible to incorporate any such policy with holiday entitlements to avoid too much staff absence.
Upskilling benefits everyone, but not all companies are prepared to invest in training their staff. Yet if you talk to any employee, they want their employer to support them in developing their skills – but so many don’t. Being prepared to train your staff builds their loyalty – and widens your talent pool.
Working with your employees to understand what they value is essential to ensure that you provide the environment and incentives that they are interested in. Often the smallest things can make a difference – allowing people to work with music on, for example. Some come at a low cost (or given the savings on office space that truly flexible working can provide, even a cost saving), but the merit of even a more costly scheme can be well worth it in the savings through staff retention and reduced time to hire.
Interviewing technical candidates requires preparation and knowledge of the subject matter – there’s nothing more frustrating for a Java developer to be interviewed by someone who knows nothing about development or Java. When we interview someone, we are doing so for three purposes:
- Can this person do the job we need them to do?
- Will this person fit into our organisation – do they have the right sort of personality?
- Does this person want the job – are they going to have the drive and enthusiasm that we need?
To do this effectively, you need to plan, and have a set of fixed questions that you ask every candidate – the questions need to cover the candidates’ ability to do the job, and should be forward facing rather than a retrospective on their CV. Obviously you can ask additional questions as needed, but asking everyone a set of standard questions will provide you with a benchmark against which to evaluate people.
Can this person do the job we need them to do?
All jobs share two fundamental principles: communication and collaboration. These can easily be tested – I’ve interviewed thousands of candidates, and those that are poor at communicating are easily identifiable – they give short, often mono-syllabic answers, and rarely elaborate on a topic. For some jobs, it’s less important than others, but these days good communication skills are increasingly sought – the days of a surly developer typing with their head down and headphones on are numbered.
Collaboration can be tested in a number of ways – by asking for examples of projects where collaboration and or leading a team has been important; for developers, a pair programming test can be highly effective in determining how they work with others*.
Technical questions by necessity vary by the particular skills needed for an individual role, but should aim to probe knowledge and determine the extent to which a candidate has knowledge of a particular (and relevant) subject. Where a candidate demonstrates that they have knowledge of, for example, Kubernetes, they should be pushed to show the limits and depths of that knowledge.
Technical testing may be done through a written or verbal test or whiteboarding exercise. There are merits to both, but any test should be generic and designed to test general principles, and not an exercise on resolving a particular problem for the company – I’ve known companies who have had gained a reputation for using their technical tests as an opportunity for free labour, and they’ve struggled to attract candidates. Bear in mind that your candidates are probably interviewing at a number of places and so won’t take kindly to being asked to do a test that will take eight hours to complete. Reviewing code that they’ve created for a personal project on GitHub can act as a good alternative to a coding test.
Once you’ve established that a candidate has sufficient coding abilities then probe their problem-solving experience
Personality and Fit
Recruiting people who are all of the same mould won’t benefit the company, but having people who don’t share the company’s values will cause problems down the line. What are you looking for in a candidate’s personality and why? It’s important to determine this at the outset, and recognise your unconscious biases whilst interviewing – consistent studies have shown that diverse companies are more successful.
Does this person want the job?
They might be technically good, and they might fit with your company, but do they want the job? If they don’t really want the job, they are likely to be less motivated and more likely to leave quickly – which will impose additional recruitment costs on the business when you have to recruit someone else. You shouldn’t make assumptions here – ask and question candidates’ motivation directly.
What should you watch out for?
Enthusiasm: candidates don’t need to be the Energizer bunny, but it’s important that they both show an interest in your company and in they work that they do. Someone that isn’t interested is likely to have a demoralising effect on their team.
Flexibility: everyone has their favourite tools and languages, but that obsession with Trello won’t help if you use Jira, nor will a determination to only use Vue.JS be useful if you’ve developed the UI in React.
Heads-Down Developers: Does the candidate get involved in the full SDLC, or are they simply and mindlessly building code? It’s important to have developers that get the bigger picture and understand the needs of the business as well as being able to write code.
Don’t overload on theoretical questions – not all good developers know the answers off the top of their head. Rather look at their ability to analyse a problem and produce a solution, and look at how they code instead of whether a piece of code written quickly and under pressure is flawless.
Always test out questions on your colleagues first and make sure you understand the answer that you’re expecting – there’s nothing worse than getting stumped out by your own question in an interview.
We’re in a candidate-driven marketplace, and there’s strong demand for good tech talent. You need to sell your company to candidates, and that means making sure that candidates have a good experience from start to finish. Keep the interviewing process swift and friendly – and bear in mind that interview experiences get shared on Glassdoor and across social media.
*Not all developers have experience of pair programming, and it can be daunting to be exposed to it for the first time at interview – bear this in mind!
In case you missed it, Personnel Today have released a round-up of the most important employment law cases over the last year. The biggest cases have been on the classification of workers, and how that will impact freelancing and the gig economy, as well as discrimination cases.
A Stack Overflow survey has shown that the most disliked programming language is Perl, and that there is a strong correlation between how liked or disliked a language is and how much it is growing or shrinking in use. That’s no surprise to us – demand for Perl developers has dropped significantly over the last ten years. What’s more surprising is PHP’s lack of popularity – we’re certainly seeing plenty of demand for PHP developers – though anecdotally, the increasingly popularity of Node.JS may account for that. The full results can be found here, but we’re interested in your thought let us know on Twitter @Alto_Resources.
It’s been quite a while since we visited this subject, and since then the process hasn’t really changed – but the link at the end of the page has – so we decided it was time to revisit this, especially as it was one of our most popular blog posts.
Getting security clearance for the first time can be a complex and daunting process, but can lead to a world of new opportunities. In this post, we shed some light on the process.
Why do I need clearance?
Clearance is needed for anybody who will have access to sensitive information or artefacts, and is carried out to ensure that there are no circumstances in your personal life that may make you susceptible to pressure to reveal classified information. These circumstances could include your finances, ties to foreign countries (including those of friends or relatives), or medical conditions.
What level of clearance?
There are several different levels of security clearance, and which you need will depend on the level of access to classified information that you need to do your job, your employer, and the site you are working on. The lowest levels of clearance, CTC and BPSS comprise of basic identity checks, whilst the more advanced levels of clearance (SC, SC Enhanced, and DV) are significantly more detailed.
SC clearance is needed for frequent and unsupervised access to Secret material. SC clearance typically takes 6-8 weeks to be processed, and is likely to include a credit check. You must have lived in the UK for the past five years.
DV clearance is needed for frequent and unsupervised access to Top Secret Material. DV clearance is a much more involved process involving interviews with you, your family members, friends, and co-workers. Your personal finances will be reviewed, and they may look at your medical history. DV clearance typically takes 6-8 months to be processed. Different agencies have different requirements for DV clearance, and so transferring between companies may still take some time. You must have lived in the UK for at least the previous ten years and must have British nationality.
More information about the process can be found here.
Adam Henderson thinks that we shouldn’t hire people we can’t trust – and who would disagree with that? And if we hire only people that we can trust, Adam says in this engaging article on LinkedIn, then surely, we should let them work flexibly, at times and in places that they can be most engaged. This way you build a diverse and engaged workforce. What Adam misses though, is that having a flexible working policy will attract employees in the first place.
Great article on LinkedIn by Ann Pickering at O2 about diversity in the workplace, and how flexibility can benefit a business – read it here.