Work Experience

Design Engineer at ARM (2015-Present)

This is my current role at ARM. I have been working for a few years on the Core Testbench which involves pretty much any unit without a cache. A lot of the work here is writing models for the memory system, fetch, and any other unit RTL that is compiled with the core. We also work with out of order processors which means we have a lot of bugs around retiring instructions at the right time and where to reset the system in cases of flushes and exceptions. The Core TB also tests all exception handling and special register accesses.

Graduate Design Engineer at ARM (2014-2015)

This role was mainly split between 6 4-6 month roations. The first rotation was for L2 validation which mostly involved coherency checking and interaction with the interconnect. I also wrote coverage during this time as the A-72 was late in the product cycle about to be released to customers.

Performance testing for an enterprise DDR Memory controller. Deep dive into where latency was coming from and how to reduce it. Most of my time in this rotation was looking at RTL for the interconnect and memory controller while also looking at traffic generators.

Implementation for the full CPU layout on Cortex-A72 mostly working with tools and TCL scripting.

Design Engineer Intern at ARM (2013)

This was my first pre-silicon internship. I worked on validation of the loadstore unit for what became the Cortex A57. My first main project was writing a data preloader that made the cache look like it had been used for many cycles before the test even started. This allowed us to test many more atributes than we could have if we wasted cycles at the beginning of every test with cache misses and loading data from the Level 2 cache.

Product Development Co-op Engineer at Advanced Micro Devices (AMD) (2011-2012)

I worked at AMD for two co-op terms that spanned over Fall 2011 and 2012. During my 8 months at AMD I went through all of the processes required to make test programs that ran on microprocessors. I worked mainly on the Trinity desktop and laptop line of processors for the Advanced Test and Characterization (ATaC) team that focused on High Speed I/O PHYs that included PCI-e and display port. The ATaC group focuses on generating test content used to bin devices as either good or bad. My time spent in the ATaC group allowed me to do a wide variety of tasks including modifying production test content.

My largest single project was working with a new piece of DFT no one on the team had used before. I completed all of the steps necessary to create a new production test. First, I read through the documentation to find out about the specific DFT circuit, and what needed to be changed in order to enable it. I then got it enabled and contacted design to show them the findings and make sure they agreed. Finally, the DFT was integrated into a test program and run on numerous parts for correlation data. Even though this was the main project, I also had other responsibilities on a day to day basis.

I modified the production test content to save hundreds of milliseconds, enough to pay for my Fall 2012 coop term, by changing the measurement method that was used on DC tests that were run during the production flow. This included integrating the new content into the production flow and working closely with the production test team. Our team worked with both Creedence Saphire testers and Advantest Verigy testers to test our devices.

While I was on the ATaC team I also had the responsibility of working with customer returned units. After receiving the units I would characterize the parts while comparing them to known good units and then writing a report and sending it out to all of the concerned parties. When our team received parts that passed our tests but failed a High Speed I/O post code we would run the parts through our full circuit sensitivity flow to check what we might have missed and write an in-depth report on the findings.

Another large portion of my job responsibilities included data processing and creating scripts. I learned many new languages while I was at AMD that included Perl, Python, and SQLite. The Perl and Python scripts were used mainly to parse the data files and for file I/O while SQLite was used for data mining. During my first term at AMD my High Speed I/O team used a proprietary AMD format to mine data that we would use for our characterization reports. When I researched using SQLite instead there were large time savings to be realized, which ended up making the data mining processing order of magnitudes faster.

Soccer Referee

For the past seven years I have gained invaluable experience as a referee. During a game the ref has to make possible game changing decisions that affect up to 22 adult players, all at a very quick pace. Any decisions I make on the field, right or wrong, I must live with. This has given me great confidence for group projects and managing tasks in general. Refereeing also gave me leadership experience when I am managing the players and the line judges to make sure the game continues smoothly.

Deepwater Horizons Oil Spill Cleanup

During the summer of 2010 I assisted with the cleanup of Pensacola Beach, FL that resulted from the BP oil spill. I worked long hours (12 hour days) up to seven days a week. There was a very strict hierarchy of command personnel and many rules that the employees had to learn and utilize for their own safety and that of their coworkers.

Busboy at Angus Steak house

While in high school I was looking for a job to make spending money and I heard about this position. I never thought I would gain much knowledge from being a busboy, but this position taught me how to deal with all types of people (customers) and exposed me to a very diverse staff. When someone sat at a table I was the first person they interacted with and I set the tone for their entire meal. Working as a busboy requires you to be team-oriented  because only with coordination between the servers, kitchen staff, and busboys can you deliver the best service and be rewarded with the highest tips. The server, busboy and kitchen staff all had to be on the same page and help each other out to get the pay we desired.