Interviewing for a senior engineering position is a different experience than interviewing for a junior position. Tech companies don’t test senior applicants on their code fundamentals — they expect candidates to already be experts. Instead, companies look for broad skill-sets in system architecture and leadership. That’s why App Academy’s interview-prep program, 10x Club, focuses on these areas as well as core fundamentals for review.
10x Club helps improve programmers’ salary and ranking. The minimum salary for a 10x Club graduate is $120,000, with an average of $134,500. By leveraging App Academy’s network and experience, along with a curriculum rooted in research, 10x Club grads say they’re put in the best situations to succeed. Below is how App Academy’s 10x Club achieves these results.
Focus on architecture building
Interviewers test programmers about architecture because at the senior level, a system’s upsides and downsides affect a company in huge ways. Cloud architect Keith Marlow says a bad system can lead to “different engineering groups working on different hosted services,” causing massive loss of time and money.
10x Club instructor Gene Hallman tells us the program focuses on separating the number of system tasks into smaller manageable ones that can be answered during any interview.
A question students often get is: “Define whether a microservice or a monolith architecture is better.” Below is the process he teaches to answer:
- Before they get to the live question, students need to understand what those systems do, why they do it, and how they affect the work process of an engineering team.
- In the interview, they need to define micro-services and monoliths. Example: A microservice is an architectural technique where code is modularized into individual services that fulfill business functions. A monolith is code compiled together in a single database.
- Then, students explain the upsides and downsides of both. This is how Gene Hallman would explain it, step-by-step.
- Monoliths are quicker to develop, have faster performance for quite some time, and don’t have overhead when setting up new service environments.
- But, they get more coupled over time, which means it becomes harder to make code efficient. Additionally, everything has to be deployed at once.
- Microservices solve the complexity problem by remaining small and focused. It’s easy to analyze the required resources per service, and allocate the correct number and size of servers.
- But, they are harder to setup because each service requires its own operational environment. Additionally, A good contract of inter-service communication has to be established, reducing performance.
Senior developers must be creative
Because interviews for senior tech positions ask questions about the business, including design, candidates need to be well-versed in it.
A popular design question candidates get is: “How would you redesign Twitter?” This is what Hallman says senior candidates should do:
- First answer the question with more questions. Senior engineers always ask for more details to creatively respond to the interviewer’s design question. Engineers need to understand their interviewer’s expectations and the scope of the problem.
- Understand the most important questions you need to answer first and then answer them. In a Quora forum, bootcamp expert Ahmad Malik says simple questions to think about redesigning Twitter include:
- “Will users of our service post tweets and follow other people?”
- “Will tweets contain photos and videos?”
- “Will users be able to search tweets?”
- At the end of the interview, applicants will have designed an application using their technical knowledge and professional experience using the constraints given by the interviewer. Design questions require the applicant to be creative when asking questions and building their app.
On people skills
Applicants often assume the more senior they become, the more people skills they’ll need to impress interviewers. Career website The Balance Careers lists teamwork and the ability to take direction as must-have soft-skills for managers but the need is not a requirement.
According to Hallman, there are two main tracks, technical and management, that developers can follow to become senior. Each track has different focus and people-skill requirements.
Senior Technical positions, like an Engineering Lead, give programmers control over major technical decisions. Although they’re not responsible for building projects, they decide what tech a product uses and oversees development from coding to launch. When hiring, interviewers look for technical talent and ask design-oriented questions, according to Hallman.
A question senior technical candidates get is: “Describe a time that you have regretted the design of a system, and have had to redesign it.” They answer thusly, according to Hallman:
- Describe the context in enough detail as to convey the problem with the architecture. Issues with scalability are easy to talk about, including how much money it took to solve the problem.
- Explain how they determined what the root cause of the problem was, and what the best solution was. Explain how this decision was reached and disseminated to the rest of the team.
- Confirm that the changes to the architecture solved the root problem and then tie it back to cost. Make sure to include any challenges faced when implementing this new design, and include the lessons learned in the process.
What about Management positions? Recruiters focus on candidates’ non-technical projects with a connection to people skills. Mangers hire team members and are responsible for creating the product deliverable without inputting the tech behind it. Therefore, interviewers look for software developers with sharpened people skills that can reliably manage personnel.
A question senior management candidates receive is: “If you have reporting staff, how would these staff members describe your relationship with them? They’d answer it thusly:
- Managers have a set of practices they believe in. So starting with a management philosophy is a great place to talk about those practices, such as, “I believe engineers produce the best products when they’re included in the design process and have flexibility in which components they get to work on.”
- Discuss which practices make this philosophy possible, including how to break down and assign work, task-track, and resolve conflict, such as “I like to structure work into quarterly goals and have engineers break down high-level goals into smaller tasks. For product design, engineers are in a design sprint process.”
- Finally, relate back to the original question by concluding with outcomes leading to happy and productive engineers like, “in prior leadership positions, these practices led to a sense of ownership and responsibility across the team, exemplified by our product being delivered on time and our average engineer tenure being one-year higher than industry average.”
Preparing for a senior-level interview, then, means different preparation depending on what your track will be. And deciding which track to take requires study, thoughtful comparisons, and the help of someone who’s been there, like a coach who can dedicate their time to your quest.
If you’d be interested in learning more about 10x Club, click here.