Sr Software Algorithm Engineer

Research & development

Computer science & software engineering

Electrical engineering


In a nutshell


San Jose - CA, US


Research & development


3-7 years



Job Category

Computer science & software engineering, Electrical engineering, Physics

Published: 30+ days ago Job ID: req26568


ASML US brings together the most creative minds in science and technology to develop lithography machines that are key to producing faster, cheaper, more energy-efficient microchips. We design, develop, integrate, market and service these advanced machines, which enable our customers - the world’s leading chipmakers - to reduce the size and increase the functionality of their microchips, which in turn leads to smaller, more powerful consumer electronics. Our headquarters are in Veldhoven, the Netherlands, and we have 18 office locations around the United States including main offices in Chandler Arizona, San Jose and San Diego California, Wilton Connecticut, and Hillsboro Oregon.

Job Mission

In the software research and development (R&D) team, you will be a key member to develop high quality software and contribute to all phases of the development process from designing to release. You must be responsible for independently developing and testing the algorithms and turn general requirement definitions into functioning modules. A good candidate should exhibit strategic thinking, be self-motivated and collaborative with team members.

Job Description

We are looking for a senior algorithm/software engineer. Requirements include a solid understanding in data structures and algorithms, with 5 year experience in C++ and/or other object oriented software developments. This position requires programing experience in multi-threaded parallel applications in Linux environments.This position is to develop new features and to improve performance for Tachyon FEM+ models, Newron models, and MXP, and to help taking these applications to the next level.

Tachyon FEM+ models are the world-leading lithography models that enable the OPC (Optical Proximity Correction) process for microchip manufacturing, while the Newron models are the extensions that utilizing the deep convolution network to further boost the accuracy and performance. MXP is the data cleaning and data collection tool to provide reliable data for model calibration and is part of the end-to-end solutions for achieving the best model performance for Tachyon FEM+ and Newron models.

What you will be doing at this position:

  • Designing and developing algorithms in C++ to improve runtime and accuracy of Tachyon FEM+ model, Newron model and MXP applications. The task includes developing new algorithm and data structures from the scratch, adopting known solutions via using a third party library or via reimplementation from a known/published algorithms.
  • Integrating algorithms into module(s) that can be used in a distributed computing system in a Linux environment. The task includes interface design and optimizing data distribution to maximize the efficiency of the algorithms in a distributed environment.
  • Unit testing algorithms and modules.
  • Developing machine-learning based models and solutions for image processing, image recognition in MXP, or modules in FEM+/Newron models.
  • Integrating existing modules into an end-to-end solution, in C++ or Python scripts,
  • Evaluating pro and cons among solutions and suggesting the best solutions to fulfill the requirements.
  • Keeping good documentation of design and implementations.
  • Debugging.

As the domain knowledge is in lithography model/process and image processing on electron microscopy, a good understanding of these fields will be essential.


Ph.D. or Master'sin Computer Science, Electric Engineering, Physics, Applied Mathematics, or related areas.


  • 5+ year experience in C++ and/or other object-oriented software development.
  • Solid understanding in data structures and algorithms.
  • Experience in developing and debugging multi-threaded/parallel applications.
  • Familiar with SQL, Linux environment and scripting languages.
  • Experience in image processing, computational geometry, large data application, high performance computing, scientific simulation, and machine learning (data science) is a good plus.
  • Experience in CUDA programming is a good plus.
  • Knowledge in semiconductor lithography and IC design is a good plus.

Personal skills

  • Excellent written and verbal communication skills
  • Ability to work closely with other engineers, product managers and customer support

Context of the position

This position primarily works in an office environment. It requires frequent sitting, standing and walking. Daily use of a computer is required. May stand for extended periods when facilitating meetings. The physical demands of the position described herein are essential functions of the job and employees must be able to successfully perform these tasks for extended periods. Reasonable accommodations may be made for those individuals with real or perceived disabilities to perform the essential functions of the job described.

Other information

EOE AA M/F/Veteran/Disability

Learn more about this job