Whether you are already performing this role or striving for a new role, job/role change after one point is not as easy as it used to be with junior roles. This role demands different skill sets and the interview process also requires you to be at your very best to get through it.
Engineering Manager’s/ Director’s job or such similar job opportunity doesn’t come knocking at your door every day but when it comes to you have to make sure to make the best of it. For that to happen you have to ensure you are well prepared in advance knowing what is expected of that role. I am sure you would have often felt that you have not given the best answer that you could have given which ultimately led to you squandering your opportunity.
What is the best way to prepare for the interviews? First thing, I don’t want to use the interview word here because if you just think about preparing for interviews you may start just focusing on just questions and answers and not think about the whole picture. While that is also important to crack such interviews and be fully prepared you have to first start living and thinking like the role that you are aspiring. Even if you are already in that role and doing a good job you still have to perfect yourself as much as you can for that role.
It is always better to be over-prepared for an interview than not go under-prepared and lose an opportunity. Here are a few points that will go a long way in helping you crack an interview if you follow them properly. To get the most out of it, it will be better if you note down your answers for the items mentioned in the Action item below and keep reviewing them every few days at least.
1. Identify and list your strengths
Interviews are not just about the questions you answer but the impression you leave. In a short span of time, you need to convince the interviewer that you are the perfect fit for the position. Achievements and strengths are key factors in establishing this credibility. Forgetting to talk about them or missing the chance to highlight your capabilities can be detrimental.The initial minutes of an interview are crucial. If you don’t mention your achievements and strengths early on, you risk the interviewer forming an incomplete or negative opinion of you.
ACTION ITEMS (#1 to #4): Create a dedicated file using your favorite editor to list down all your achievements. Add as many key points as you remember. Revisit this regularly and update this. You don’t have to make it perfect in the first iteration but like agile’s iterative nature, come back and iterate and add much as detail as possible. For this action item, you will have to help yourself and I would not be able to write for you.
1. List down your Technical Achievements
What technical issues have you solved, any architectural changes you suggested etc?
2. Notable contribution to your current/previous project
Think and list down 2-3 points, even if it is not from your current project. Include specific metrics or numbers to highlight the impact and benefits of your contributions. As a Manager get used to Metrics as much as possible and try to talk in terms of metrics whenever you can. You can read more about that here.
3. Highlight Your Process Initiatives
During the interview, make sure to passionately describe 2-3 initiatives that you’ve spearheaded. For example, discuss your implementation of tools like SonarQube for code quality checks as part of a CI/CD pipeline, your contributions to
DevSecOps adoption or other ‘shift left’ initiatives. By sharing these experiences, you not only demonstrate your proactive approach but also showcase your ability to improve processes and drive innovation.
4. Review and Repeat 1 to 3 every week and make it better.
2. Understand what the companies are looking for? Evaluate yourself on those parameters.
The best source to know what companies are looking for is from the Job descriptions of such roles. You usually look at the JD (Job description) of the companies before you go for the interviews or when applying for the job.If you are clueless about how to prepare for the role you want to apply is you go out and look the JD of similar roles for as many companies as you can find. Lot of information are hidden there. Try to collate as much different interviews questions as you can find and note down. Again, you don’t have to do it on a go but whenever you do note down wherever you are maintaining the document for your preparation of your interviews.
ACTION ITEM #5 : Go through the list of job qualifications/ responsibilities that the companies are looking for the role you are applying. Evaluate yourself and see if you fit the bill, identify the gaps in your skills, learn, and also update your resume to highlight those skills.
Here is the list of requirements and job responsibilities that a company is looking for in you as an Engineering Manager or Director. These data are compiled from the job descriptions posted on the job sites.
Job Qualification/ Requirements
Demonstrated track record leading geographically dispersed teams |
Skilled in language, framework and toolset agnostic |
Experience leading full-stack teams |
Demonstrated track record of being a change agent, leaving every team and process better than you found it |
Knowledge and experience in high scale, highly available (99.99+) systems |
SaaS or Cloud experience |
Experience building an integrations platform and infrastructure to seamlessly integrate 3rd party applications |
Experience building on Azure platform |
Experience with full stack SaaS development |
Experience launching V1 products |
Be the Engineering leader responsible for executing on our product roadmap using agile practices and will champion the culture, processes, and tools required to maintain a frictionless high high-quality development environment |
Working experience with TDD or BDD software methodologies |
Proficient with software development lifecycle (SDLC) methodologies such as Agile and Scrum |
Proficiency with DevSecOps |
Experience with cloud-based development technologies (e.g., containerization) and experience in implementing web-based applications in these environments. |
Demonstrate strong computer science fundamentals (e.g., design patterns, data structures, data management and communication, and algorithm development) |
Strong people management skills, and proven success in recruiting, creating, and motivating a strong performing development team. |
Ability to coach/mentor staff members to function as a highly effective team. |
Demonstrate a positive attitude with a customer-centric, service delivery mentality. |
Ability to work independently and supervise a diverse staff. |
Ability to demonstrate initiative and strong technical knowledge. |
Enthusiasm for investigating and implementing new software tools/applications (off the shelf and internally developed) |
Team management experience of 2-3 scrum teams (20+ developers), 3-5 yrs of First line Management experience or experience of managing managers. |
14+ years of experience and a Bachelor’s degree in computer science or a related field |
Experience managing Software Developers and leading Agile teams |
Understand the software development process and how their work contributes to the larger goals, know how to make that process better, one step at a time. |
Experience working with a team on a large project, typically working with Agile software development methodologies |
Experience with test-driven development, building test plans, unit tests, and automated testing frameworks |
Experience in analyzing and scaling large systems, web development, Javascript frameworks (e.g., ReactJS), or DevOps/infrastructure tasks |
Experience in Spring Boot, web services, building APIs and services using REST, SOAP, etc. |
Knowledge of container technologies such as Docker |
Proficient with code versioning tools such as CVS, SVN and Git |
Interest in technologies like Mesos, Aurora, Kubernetes |
Interest in adopting new technologies and methodologies such as functional programming, distributed computing, machine learning, advanced data engineering, serverless computing |
Interest in cloud technologies (AWS/Azure) and systems like Apache Kafka, Apache Spark, Amazon Kinesis, etc. |
Have SQL and No-SQL database experience (Postgres/MySql/Oracle and MongoDB / CosmosDB /RavenDB or CouchDB, etc) |
Think in CI/CD and DevOps mindset/culture |
Preferably experience with serverless (Functions/Lambda or containers) |
Loves a hands-on approach, thinking with a product mindset, and getting ship done |
Advanced knowledge and demonstrated expertise in the areas of strategy, planning, and project management required processes and techniques. |
Knowledge of DevOps and DevSecOps is preferred. |
Must have experience in designing IT Architecture and Standards |
Experience in design and development of solutions for Microsoft Azure |
Experience with structured methodology and project planning tools |
Experience with No code development tools – PowerApps/ Power Automate/Power BI development will be a plus |
General awareness about Engineering Design applications from Bentley and Autodesk. |
Job Responsibilities
Plan technical roadmaps that align with the broader organization, and direct execution of them with reasonable assignment of tasks to the team |
Define business-specific performance metrics to measure model effectiveness, then monitor and improve metrics over time for models used in a production environment. |
Experience with working cross-functionally like DevOps, QA, Product Management, and Support. |
Ability to lead and influence team members to forge consensus on technical discussions including architectural and design guidelines, code reviews, release process,etc. |
Good on Estimation Practices: Effort and Schedule |
Experience in Development processes like creating technical and architectural documents and QA processes like designing test plans, functional testing, end to end scenario automation, performance, and security testing. |
Produce high-quality software following good architecture and design principles that you and your team will find it easy to work with in the future |
Ensure that you maximize the productivity of your team, especially by predicting and resolving obstacles and dependencies before they’re needed |
Put in place and enforce best-in-class processes for ensuring high quality and high uptime for the product developed by the team |
Manage day to day direction of the development team |
Setting up an engineering strategy for the team both from technical and business front |
Have passion for continuous improvement |
Be responsible for delivering products that delight customers while managing the health of the code base through continuous refactoring and management of technical debt |
Provide coaching and leadership in software best practices, automated test strategies, and work toward flattening the cost of change curve for our software products and services |
Have a demonstrated track record of building high performing, secure applications and building security into the DNA of products |
Lead a team of engineers at various stages of their career, actively investing in their growth and development |
Cultivate an open, collaborative, and fun work environment for yourself and your team |
Work closely with product, design, security, customer success and other teams to provide technical expertise throughout all phases of product development |
Obsess over great user experience and will be a partner to product management and engineering, operation, and other parts of the business |
Champion engineering and operations, establishing metrics and processes for regular assessment and improvement |
This role will involve 50% engineering development and 50% team management activities. |
Responsible for implementing software engineering practices like Agile, Test Driven Development, Continuous Integration, and best coding practices through the development cycles |
Conduct regular reviews on code and all aspects of the engineering product development cycle |
Work closely with the leadership team in driving product enhancements. |
Influence and align the product vision by collaborating with customers, partners, product management and engineering teams. |
Managing a team of high-caliber Software Engineers, ensuring project and development excellence and technical leadership |
Deliver high quality results with full ownership and take the product to next level |
Own career development of team through active coaching. |
Create a strong team culture of engineering excellence, customer passion, collaboration, diversity and inclusion. And of course, having fun too! |
Strong coach on implementation of SAFe or Agile scrum and working with Architecture teams to assess and size story/epics |
Leading the execution of large-scale projects that drive global sourcing strategies to deliver the strategic business initiatives. This includes supplier management, E2E product launch management, lifecycle management among other critical sustaining engineering activities. |
Responsible for creating E2E engineering release schedule to qualify products with new suppliers & release to production –this is the most critical aspect of the job responsibility & project management excellence is critical for success. |
Accountable forresolving all technical challenges during the transfer process, which includes resolving product specification challenges, consulting with subject matter experts to guide suppliers, reverse engineering, driving design review workshops, develop test fixtures, etc. |
Responsible to ensure product requirements are fully defined to enhance quality through transfer projects, this would involve reverse engineering as needed. |
Full responsibility to achieve critical KPIs for QUALITY and productivity targets that are tied to the annual business plans. |
Partner with key business stakeholders to ensure that all business needs are met & improved through sourcing/concept project |
Enable and empower people to do their best work in an environment that encourages collaboration and innovation and fosters development and learning. |
Drive your team towards timely execution often with competing priorities. |
Negotiate technical needs vs. new features and be a key contributor in defining the product roadmap. |
Translate the company’s strategic vision, align group’s work, and help individuals understand their impact on HMH’s success. |
Mentor and motivate direct reports towards their career goals and actively develop your team’s skillset and put together a deep bench through proactive conversations, goal settings, and performance evaluations. |
Collaborate and be a catalyst, breaking down complex problems into simple solutions and leading through change. |
Hold teams to high standards in writing quality scalable and supportable code, complete with appropriate unit tests, automated testing, documentation, and operationalization aspects in a CI/CD environment. |
Lead by example and use your technical expertise and perspective to drive innovation. |
Work collaboratively as part of a software development team producing software that advances our core mission. |
Continue to improve team’s SDLC processes and plan for the next thing in the product pipeline. |
Act as a technical lead for software development projects and proactively volunteer to perform key activities. |
Partner with leadership, stakeholders and product management in planning, execution and management of resources, roadmap and releases |
Eagerly learn and apply new cutting-edge technologies. |
Contribute to our software development culture and ever-improving concept of software development best practices. |
Oversee teams totaling 7-12 software developers by guiding/mentoring team members. |
Promote software development best practices, monitor team performance and gather team metrics. |
Align people, technology and process decisions across teams |
Actively lead projects using Agile Methodologies |
Provide leadership and oversight on various projects of a complex nature. Responsible for planning, developing, and executing schedules to ensure timely completion of project deadlines and milestones. |
Ensure methodology compliance & manage resolutions, reporting to management when necessary. |
Ensure timely and accurate communication with project staff throughout the life cycle of the project. Monitor and manage team utilization. Must be familiar with the system’s scope and project objectives, as well as the role and function of each team member in order to effectively coordinate the activities of the teams. Identify and monitor project risks. |
Regularly communicates to senior management regarding the status of specific project deliverables. |
Provide measurable input into new products, processes, standards, services, or plans in support of the business. |
Effectively lead the project team to align with the business objectives, project schedule, and project budget. |
3. Understand Project Architecture and its high-level Design
You can’t clear the interview if you are not able to showcase your technical skills. Even if you’re not facing the same barrage of technical questions as a Senior Developer or Lead might, you’ll still need to demonstrate your knowledge to stand out and demonstrate your capability to manage the project and engage different stakeholders.
ACTION ITEM #6 to#9 :
1. Understand your Project Architecture completely. If possible use Draw.io or similar application and redraw as per your understanding.
2. Write a note on your Architecture using as many Technical/Architectural terms possible.
3. Question the Architecture and decision points you are not clear to yourself and try to come up with the answers first. Try to check with your colleagues on any unanswered question. Also google and come up with answers on any remaining unanswered queries.
4. Review weekly and update it till you get it right and you are convinced yourself.
Here are some terms that can get you started. There is another good article on this that you may like
-
Microservices: A design approach where a large application is broken down into smaller, loosely coupled services that can be developed and deployed independently.
- Micro Frontends: It is similar to the microservices concept applied to the frontend, is an architectural approach that involves breaking down a web application’s user interface into smaller, self-contained, andindependent parts. Each of these parts, often referred to as micro
frontends, can be developed, deployed, and maintained by separate teams,allowing for more efficient development and improved modularity in large and complex web applications. -
Monolithic Architecture: The opposite of microservices, where the entire application is a single, tightly integrated unit.
-
Containerization: Using technologies like Docker to package and deploy applications and their dependencies in isolated containers.
-
Serverless Architecture: A cloud computing model where the cloud provider automatically manages the infrastructure, and you only need to focus on the code.
- Multi-tenant application is a software application or system that serves multiple organizations or customers, known as tenants, while using a single shared infrastructure or codebase. In a multi-tenant architecture, each tenant’s data and configurations are logically separated, and they may have their own customizations, settings, and data, but they share the underlying software and hardware resources.
-
Load Balancing: The distribution of incoming network traffic across multiple servers to ensure high availability and reliability.
-
Scalability: The ability of a system to handle increased load by adding resources or nodes.
-
High Availability: Ensuring that a system or service is consistently operational and accessible, often through redundancy and failover mechanisms.
-
Distributed Systems: Systems that run on multiple machines and communicate with each other to achieve a common goal.
-
Latency: The time delay between a request and the corresponding response in a system, often measured in milliseconds.
-
Database Replication: The process of copying and synchronizing data from one database to one or more other databases.
-
Middleware: Software that acts as a bridge between different applications, allowing them to communicate and exchange data.
-
RESTful APIs: An architectural style for designing networked applications, using HTTP requests for communication.
-
Authentication and Authorization: Processes that control access to a system or application, with authentication confirming a user’s identity and authorization determining their access rights.
- Single Sign-On (SSO), is an authentication and authorization
mechanism that allows a user to access multiple applications or services
with a single set of credentials. -
Event-Driven Architecture: A system design where components communicate through the production, detection, and consumption of events.
-
Service-Oriented Architecture (SOA): A design approach where software components are organized as reusable services that can be accessed over a network.
-
Message Queues: A mechanism for communication between distributed applications by sending and receiving messages.
4. Start quick, learn and Iterate
I have discussed this above but added as a separate point as this is the most important point. Remember you don’t have to be perfect from the start while answering all that are asked in the Action Items. Start by addressing what you know, and make it a daily practice to work
on enhancing your skills and filling any knowledge gaps. With each interview, strive to improve your responses. Over time, as you gain more experience, you’ll undoubtedly perform better in interviews and increase your chances of securing your dream job offer. Here are few quotes that will help you keep motivated.
The beautiful thing about learning is that no one can take it away from you.” – B.B. King
“It does not matter how slowly you go as long as you do not stop.” – Confucius
5. Practice with mock scenarios and interview questions
If you’ve diligently implemented all the steps outlined in the Action Items, you’re undoubtedly making significant progress toward securing your dream job. I would greatly appreciate it if you could leave a comment on this article. Your feedback, whether positive or constructive, is invaluable as it guides us in enhancing the content and also motivates us to come up with more such articles.
“Success is not final, failure is not fatal: It is the courage to continue that counts.” – Winston Churchill
--------------------
If you like this article, please support the effort by buying me a coffee. Thank you!
UPDATE: More than 5K views till now. Thanks for liking but I am little disheartened to not see any comments. I would be glad to see what you liked or not liked about this article so that I can put more effort to add more details if required. I have forgotten about coffee now. 🙁--------------------------------