9 days ago - req22520

Software Engineer (golang) Internship

Research & development

Computer science & software engineering

Electrical engineering

Data science

In a nutshell

Location

San Jose - CA, US

Team

Research & development

Experience

No experience (Student)

Degree

Bachelor

Job Category

Computer science & software engineering, Electrical engineering, Data science

Introduction

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

You're a motivated and driven upcoming software engineer that is looking to develop a new tool that will be used daily within our cloud infrastructure. We will simply provide a service and reporting tool that does the equivalent of du and more in the background, provide a command to query the disk statistics, and as the data gets cleaned, a way to quickly update the incremental results, and iterate until the area is clean.

This service will have fast, highly concurrent filesystem tree traversal, use efficient on-disk data structures, that will be updated regularly, and the users can query that service to tell where the disk usage is on the filesystem in milliseconds, not hours or days between each iteration.

Job Description

We are a software company with hundreds of engineers that are continually producing more data than is possible for them to manage. Our engineers generate data, sometimes by accident, sometimes on purpose, and as projects and regular software release cycles end, there is time to clean up the pile of data that was generated, but where do we start? Which folder has the most files? Which folder has the most data? Which user generated that data? How old is that data? The group shared disk is full, so where do we need to start to know where to clean once the quota emails come in. Who is going to clean what, where, and how long will it even take to get a summary of where the data resides, and as they clean, how to quickly assess the cleanup? How to monitor the progress? What subtree on the filesystem do we start next? Run du -sch * > disk_summary.txt on the system, clean, and run du again, right? Well, the disk is still full and filling and du has been running since yesterday. Is there a way to make this faster?

Education

Pursuing a B.S. in Computer Science or similar technical field

Experience

  • Filesystem fundamentals such as inodes, the stat(2) system call, and its output fields.
  • Concurrent programming and ability to differentiate between a live-lock and a dead-lock, and quickly diagnose the lock, fix the code, and get back to adding features and meeting the next milestone in the project.
  • Common data structures, and the algorithms that create and manipulate those data structures.
  • Experience with some lower level compiled programming language that provides concurrency such as D, Rust, C/C++, Java, or the target language which is Golang.

Personal skills

  • Excellent problem solving and trouble shooting skills
  • Ability to excel in cross functional, team environment

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