My undergraduate and graduate degrees were both in Electrical Engineering, with my Master's focused on Computer Engineering.
I had a wonderful time working at Texas Instruments in Houston, Texas for 10 years as an Automotive Microcontroller Applications Engineer and had some incredible mentors there. My job was supporting 32-bit ARM-core microcontroller product development through the entire product lifecycle. It was a combination of embedded software, embedded hardware, technical documentation, interfacing with various internal departments as well as worldwide automotive OEM customers.
As an Applications Engineer, we each had product lines that we were in charge of supporting. This means we were responsible for coming up with the technical specifications for each new device, working with marketing to understand the requirements from the customer, working with the chip design team to understand what's feasible, working with the QA team when devices fail in the field to figure out what went wrong, working with program management to make sure all deliverables are on-time, writing specifications and user guides, and interfacing with worldwide customers on issues and questions that arise.
On the embedded software side, I programmed in Embedded C/C++ and Assembly language, creating software tools, bootloaders and drivers for the microcontrollers. I was in charge of device and module validation of the chips that I supported and developed a very strong ability in debugging and testing, as well as planning, documenting and writing testcases, especially to check for unintended bit flips and arbitration and boundary conditions. I had a good understanding of how the compiler, assembler and linker worked as the challenge was to be able to write tight code that would fit within the small embedded memory, and I worked with emulators and simulators within the TI IDE on a daily basis. I had full understanding of how all the modules within the microcontrollers worked, whether it was the ARM core, ARM + DSP, various communication modules and their communication protocols (LIN, CAN, I2C, J1850, SPI, RS-232), direct memory access (DMA), analog to digital converter (ADC), programmable pulse width modulation, embedded Flash, complex interrupts and various low power modes.
On the embedded hardware side, I used schematic capture and layout software to design emulation boards and validation boards for testing the microcontrollers in the lab at room temperature as well as at extreme high and low temperature conditions, and created TEM cell boards for EMI/EMC electromagnetic interference testing. I was responsible for sourcing parts, and working with circuit board fabrication and assembly shops to get the boards made and assembled on-time. I have experience working with and programming FGPAs as they were used on some of the boards. I also created circuit boards for customers to use in their product development testing environment, as well as hardware for customer demos. I worked regularly in the lab with various electronic test equipment. Our awesome lab technician taught me how to solder some of the tiniest and trickiest parts, and I became quite skilled at doing so.