Job Description/Preferred Qualifications
What you will be doing
KLA makes industrial systems that are indispensable for manufacturing of semiconductors. These systems involve complex hardware, firmware, software and high performance compute.
The software manager position we are trying to fill will be functionally responsible for many different areas of software including machine control software, high performance compute software and customer facing software.
Although this is a manager position, a strong hands on approach to software development is expected. The candidate is expected to have deep roots and intuitions on various topics in software engineering at scale. The candidate is also expected to have demonstrated track record of building and managing software teams. Experience working with software for hardware products (non-compute mechanical hardware) is a big plus.
A software manager in this position will have the following responsibilities:
Responsible for the design, development, testing and roll out of software solutions that enhance the capabilities of the KLA inspection machines. Possess good communication skills to work with several hardware and software interdisciplinary teams to understand the system/marketing requirements and to guide teams on software requirements and design. Candidate should (over time) develop deep understanding of how the system works and be able to provide software solutions for critical customer gaps or issues. Develop and evaluate concepts and designs for the next generation systems by overseeing trade-off studies, identifying risk items and suggest mitigation plans. Work in a geographically distributed team to develop and deliver software solutions. Comfortable working in a fast-paced environment where communication and collaboration with a large multi-disciplinary team is a significant part of the job. That is, aligning with a fairly large set of external stakeholders and being able to internalize their product needs and delivering to those needs is an indispensable part of this position.
What we want to see
- A Bachelors degree or higher in Computer Science, Engineering, or related field.
- Previous experience as a Software Engineer or Software Developer working on machine control (non-compute hardware), automation, or instrumentation.
- Excellent software engineering skills, including deep conceptual and applied knowledge of OOP, design patterns, data structures, distributed systems, multi-threaded and multi-process programming.
- Experience working with external or internal customers in delivering projects.
- Experience aligning with interdisciplinary set of stakeholders including Marketing and Programs.
- Experience growing and developing high performing teams.
- Possess good communication skills and the ability to work in a team environment.
What will make you stand out from the crowd
- A passion and demonstrated track record of delivering software solutions targeted at complex systems.
- Understanding of software engineering concepts (operating systems, programming languages, OOP, design patterns etc).
- A willingness to take ownership and responsibility for the software components you develop and maintain. In other words, be a single person product owner within your domain of responsibility.
- A collaborative and proactive attitude that fosters positive relationships with your peers and stakeholders.
Minimum Qualifications
Bachelors degree in an Engineering or equivalent discipline.
At least 2 years experience managing software teams.