Technology Domains

Operating Systems

I was a member of the Windows NT development team at Microsoft for almost 5 years. During that time, I developed and maintained display drivers. Those drivers had to run on x68, Mips, PowerPC, and Alpha architectures. And yes, I had to test and debug them on all of those platforms.
Since then, I have also worked on Qualcomm's BREW operating system, Android, Windows on Arm, and Embedded Linux releases for Snapdragon.
Never having worked for Apple, my only impact on the shipping versions of iOS and OSX was via contributions to the WebKit open-source project which provides the rendering engine for Safari.

Embedded Systems

I spent several years working on firmware for electronic test equipment. One device that stands out for me was a digital power analyzer. Two of us wrote all of the software and brought up the hardware. We also built a simulator for it, to facilitate faster turnaround times for testing UI changes.
The device used a Motorola 68000 processor for control, and a Motorola DSP56001 for signal processing. That project was lots of fun and required learning a significant amount of domain specific algorithms quickly (and thoroughly). I learned a lot about embedded systems and diagnosing and debugging hardware/software issues. This project was the epitome of being thrown into the deep end.

Mobile Platforms

Early on, I worked on what was basically a bare-metal internal operating system on a processor with an ARM core, combined with Qualcomm's Binary Runtime Environment for Wireless(BREW). The highest priority, beyond basic functionality, was to minimize power consumption.
Later, additional cores (including CPUs, DSPs, GPUs, and NPUs) were added to expand the capabilities of the platform.
As the technology evolved, Android and Embedded Linux became the dominant platforms for newer, high-end phones that had more memory and faster processors. Then the lower-tier phones caught up with the resource requirements and the decision was made to move all new devices to Android(or Windows) for all phone tiers.
As we leveraged more external code, a lot of the software burden shifted to large scale integration and verification, as well as dealing with requirements for open-source tracking and licensing. We also had to build a secure-boot chain and secure execution environment that could co-exist with a host operating system, as well as an ecosystem to protect the integrity of both.

Web Technologies

TBD.

Software Security

In the Secure Systems Group at Qualcomm, I worked on all aspects of delivering a secure platform for Snapdragon devices. I dealt with the entire secure-software stack, including secure-boot, debug, hypervisor(s), the trusted execution environment and trusted applications that ran within it. I was also involved in supply-chain security, ensuring responsible open-source usage and licensing, static analysis of the codebase, fuzzing of the system components, code signing, continuous integration and delivery, and CVE/vulnerability mitigation.