The next major step in my programming journey was my first programming job, which I happen to still be at. I am currently a Software Engineering Intern for Thermo Fisher Scientific. I work on an R&D team in the Materials Science Division. Our team specifically develops and assembles new scanning electron microscopes (SEM) that are used in the manufacturing of semiconductors.
The specific project I am working on is developing a Python framework that can be used to automate testing of the prototype SEMs. There is an existing Python API that allows control of the SEM, however it does not have any built in logging or analysis functionality. You simply make a call and the machine responds. My project wraps the functionality of that API and adds logging and analysis functions so that the systems engineers can use it to characterize the SEMs and make sure they are operating within specification.
My job has been very rewarding and I have had the opportunity to wear a lot of different hats. I would say that generally my responsibilities fall into three different categories. The first being extending our framework to include more pieces of the API and writing the tests and analysis to be run on the SEMs. Secondly, I have the responsibility of testing our code base, this includes writing unit tests, integration tests and currently I am working on integrating those into an existing test automation solution. Lastly, I work with the systems engineer to troubleshoot hardware issues that our tests find on the actual system.
It has been difficult to split my time and juggle all of the responsibilities I have, but on the other hand I have been exposed to so many different parts of the industry and learned so much along the way. It truly has been a wonderful experience, and the cherry on top is that today I found out we are extending my contract through graduation!