The art of hiring developers
When searching for a new position as a software developer, once you’ve taken some time to look for a good match among software companies, you obviously want to know more of what it’s like to work at the one you’re most likely to opt for.
And now you are here, interested in joining SoftwareMill, and the main question in your head is probably: “Is it a good company for me?”. Honestly? As someone who has been working here for over 9 years, I am probably not the most unbiased person to answer it, but this subject is definitely close to my heart. My journey started as a Mid/Regular Java developer, then I became a Senior and Team Leader, and right now I am a VP of Engineering with a mix of technical and HR responsibilities.
Ok, and now you are thinking “Oh man, I am not interested in your bio, is it a developer-friendly place to work at or not?”. Yes, I think it is a good place to be for a developer. When I think of SoftwareMill, the following things come to my mind: no-assholes approach, people-focus, space where everyone can be heard, learn from each other, and feel free to start a new initiative.
We are a people-focused company and we live by engineering ethics. To create such a dev-friendly culture, we hire people with values similar to the ones we have. There is also an additional requirement that makes everything much, much more challenging: our new hires should also have good technical skills. To make sure that we have a good possible match, we need a well-thought hiring process.
In this post, I will try to describe how we hire developers at SoftwareMill: what you can expect on each step, how to prepare, and, finally, how to focus on your needs so you can be sure we are a company for you.
How we hire developers at SoftwareMill
Before you start looking for a perfect company to work for – and I am fully aware that you have many to choose from – think about your requirements and real needs.
It’s a good idea to screen the workplace candidates by asking yourself the following questions:
- What do you value the most when working with other developers? What bothers you?
- What atmosphere in a company do you expect?
- How much freedom in a project do you wish to have?
- What do you enjoy more, solving problems or pushing the discussion forward?
- Do you like large projects with tens of developers or smaller ones?
- Are you into a specific domain or you would like to change the type of the project from time to time?
The goal is to gather enough information to feel like you’re applying for the right place. If we, as a potential employer, were to send a resume to you now, we would highlight that we are:
- definitely funny - we love playing games in our remote team, or release the game Party Parrot Coding Adventures for the IT community
- focused on learning and technically growing together - we know how important is to share knowledge in IT projects
- masters of remote work model - see our remote software development eBook
- a bunch of people who are passionate about coding - check our open-source projects
- a people-focused company that values openess - ask us anything here, on AMA Slack
When you decide to click the “Join us” button, this is the moment when the whole journey starts.
Here’s what you can expect.
The hiring process at SoftwareMill
Our recruitment process consists of a few stages and may take between 2 and 4 weeks. Why so long? Simply because we want to make sure that we hire someone who fits the team and has a potential to be a valuable member of our crew.
To make sure we can grow together, we want to know you as much as we want you to get to know us. So across all the stages, you will get in touch with 5-7 different people from SoftwareMill.
1. CV screening
If we see you meet the following criteria:
- commercial experience in creating software,
- familiarity with at least part of libraries and tools we use on a daily basis,
- and of course mythical knowledge of both Polish and English languages,
you should be invited to start our hiring process.
But please remember, we know about you only as much as you put in your CV or LinkedIn profile, so make sure they are up to date and the skills listed there correspond with the job you are applying for.
If you did something extraordinary: passed some demanding programming-related exam, wrote a cool pet-project, contributed to an open-source library, or even spoke at a conference, include it. Any sign of sparkles in your eyes when you talk or think about programming is a great indicator that we could be a great match!
After the initial screening and before the first in-person meeting, we send you a short, but “meaty” survey to fill out. You’ll be asked about your availability, salary expectations, and your motivation to change your job. Your answers will not only help us save some time during our first call, but also could be a great conversation starter.
3. First interview
So, you have been contacted to schedule the first video call, our Party Parrot is very happy!
To make it even happier, please check your connection, camera, and microphone before the meeting, so we could talk and interact without issues.
A very important fact about this online call: it isn’t strictly a technical one. We talk a bit about areas included in the survey, about your expectations towards us and possibilities we offer to people like you, how we work, how we learn, and, most importantly, how we stay sane even while being a remote company. We also check your level of English by asking a few questions.
The meeting usually lasts about 20–40 minutes. Up from this stage of the process, if our decision is negative, we will always let you know. If there’s chemistry, we invite you to the next stage, which is a technical recruitment task.
4. Technical recruitment task and Code Review
Your daily job in SoftwareMill will be mostly around designing and writing code, so this stage is here to let you showcase your technical skills. For Backend Developers, the task is to write a simplified battleship game using REST API with two players trying to sink each others' ships.
For Frontend Developers, it is a Reddit client using their public API to display a few topics with the comments section. And for DevOps, we ask candidates to prepare an automated CI/CD process for a small "hello world" application with basic monitoring present. Looks doable, right?
Usually, we give you 14 days to complete it, but if you think that is not enough please let us know. It is better to deliver a good solution than a quick one. We all have private lives, hobbies, families and that 3-week trip to Bali. So if you need more time, please let us know. We can wait a few days longer without any problem.
When you tell us that your solution is ready, we will assign two of our developers so they could independently conduct a code review. And no matter the outcome, the full and pretty detailed feedback is something that every candidate gets in return for the time spent on doing the assignment.
When evaluating your solution, we treat it as a simple, but almost-production-ready application, so readability and maintainability are as important as that the behaviour implemented in line with requirements sent in the task description. We try to assess the effect of your work from the perspective of potential cooperation in a real project for a real client. If your solution is good enough, we will invite you to the next stage: an online technical call.
5. Technical interview
Ok, this is getting pretty serious: this stage is a technical call with two of our developers to discuss various technical challenges. But worry not, we try to keep everything in a friendly atmosphere as if it was a discussion about system architecture with one of your team members. Ok, maybe without Mr. Sandwich interrupting your heated discussion to bring you a lunch.
The call lasts about 1–1.5 hours and takes place on Google Meet, Hangouts, or Zoom. Questions revolve around different programming concepts:
- your approach to solving some generic problems,
- ideas to design a module with specific requirements,
- communication between submodules or architecture patterns helpful in certain situations.
We are eager to understand your way of thinking and solving problems. We also want to assess your experience in both designing complex systems, and in working with clients. We work in small, self-organized teams cooperating closely with our clients, so this aspect is very important. If we are satisfied with the result of the interview, we meet at lunch, which is the last stage of our recruitment journey.
Time to meet in person! Ok, maybe not now. In normal circumstances, at the very last stage, we invite you to have lunch with us. You choose your favourite restaurant in your city and we meet there. In the time of the pandemic, we moved this stage online, however we’re looking forward to getting back to our old habits soon.
At this stage it’s all about getting to know you more as a person and a potential teammate. It’s more like a social talk with some business and technical highlights. If you reach here, practically you may expect the final call in a few days, as it’s really hard to ruin the good impression you’ve made so far during lunch. But beware, a few really “talented” individuals were able to do that, so at this point, chances of getting an offer from us are really very high, but still not 100%.
What else the candidates ask us?
If you like our vibe, share our values, and are thinking about applying for one of the open positions, take a look at an extra piece of knowledge about our recruitment process and working at SoftwareMill. These are the real questions our candidates have asked us!
Here are some of the questions:
- What is special about your company culture?
- What does the onboarding process look like?
- How will I get to know my new colleagues better?
- Do I have to be fluent in English?
- Do I need to travel while working at SoftwareMill?
Your question was not answered?
We love talking to you and exchanging ideas! That’s why we opened a dedicated Slack channel for candidates and people interested in our culture and way of working. If you have any insights and questions, feel free to join us at Ask Me Anything SoftwareMill Slack.
Hiring during COVID-19?
SoftwareMill has always had a very special organisational model. Since 2009, we have been a fully remote company, with developers all over Poland. We all work from our homes, but all form one and very well integrated company, thanks to the unique culture we have been able to work out.
So in the times of pandemic, we run our business as usual. The only difference is that instead of face-to-face lunch at the end of the hiring process, we meet online for a virtual “tea”. If you like remote work, flat structure, and self-organising teams, our company will be definitely a place for you!
I hope that I was able to explain what each stage of our hiring process looks like while keeping you interested in joining SoftwareMill.
If you are already convinced, you know where our Join Us page is, right?
And if you have more questions, please:
- check our FAQ section.
- join us at our Slack,
- get a sneak peek on our softwaremill vibes on Instagram,
- or ping us on Twitter or Facebook.
We want to get to know you! :)