We're currently hiring a Lead Developer to help our project managers and development teams build amazing products. Here's a short interview with our CTO, Przemek, who talks about this exciting role in detail.
Kamil Sabatowski, former COO at Sunscrapers: When I joined Sunscrapers, it was already an established company. Could you tell me a little more about your responsibilities in the early days of the company?
Przemek Lewandowski, CTO at Sunscrapers: Eight years ago, I was a CTO in a small company that back then counted only a few people and I was responsible for many different things. It's normal to wear many hats when the company is at its initial stage. Back then, I oversaw projects developed at the company, but also played a central role in our recruiting process. I'm still involved in project management and recruitment today but on entirely different terms.
Kamil: Let's start with recruitment. How did that change over time?
Przemek: My job has become much more relaxed ever since we established a solid recruiting process at our HR department. Our Talent Manager Martyna, is the one responsible for non-technical issues like culture fit or communication skills. But she also asks preliminary technical questions that indicate the candidate's knowledge in a given area.
That way, I know that the candidates she passes on to me have the necessary skills. That makes the next stage of the process - the technical interview and trial task - much easier. Before meeting the candidate, I check Martyna’s notes to learn more about that person. During an hour-long interview, I ask questions that cover anything from the candidate’s understanding of programming paradigms and solutions to the knowledge of abstract, high-level concepts and best practices. I then write down some notes and if I feel the candidate is a good fit for a project, I schedule a meeting with our executive team to discuss hiring that person.
Kamil: That means our prospective Lead Developer will have an easier time building a team?
Przemek: That's right. Like every development company, we need talents on board, and that's why we designed our recruitment process to be as smooth and pleasant for the candidate as possible. We never ask trick questions, but create an open space for knowledge sharing and discussion. Many of our questions are challenging, but we don't expect candidates to know everything in detail. We want the interview to be a learning experience where two parties exchange knowledge and check whether they're compatible. We always ask candidates about how we did after the meeting and usually get good feedback, so I'm glad to say that it's working. The Lead Developer we’re looking to hire will face two different challenges when building teams at Sunscrapers: they will need to verify the candidate’s technical skills and mindset.
Kamil: Now that we covered recruitment, let's move on to the second area – project management.
Przemek: When stepping into the role of a Lead Developer, I had a range of high-level tasks related to requirement, sales (technical analysis, consultancy services, preparation of quotes and building client relationships), and participation in projects. The latter is quite complex because a Lead Developer is responsible not only for planning the architecture and choosing tools, but also mentoring the team with the help of regular code reviews, pair programming, problem solving and direction, and providing feedback on technical solutions and decisions. Finally, the Lead Developer is also responsible for monitoring team processes and quality through code reviews, offering teams better solutions and making sure that the process follows industry standards (with automated testing, continuous integration and delivery, knowledge sharing between team members).
Kamil: And that's also what you would expect from the Lead Developer?
Przemek: Exactly. We're looking for someone who would be able to step in when needed and code together with the team, on top of making critical decisions that set the project's direction. Being able to switch from a high- to a low-level view of the project is an essential skill. But our focus is mentoring. We want our Lead Developer to mentor less experienced team members, showing them opportunities for growing their skill sets in synergy with projects.
Kamil: Could you tell me a little more about collaboration with project managers?
Przemek: We have project managers on board who are responsible for communicating with clients and coordinating the work of the development team. The project manager ensures that the team is working following established processes and best practices and organizes project meetings. But project managers usually don't have in-depth technical knowledge – and that's where the Lead Developer comes in. The Lead Developer shares their responsibility with project managers in some areas, but not other – that's how we avoid the risk of the Lead Developer becoming responsible of tasks that don't take advantage of their technical expertise.
Kamil: What are the primary responsibilities of Lead Developer in collaborating with project managers?
Przemek: A Lead Developer advises the project manager on technical matters. A person like that needs to be able to explain complex technical concepts in a language accessible to a non-technical person. Sometimes we implement functionalities that are technically very complicated and or require solutions the project manager doesn't know and can't accurately predict how much time such a task takes. The technical complexity of tasks may affect their priority in the backlog. The Lead Developer explains these issues to the project manager using their knowledge and experience. For example, the Lead Developer can suggest to the project manager that they develop a slightly different functionality that would allow saving 80% of the time, opening a conversation with the client. The Lead Developer needs to guide the project manager through these alternative options, working together on the backlog, helping the PM in estimations, and identifying project requirements. At the same time, the Lead Developer shows the PM potential problems in the team process or missing skills, and explains the technical decisions of the team and their consequences for the project.
Kamil: Does the Lead Developer communicate with clients as well?
Przemek: Sometimes the Lead Developer needs to explain complex technical issues, and the best way to do that is through direct communication with the client. That's also an opportunity to present recommendations on the basis of their experience in other projects.
Kamil: So the Lead Developer is part of the process, but not on the operational level?
Przemek: We have developed and optimized our processes to offer the Lead Developer as many opportunities as possible to make the most of their skills and knowledge. That's why we left the general project organization and client communication to project managers. Naturally, the Lead Developer needs to keep a close eye on the process to make sure it follows best practices.
Kamil: Could you give an example of that?
Przemek: Imagine a situation where we have a less experienced team member who uses the daily morning standup meeting to share their problem. Knowing that the daily standup is dedicated only to discussing the project's progress, the Lead Developer will have to pinpoint the moment when the discussion goes into too much detail. They will suggest sharing the status and information about problems with the entire team, but discuss these issues in detail after the standup and try to solve them together. We expect our Lead Developer to support the development process that way and strive to optimize it.
Kamil: What does a day in the life of a Lead Developer look like?
Przemek: That's a great question. Experienced developers are still developers who love to code. A typical error of Lead Developers is that they fall into solving technical problems before checking whether the team has any. That's why they should start the day by making sure that the team doesn't have any technical issues – including the project manager. Next, there's the verification of what the team is up to – like checking the direction of the project or performing a code review. Sometimes the team might claim that everything is running smoothly, but when you look at the code, you instantly see that they're following an entirely different direction. The second half of the day is a perfect time for scheduling meetings, sprint reviews, retrospectives, or even meetings with candidates (but we're flexible here).
Kamil: What brings you most satisfaction when you are playing the role of a Lead Developer in our projects?
Przemek: Mentoring team members is great. But what brings me the greatest satisfaction is the moment when the person I've been mentoring creates something great. That's when I see how my knowledge and experience are now part of that person, leading to their personal growth and greater autonomy. Then there are of course the milestones we pass in developing projects. Finally – and I guess that's how many developers feel – there's the feeling when we eventually see that we picked the right tools, technologies, and architectures for the project. That's not something we can predict at its beginning, and there's always some risk involved. It's great to get the final confirmation of something we believed all along.