Systems Software EngineerKLA makes industrial systems that are indispensable for manufacturing of semiconductors. These systems involve complex hardware, firmware, software, and high-performance compute.The Systems Software Engineer position we are trying to fill is a core function of software engineering at KLA and has the responsibility for controlling various pieces of hardware that form our system as well as coordinating between them.As a senior member of the team a successful candidate will be expected to:Develop a deep understanding of the system and software architecture.Mentoring junior team members.Work with cross-functional teams to develop software for our industry leading inspection products.Successful candidates will have very strong software engineering skills and will be responsible for software development and maintenance of on-tool, back-end software. The software shall be deployed on sophisticated equipment deployed in the production of cutting-edge semiconductor chips.
The software will be responsible for functions such as control of the machine, as well as diagnostics and calibrations.You will be a good fit if you:Have domain knowledge in one of the following areas: Instrument Control SW (Robotics, Optics, MEMS), Image Processing, Image Computing.Have demonstrated experience building highly scalable software systems.Have deep conceptual understanding of multi-threaded, multi process and distributed software systems.Previous technical lead experience is a required.Essential Skills:Mentor and grow junior engineers from the standpoint of quality of design as well as delivered code.Object Oriented Design & Programming in Java, C# or C++Distributed systemsScripting languages like PythonData Structures and algorithmsInterface protocols for cross language software (example: CORBA, Apache Thrift, gRPC)Asynch programming in Java, C++ or C+Responsibilities:Candidate will be responsible for the design, development, testing and roll out of software solutions that enhance the capabilities of the KLA inspection machines.Candidate must possess good communication skills to work with several hardware and software interdisciplinary teams to understand the system/marketing requirements and to map them to 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.Candidate should develop and evaluate concepts and designs for the next generation systems by conducting trade-off studies, identifying risk items and suggest mitigation plans. This calls for interest and domain knowledge beyond software in the fields of hardware and systems engineeringCandidate must work in a geographically distributed team to develop and deliver software solutions. The candidate should be influential in architectural and technology decisions made by senior members of the team and help drive adoption of best industry practices in code health, testing, and maintainabilityCandidate must be 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, coding is not the only skill needed for this job. The candidate is expected to communicate with a variety of stakeholders to understand the requirement and map out a software solution to meet the requirement before implementing the solution.The candidate needs to be instrumental in working closely across sites and building strong partnerships to understand the requirements, as well as validate system design and work with resources to implement and deliver solution.The candidate should mentor junior team members in coding, cross functional interactions with hardware and systems engineers and assisting with proactive unblocking efforts, etc.Minimum QualificationsDoctorate (Academic) or work experience of 2 years, Master's Level Degree or work experience of 4 years, Bachelor's Level Degree or work experience of 5 years