QUENTIN PIERCE
Senior Hardware Design Engineer
Automating Engineering, Beer, and Gaming.



I want to brand myself as an automation engineer who knows both HW and SW.  Here are some high level stories concerning my work history.  







qtpierce@gmail.com
LinkedIn:  www.linkedin.com/in/quentin-t-pierce
Resume:  http://www.smegabyte.dyndns.org/resume/


Writing RTL code is hard and precise work. 

Obstacle - How do we enforce coding standards on the new engineers?

Actions - Write static-check lint rules that read RTL code and look for violations of the coding standards.








Results - I've had junior engineers thank me for teaching them to run my static-check tool because it taught them how to adhere to the coding standards.

Skills - Perl, C++, code linting, RTL coding.

Summary - Wrote static-check lint rules that helped junior engineers improve their coding quality.
End users did not see proof of bug fixes.

Obstacle - It is important to prove to the end user their bug is fixed.  It helps them.

Actions - I wrote a script that will help me quickly, simply, bundle the fixed code + their bad testcase + known good results + a README into a zip file.  When they type ./RUNME.pl , the script will run the fixed code on their bad testcase and help them understand the new behavior of the fixed code.








Results - End users said they were delighted.  Especially when the new behavior of the fixed code was not what they really wanted.  This simple proving of bug fixes kept them informed and talking with me about what they really wanted.

Skills - Perl, code linting, customer relations, regression testing, automation.

Summary - Delighted customers by providing them testing collateral and simple scripts that proved fixes' behaviors.
The team had stopped regression testing old versions of SW that were still in use.

Obstacle - Users of old versions would issue bugs against changes the team was releasing.  This was rework and also rejection of the team's fixes.

Actions - While ramping up on the team, I wrote a feature that bundled the regression tests against SW version numbers.  The feature needed 2 parts.  When running regressions, the correct 1-of-many versions must be executed.  When writing tests, it must be easy to write many versions.








Results - My first significant task on the team was owning this new feature and proving to end users that our fixes met their needs.  End users saw quality go up, so incoming bugs went down.

Skills - Perl, regression testing, automation.

Summary - Developed version matching between SW versions and the different versions of regression collateral.
The team took on someone else's work in control registers.

Obstacle - The team was understaffed already.  The work was "be a middle layer" between end-users and the engine writers.

Actions - Two of us wrote a parsing language and a parser that took the end-users' domain specific language and generated Verilog code.








Results - The end-users were delighted to learn their task had been abstracted to a level they felt comfortable with. 

Skills - Perl, C++, RTL coding, delegation, abstract SW, automation.

Summary - Developed an abstract parsing language that hid details from the users and made their job easier.



Designed the TDS5000 thermal printer system.

Situation - Customer requirements listed a need for a printer in the TDS5000 oscilloscope.  This was my first design project.

Actions - I learned to work with component engineering, to contact vendors, and to use the schematics capture tools.  I selected the components and learned about them.  I designed the thermal printer circuitry.  I tested the thermal printer circuitry.








Results - Tektronix offered the thermal printer as an enticement to pull in customers.

Skills - Work with a loose knit team, schematics capture tools, learning about ICs,

Summary -  Learned to design thermal printers, use schematics capture tools, and speaking with vendors in order to offer a thermal printer with certain oscilloscope models.




Designed the DPO series interface boards and wrote specifications.

Situation - Two interface board designs were needed, one per model in the series.

Actions - Created an interface design and reused the circuitry to create the second design.  The design was a low-risk design and it started from a known good design.  Wrote documentation for this low-risk design.  A second design was needed.  A high-risk design with new components.  Created a new interface design with the new components and reused the    circuitry to create a fourth design.  Wrote documentation for this high-risk design.








Results - Risk was removed from the software engineering schedule because the low-risk design worked correctly with obsolete components.   Software engineering started writing software while I worked on the high-risk design.  Both designs were reused to save development time.  The documentation was accurate and presented to both engineering and manufacturing for educating people about the design.

Skills - Digital design, analog design, planning for risks mitigation, specification writing.

Summary - Created two interface board designs, reused them twice, and documented all four board designs for posterity.
Championed the sharing of the DPO series interface circuitry and sharing of the specs.

Situation - Kept diligent notes on the design of the interface circuit.  Wanted to put the notes to good use and educate people.

Actions - Wrote the engineering notes into a board design specification and gave it to engineers who wanted to reuse the design.  Spun off a copy and pared the copy down to basic design theory and troubleshooting notes and gave that copy to repair technicians for their education. 








Results - Several engineers learned from my design spec, people told me the design spec looked great, and repair technicians had a handy document that listed real problems and solutions for the interface circuit.

Skills - Documentation, team work, sharing, teaching technicians.

Summary - Wrote excellent design specifications and shared them with engineers and technicians, allowing both personnel to become familiar with the interface circuit
Learned Verilog:  an FPGA firmware language.

Situation - The new architecture concepts required data processing and FPGAs were chosen as the processing devices.

Actions - Knew the basics of Verilog.  Asked coworkers to assist in learning the NC-Verilog environment.  Took a class on Verilog coding methodology.  Participated in developing a Verilog coding methodology.  Practiced coding  Verilog code and test code.  Developed two pieces of FPGA firmware using Verilog.








Results - Learned Verilog coding well and wrote firmware and tested firmware.

Skills - Verilog, architectural planning, FPGA synthesis.

Summary - Strengthened Verilog coding skill set and wrote the necessary firmware and synthesized an FPGA to fit a need for a new piece of hardware.
Worked with quality engineers to understand reliability problems and failure mechanisms.

Situation - Manufacturing group asked for engineering to improve the reliability of an oscilloscope model.

Actions - I provided information and ideas concerning how to find failure mechanisms.  I provided insight into dealing with failure mechanisms.  I supported the team's efforts.









Results - Reliability improved %10 because of the team's efforts.  Reliability improved some unknown percentage because of my efforts.  I learned concepts in reliability.

Skills - Fault analysis, contacting sub-contractors, service policy.

Summary - Worked with a team to improve the reliability of oscilloscopes.
Worked with software engineering to develop drivers for hardware.

Situation - Software engineering needed a hardware engineer to help develop additional functionality into the hardware driver.

Actions - Worked with three software engineers to develop functions that setup, controlled, and handled interrupts for a hardware system that was built into an FPGA.  Worked with software engineers to correct design flaws in the hardware driver.  Helped the software engineers understand the timing and state needs of the hardware.









Results - The additional hardware system in the FPGA worked.  Several bugs in the driver were located, corrected, and documented. 

Skills - C++, knowledge of the system architecture, software debug concepts.

Summary - Worked with software engineers to develop and debug hardware drivers.  Taught the software engineers knowledge of the system architecture.  Learned from them how to debug software.
Designed mixed signal circuits.

Situation - Marketing wanted a thermal printer for an oscilloscope.

Actions - Designed two thermal printer systems.  One was a complete design that used a USB bridge to control a thermal printer head and microcontroller.  The second was an interface and power supply for an off-the-shelf monolithic thermal printer.  Thermal printers are a mixture of digital design, analog design, power system design, and mechanical control.  Analog sensors and digital sensors are used to update the microcontroller of the state of the thermal printer.








Results - Two models of oscilloscopes have thermal printers in them that work.  I learned some lessons on mechanical control.

Skills - Digital design, analog design, machine control, driver debugging.

Summary - Designed two thermal printer systems and learned mechanical control, mixed signal design, and power supply design.
Designed with LVDS and CMOS differential signaling.

Situation - Did not know anything about differential signals.

Actions - Learned through USB designs about CMOS differential signaling. Learned through FPGA designs about LVDS signaling.  Probed the signals and wrote documentation for repair technicians to ease their understanding.









Results - Gained an understanding of differential signaling.

Skills - Signal probing, LVDS design, differential design.

Summary - Used LVDS and differential signaling to connect circuit systems together.  Used LVDS in two FPGA designs.
Familiar with modern logic signal types.

Situation - Did not know anything about logic signals.

Actions - Learned TTL, CMOS, ECL, and low voltage variants.  Designed with those modern logic signal types.










Results - Gained an understanding of modern logic signal types.

Skills - Signal probing, bus design, single-ended logic types.

Summary - Used modern single-ended signals to connect circuit systems together.
Familiar with high-speed analog-to-digital conversion.

Situation - Did not know anything about high-speed analog-to-digital conversion.

Actions - Learned about high-speed analog-to-digital conversion from people who are leaders in the field.  Participated in design reviews and verification testing of the AtoD systems of oscilloscopes.









Results - Learned about analog-to-digital conversion and oscilloscopes from industry leaders.

Skills - AtoD design theory, oscilloscope usage

Summary - Studied high-speed analog-to-digital conversion with industry leaders.
Familiar with low-speed digital-to-analog conversion.

Situation - Did not know anything about low-speed digital-to-analog conversion.

Actions - Learned about digital-to-analog conversion by understanding the calibration system of an oscilloscope;  DtoA is used throughout the calibration system of an oscilloscope.










Results - Learned about digital-to-analog conversion and about calibration systems of systems.

Skills - DtoA design theory, calibration theory

Summary - Studied digital-to-analog conversion by understanding the calibration system of an oscilloscope.