Software Engineering Internship: Modularity Improvement within Scanner Software
Introduction
Are you a master's student in Computer Science, Software Engineering, or a related field looking for a graduation or apprentice internship? Do you have a great understanding of design patterns and principles and are comfortable with C++ and Python? Then this internship might be interesting for you!
Background Information
The Metrology Image Alignment Software group is part of the Scanner-Metrology in the Development and Engineering organization at ASML. The core functionality of this group is to develop software solutions for aligning patterns from reticle to wafer using expose side sensors to achieve maximum yielding dies on EUV Twin Scan lithography machines.
Your Assignment
The Image Alignment Metrology Software has grown rapidly during years of development. It has many modules that are further divided into multiple components. Also, the component interfaces have grown in complexity and number. The interfaces are defined in a proprietary IDL (interface definition language) which, together with a scope control mechanism, ensures that the interaction between components, modules, and functional clusters follows ASML architectural guidelines. The IDL is also used to abstract from different programming languages used for the software implementation (mainly C, C++, and Python).
This project aims at analyzing interface interactions and, based on defined metrics, identifying hotspots in ASML’s architecture. Also, propose generic solutions on how to refactor the interfaces for a better architecture with improved modularity.
Suggested Steps:
- Research architecture/design patterns that are most suitable for requirements such as maintainability, extendibility, and usability.
- Define metrics to identify architectural hotspots.
- Propose algorithm/tooling that can map the metrics to proposed architectural/design patterns.
- Using the proposed algorithm, identify items to improve the modularity index of the software.
- Propose solutions (design/architectural patterns) on how to improve the interface interactions in the identified improvement items.
- Implement a prototype for the algorithm showing a tradeoff with alternative solutions (design pattern).
Your Profile
To be a perfect match for this internship, you:
- Are a master's student in Computer Science, Software Engineering, or a related field.
- Have experience with design patterns, Object-Oriented Design Principles, and design knowledge for refactoring interfaces and modules.
- Are comfortable with C++, Python, and working in the Linux shell.
- Possess soft skills for technical alignments and discussions with multiple stakeholders and are able to lead brainstorming sessions towards meaningful conclusions.
- Are passionate about research, analyzing trade-offs between alternative solutions to converge towards informed and optimal solutions considering the defined metrics.
This is a master graduation or apprentice internship with a duration of a minimum of 6 months, for 4-5 days a week, starting in Q1 2025.
Learning and Growing
Working at ASML is a journey; an opportunity to never stop learning and growing, and we see it as our responsibility to help you unlock your potential. We offer training and development opportunities, including educational assistance. Here at ASML, you will find an environment where you can take up multiple growth opportunities, master your competencies, and make your mark in a variety of ways.
Belong at ASML
We believe you’ll do your best work when you’re supported by an inclusive environment where you can bring your full self to work. At ASML, you'll feel welcome, recognized, and supported by a company that helps you thrive. We’re a highly diverse group of people. No matter who you are in our company, you can have a real influence. You’ll be empowered by flexible working and well-being programs, as well as participate in employee networks such as: ‘Women’, ‘Sports’, ‘Green’, ’Expats’, and more!
Diversity and Inclusion
ASML is an Equal Opportunity Employer that values and respects the importance of a diverse and inclusive workforce. It is the policy of the company to recruit, hire, train, and promote persons in all job titles without regard to race, color, religion, sex, age, national origin, veteran status, disability, sexual orientation, or gender identity. We recognize that diversity and inclusion is a driving force in the success of our company.
Benefits Extracted with AI
- Training and development opportunities
- Flexible working
- Inclusive environment
- Employee networks
Similar jobs
Last update: 23 minutes ago
Associate Software Engineer - Payments Domain
Join as an Associate Software Engineer in Amsterdam to develop secure payment solutions using PHP in a collaborative environment.
Software Engineer - Cloud Applications and Python
Join Topicus as a Software Engineer in Arnhem to develop cloud applications using Python, REST APIs, and ETL processes for healthcare data services.
Software Engineer with C/C++ and Python
Join Barco as a Software Engineer in Kortrijk, Belgium. Work with C/C++, Python, and Linux in a hybrid environment.
Senior Software Engineer (C++)
Join Nebius as a Senior Software Engineer (C++) to develop reliable cloud services in a hybrid work environment.
Software Developer for Educational Platforms
Join Kennisnet as a Software Developer to create innovative educational platforms using Angular, PHP, and more. Hybrid work in Zoetermeer.
Embedded Software Engineer
Join IBA as an Embedded Software Engineer focusing on Ethernet networking and embedded programming. Entry-level position in Louvain-la-Neuve.
Senior Developer with C#, Java, and Python
Join RINIS as a Senior Developer to build secure data exchange solutions using C#, Java, Python, and more in a hybrid work environment.
Software Engineer II - Developer Experience
Join Elastic as a Software Engineer II in Developer Experience, focusing on test frameworks for Kibana. Remote work, competitive benefits.
Software Engineer - Autonomous Driving
Join Applied Intuition as a Software Engineer in Munich to tackle autonomous driving challenges with top ADAS/AV programs.
Senior Software Engineer - Java, Microservices
Join Sofico as a Senior Software Engineer focusing on Java and Microservices in Ghent. Work on ERP solutions for automotive finance and leasing.
Senior Software Engineer (C++, Python & Cloud)
Join VIAVI Solutions as a Senior Software Engineer specializing in C++, Python, and cloud technologies. Work in a hybrid environment in Berlin.
Software Engineer with Design Affinity
Join Telenet as a Software Engineer with design skills to develop innovative campaigns using HTML, CSS, and JavaScript.
Senior Java Software Developer
Join Conspect as a Senior Java Software Developer, working on diverse projects with Java, Spring, and more. Enjoy a great salary and benefits.
Senior Software Engineer - Java, Microservices
Join Sofico as a Senior Software Engineer focusing on Java and Microservices in Bavaria, Germany. Work on ERP solutions for automotive finance.
Computer Science Internship in Continuous Integration Pipelines
Join ASML as a Computer Science Intern to enhance continuous integration pipelines using Python and GitHub.
Entry Level Software Developer (C/C++, Assembler)
Join Fujitsu as an Entry Level Software Developer working with C/C++ and Assembler in a remote role focused on mainframe systems.
Senior Lead Fullstack Developer with Frontend Focus
Join NS as a Senior Lead Fullstack Developer focusing on frontend, working with Angular, AWS, and TypeScript in a dynamic e-commerce environment.
Entry Level Software Engineer - Platform (Python)
Join Optiver as an Entry Level Software Engineer - Platform, focusing on Python and infrastructure automation in Amsterdam.
Senior C++ Software Engineer
Join Bitmovin as a Senior C++ Software Engineer to develop scalable video streaming solutions using modern C++ and cloud-native architectures.
Information Retrieval Algorithm Engineer
Join Huawei as an Information Retrieval Algorithm Engineer to develop cutting-edge AI technologies in Amsterdam.
Backend Software Engineer
Join NCR Voyix as a Backend Software Engineer in Amsterdam. Design, build, and maintain scalable backend systems using Java, Node.js, and cloud platforms.
.NET Developer / Tester
.NET Developer / Tester role in Melle, Belgium. Work on web applications, testing, and development in a hybrid environment.
Software Developer (C/C++, Assembler)
Join Fujitsu as a Software Developer specializing in C/C++ and Assembler for mainframe systems, offering flexible work and extensive benefits.
Fullstack Developer (m/f/d) with JavaScript and Python
Join smartmicro as a Fullstack Developer to work on high-tech radar sensors using JavaScript, Python, and more in Brunswick, Germany.