
Co-op Overview: During the fall semester of 2025, I took a gap semester to work at MKS as a Reliability Engineer. In this role, I completed many projects in order to help produce more reliable instruments which would be used to power the machines which manufacture the chips. The internship included two core responsibilities: statistical analysis to predict and diagnose when current and future products are failing, and engineering solutions to test product reliability and deduce possible defects within designs.
Project 1: LT Spice Stress Sheet Automation
This project lasted throughout the entirety of the internship and was by far the longest, but one of the most impactful projects I worked on. A key step in the reliability process is to fill a stress sheet in order to have a collection of data that can be used for further reliability analysis. My goal was to take the design files straight from SPICE programs, and be able to automatically populate stress sheets without having to do the tedious process of finding specs for a specific part. As I worked on this project, multiple layers were added in order to ease and automate many tedious facets of the reliability process, allowing for more time to be spent on the actual root cause analysis.
The software began with an ability to read the netlist and trace files of the SPICE File. A UI was formed in order for a user to select the necessary files. Using this info, I was then able to create functions to calculate powers, currents, and voltages across a variety of components including three-terminal components like MOSFETs over time. However, many components used in industry have complex, or custom capabilities that have formulas which may be niche or only known by the company itself. Additionally, formulas for other parameters (for example, temperature) were also needed. Therefore, a feature was added to allow for custom formulas to be inputted manually. All formulas were then exported to an excel stress sheet with the parameter and component labelled. Systems can also experience stress through a variety of different modes. Therefore, the average, minimum, maximum, and rms values of each component was determined, and exported into the excel stress sheet.
Overall, the stress sheet compiled values automatically that were populated for components and the relevant parameters. A user could then input manual formulas for parameters or unknown values into the sheet as well. Stress values can then be determined and compared against derating values, and, using physics-of-failure models and softwares like Ansys Sherlock (another project which will join this flow) and Windchill, an end-to-end understanding of product and design reliability can be determined. As a result, reliability engineers can begin to derive and more accurately determine root cause failure modes and how design tweaks can be done to optimize a product.
Project 2: Cross-Section Analysis 1
MLCC’s are an important part of many electrical systems, and often instruments contain hundreds to thousands at them. Therefore, it is vital that the failure rate of the MLCC’s are kept extremely low, as even just 0.1% failure rate means that an entire device can be compromised.
A supplier had historically had faulty products, and some visual failures were being detected on cross sections of certain models of capacitors which we needed for current designs. To ensure these designs were not persistent across other capacitor makes which also needed to be implemented by the same company, I was assigned to complete cross sectional analysis on those new makes. Additionally, a proper flow was not implemented in the past, so I also was asked to make a work flow for MLCC cross sections to ensure an internal standardized and easy-to-access guide.
To prepare the samples, I first placed the sample in a rubber sample container which I coated in a release spray. Then I created an epoxy solution by mixing some solutions, and poured it, along with my MLCC, into the sample container. I waited for this epoxy sample to rest for 24 hours, until it was firm, and released it from the sample container. I did this with multiple samples, and placed them into a cross section grinder and polisher in order grind down the solution to a flat cross section sample. I adjusted the spin speed of the plate and grinder across samples optimizing the parameters in order to allow for the most clean cross sections. I also changed other parameters throughout the process in order to improve clarity of the samples, and allow for the best photos. After getting samples, I took images using a microscope with 100, 200, and 350 times zoom across the sample. Using these images, I was able to identify failures on a few of the samples that resembled similar issues from the previous makes.
Using this data, I consulted with the quality and supply chain team to discuss my findings. Using this, we met with the suppliers, in order to understand what was causing this issue and to ensure we didn’t have any more failures. Due to our systems having thousands of components, it was necessary that our sample qualities were very robust, as even one failing could cause the entire system to fail. In our meeting, we explained the necessity for the supplier to improve quality and were able to identify a potential issue in their process. We let them know that we did have a past of good samples as well as had most samples come out fine, and so could see that they were capable of making good samples. We continuously followed up with the supplier to ensure that quality standards were being upheld.
Through this experience, I was able to learn how to perform cross sections, as well as talk with other companies to ensure a smooth supply chain. Finally, my workflow that I created to explain parameters and tuning allows future cross sections to be done in a standardized and clean way.
Project 3: Consolidating Confluence
Product, test, and machine info was spread out across a number of systems. Data associated with everything was also spread out across multiple Confluence pages. Because of the separation of data, in order to see all the machines associated with specific tests as well as parts being tested, one would have to cross reference tables which takes time. In order to reduce this load, I created a relational database and parser using Python which I could display on a dashboard in PowerBI.
My first priority was the parse the data from each Confluence table into python dataframes. To save these databases, I used the Pandas package. After parsing, I was able to create relationships with the tables, that detected format issues like misspellings, spacing, and additional characters so that correct relationships would be formed. I then took these parsed dataframes, and exported them as csv files which I sent to an SQL database to allow for ongoing changes on Confluence. These were then sent to PowerBI where I completed my dashboard which displays tests associated with different machines, and count of these tests for each tests, and tables displaying data for specific values selected for.
This project gave me an overview of how to create relational databases, SQL, and PowerBI and helped me learn how to develop algorithms for a real-world need for maintaining an easy system to track reliability data.
Project 4: Ferrite Core RF Testing
I worked on an RF circuit in order to test ferrite cores to be used in variable capacitors in a system. The ferrite cores act as a separation for the capacitor acting as a switch. The main goal was to deduce how much RF voltage it could withstand before electrical breakdown, known as “wapping”. Wapping occurs because the voltage, frequency, heat, and duty cycle of load across the ferrite core causes the core to absorb large amounts of power, eventually reaching a point of complete electrical damage that is irreversible. In order to test out the configuration, I needed to design a resonant LC circuit with an inductor paired with a capacitor to create resonance, and needed to minimize reflected power as much as possible.
To get 0 reflected power, we want to ensure our load impedance is 50 Ohms. The two ideas we came up with for the LC test circuit was one with a series configuration where the RF source generator was sent to an inductor and capacitor in series and then back to the source. This cancels the reactance of the circuit, so the input can be made easier to match the RF source. However, because of this implementation, some power is leaked onto the capacitor, thus, you are not getting all the load onto the ferrite core. Another configuration is with a parallel circuit. The core and capacitor are connected across the same node, and as a result, much of the reactance is cancelled, however, there will be some reflectance. However, all the voltage will travel across the ferrite core.
Ultimately, we decided to do the parallel configuration after considering countless others due to us being able to minimize reflectance with our capacitor choice, but then later on potentially test on series one if further testing provides it as necessary. After doing initial testing, with varying voltage duty cycles and frequencies, we observed much higher voltages able to be withstood by the cores than initially expected. Even as the heat rose (measured through a thermal camera), the ferrite core continued to sustain itself. As a result, we designed a test script to vary duty cycle and voltage and paired it with a thermal probe to see accurate thermal readings. We tested the script on an emulator initially to ensure safety when doing on actual power generator. Afterwards, we configured a water chiller and a thermal probe to the circuit, and did some initial testing on the circuit.
This project gave us important insights into how to nuance of configuring testing stations and potential physical limitations which may be inevitable in a design and how to optimize around them. Importantly, I gained experience with RF design and utilizing it to test a valuable device which could help with the company’s larger projects.
Project 5: Sherlock Automation Script
To further automate the tedious reliability process, I created a script that ran Sherlock simulations given a list of components within a larger system. The script prompts a user for an ODB++ file, and launches Ansys Sherlock using its API. Sherlock takes the ODB++ file and imports project information given parameters (PCB geometry, components, thickness, layers, etc.) and settings set in the Python script.
The Sherlock simulation’s primary purpose is to complete solder-fatigue calculations and thus utilizes material and component properties from Sherlock’s part library. Additionally, Sherlock creates the circuit-card assembly (CCA) and multiple lifecycle tests to stress the board with.
Sherlock then runs a solder-joint fatigue test on the board and compiles the results in an analysis file for each event. It does this across multiple solder materials, models, thickness, and all temperature profiles in order to test the best configuration to use for the device.
The results are finally exported to an excel file to review. This project helped me better explore different parts of the reliability process and how to optimize PCB designs to allow for optimal designs using simulation tools, and allowed me to further automate the reliability process for the overall larger system being developed this semester. This process of working with Sherlock is typically tedious so this allows engineers more time on actual analysis and design optimization.
Project 6: Cross Section Analysis 2
More cross section work needed to be done on an LDMOSFET (MOSFETs that are used in high frequency and high power applications). These MOSFETs have a unique layout and needed to be inspected to see how they would function and where possible failures could exist within it before use.
I followed a similar flow that I created for my first cross section making changes to rotation speed and pressure based on visual inspections of process. I additionally did the cross section on both the back and front ends of the FET and was able to get a clean images on my samples.
Project 7: Void Percentage Detection Algorithm
In order to quantify the damage on chip die, I further refined an existing algorithm which calculated the percentage of space in a defined die region was a void (damage). The previous algorithm could detect larger bubbles of voids however failed to be sensitive to smaller regions. Additionally, it functioned by using geometric filters and classified things as either a void or non void region, however was inconsistent across because of lighting differences. This also meant that some outlines of bubbles were considered bubbles rather than the entire interior.
My new algorithm worked by detecting larger voids or by finding local regions that have a noticeable difference than the surrounding region. Additionally, in order to increase sensitivity, I added a sensitivity parameter that one could change based on how much filtering they desired. As a result of my work, the void detection algorithm was much more precise and dynamic and allowed for better sample measurements.
Project 8: D-MOSFET Validation
We received D-MOSFETs which needed to validate to use on a product. Using a PCT (Parametric Curve Tracer), we measured multiple states and power cycles across the MOSFETs to ensure that they functioned correctly and gave correct traces (and failed at expected values according to their data sheets).
This project was one of the first electronic projects me and my co-intern had worked on this co-op. In this project, we realized that reliability engineering requires you to understand deep physics concepts due to having to push the components to extreme limits, allowing for often ignored effects to be amplified. During testing, we noticed issues when trying to initially test trace values. Many traces looked different than expected, and many values existed outside the specified range according to the data sheet. However we realized that these values seemed strange because of the Miller effect as well as parasitic effects. D-MOSFETs act differently than typical MOSFETs and so when doing tests, we had to remember that negative voltage is needed to bring them back to their base state. After adjusting for these results, we were able to correctly test product traces and verify reliability.
Project 9: Thick Film Resistor Life Cycle Test
In order to understand the reliability of thick film resistors, a classic power life cycle test was performed. The test puts an elevated power stress on the resistor above what the typical power would be on the component. The power is calculated by doing enough power such that it accelerates the life of the resistor at a given acceleration factor to see when the resistor would fail in real time.
We wanted to run a given test over two resistors to so created a circuit in series and calculated the voltage and current needed to give the desired power across each. We then connected the resistors to a generator which we bought for the specified power constraints. Finally, we added water cooling to ensure pure power failures and not external acceleration factors. The test allowed us to tell when the resistors would fail in real use.
Other Skills Utilized
Many small tasks were assigned to me throughout the internship as well as the necessity to apply reliability skills to assist in debugging and figuring out solutions to projects. For example, Weibull analysis was important in order to identify where in the process parts are failing (infant mortality, random failures, wear-out failures). Using statistical skills, I was able to determine how products were doing and predict the life span of components such as the thick film resistor.