16 days ago - req29211
Software Product Architect (Java stack)
Research & development
Computer science & software engineering
In a nutshell
Research & development
Computer science & software engineering
When people think ‘software’, they often think of companies like Google or Microsoft. Even though ASML is classified as a hardware company, we in fact have one of the world´s largest and most pioneering Java communities. The ASML Javaenvironment is extremely attractive for prospective Java engineers because it combines big data with extreme complexity. From Hadoop retrieval to machine learning to full stack development, the possibilities are endless. At ASML, our Java teams create and implement software designs that run in the most modern semiconductor fabs in the world, helping our customers like Samsung, Intel and TSMC make computer chips faster, smaller, and more efficient. Here, we’re always pushing the boundaries of what’s possible.
We are always looking for talented Software Product Architects who can create robust software architectures and frameworks, direct teams to apply the latest Java SE or Java EE technologies, to join and support the teams responsible for creating software for high volume manufacturing automation in semiconductor fabs. Could this be your next job? Apply now!
As a Software Product Architect you will join a department that creates software platform for our multinational Scrum teams. Teams are composed of five to ten developers, a Scrum Master and a Product Owner. As an architect, you will work with System Engineers and other stakeholders to define the requirements for our software offering in the area of factory automation & factory integration. You willdecompose the requirements to software components, and help multiple teams realize software according to the architecture you set up. We are committed to following a (scaled) Agile way of working, with sprints and demos every two weeks, aiming for frequent releases of working software. In all teams we cooperate with internal and external experts from different knowledge domains to discover and build the best solutions possible. We use tools like Continuous Integration with GIT, Jira and Bamboo. We move fast to help our customers reach their goals, and we strive to create reliable and well-tested software; because failures in our software stack can severely impact customers' operations.
You will help shape the product offering, from requirements through realization to maintenance, in the area of semiconductor factory automation for high volume manufacturing. You will work with multiple Java teams, who work in unison on different products and platforms across ASML. Here’s a brief description of what the different Java teams do:
- Provide industrial automation tasks that take care of unattended complex adjustments to the manufacturing process, in order to enable highest yields in high volume manufacturing;
- Create applications that help fine-tune the manufacturing process, helping process engineers to navigate the complexities of process set-up through excellent UX design.
- Create visualization and analytics applications for visual performance monitoring, which also help to sift through huge amounts of data to pinpoint potential issues and solutions. For these applications, next to Java we use TypeScript & React.js in our stack.
- Define requirements and architectural decomposition that realizes requirements defined by our System Engineers. Capture those in clear and easy to understand documents, so that the teams can focus on detailed design, implementation and testing, instead of asking you clarifying questions.
- Lead FMEA reviews, to capture and manage design risks. Follow up on identified risks through adoption of the design, technology choices or other mitigations.
- Review detailed designs and advise teams on improvements
- Create work breakdowns that lead to efficient execution that removes risks fast.
- Give high-level estimates for future work, and make sure that estimates you give are grounded in reality – check regularly with the teams & calibrate your intuition and estimation methods to help create predictable plans.
- Create and collaborate on creation of proofs-of-concept, to evaluate new technologies or design directions. Make decisions based on facts, not folklore.
- Dig into the codebase of your teams. Fix some issues. Refactor an interface. Experience the same tools, procedures & environments as the development teams do, so you can advise on how to make them better and more efficient. You need to be hands-on, not on the critical path of any project, but always digging deeper and improving the status quo.
- Collaborate with other architects so that our products and frameworks are consistent and well-engineered.
- Guard the consistency of technical realization of software within your area of responsibility. Make sure the software is compliant, fulfils license obligations, is well-tested, with minimal technical debt, works well with CI/CD pipelines and is internally consistent.
Main technologies: back-end :Java 8/11 and later, RHEL Linux; front-end: React.js, Redux, TypeScript, HTML5, CSS3.
A relevant MSc in the area of Computer Science.
- At least 8 years of Java development experience, 3 of which ideally in an architectural position
- Design and development of high-reliability server-side software
- Good knowledge of software test methods and practices, with heavy focus on automated everything.
- Working with DevOps concepts, with understanding of healthy CI/CD
- Working with multiple Scrum teams
Experience with the following is a plus:
- Creation of web-based user interfaces
- Affinity with math, data science or machine learning.
- First of all, you’re passionate about technology and are excited by the idea that your work will impact millions of end-users worldwide.
- You’re analytical, and product- and quality-oriented.
- You like to investigate issues, and you’re a creative problem solver.
- You’re open open-minded, you like to discuss technical challenges, and you want to push the boundaries of technology.
- You’re an innovator and you constantly seek to improve your knowledge and your work.
- You take ownership and you support your team - you’re the backbone of your group.
- You’re client and quality oriented – you don’t settle for second-best solutions, but strive to find the best ways to acquire top results.
Keywords: software architecture, software engineering, computer science, Agile, Scrum, Java, product development