Portfolio


Lead
Principal engineers lead through influence, not authority. I drive technical strategy across globally distributed teams, making architectural decisions that scale organizations and systems. My leadership spans technical direction, cross-team collaboration, and mentoring the next generation of engineers.
More
Learn
Technology evolves rapidly, and principal engineers must stay ahead of the curve. I continuously learn new technologies, business domains, and leadership approaches. From my first website in 1997 to today's distributed systems, I've adapted across embedded systems, web, mobile, cloud, and now AI - always learning what's next.
More
Launch
Principal engineers don't just architect - they deliver. I launch solutions to complex technical challenges, from patented verification systems to large-scale distributed security platforms. Success means turning technical vision into production systems that solve real problems at scale.
More

Lead

At Amazon, I lead the technical strategy for securing micro-service messaging across thousands of services processing millions of requests. This involves architecting solutions that scale horizontally, making trade-off decisions between security and performance, and influencing engineering teams across multiple organizations.

At Smarter Grid Solutions, I lead advances in industrial IoT for Smart Grids from the perspectives of implementation and standardization. I developed the first strategy for contributing to open source software and application of threat modeling approaches to understanding security.

At ChinaNetCloud, I directly managed a team of up to 10 people, interfacing between the founder and the core development group. I helped navigate through multiple restructuring events.

At SnapEDA, I built an effective international R&D team consisting of developers, UX, electrical engineers and other domain experts. The team organized around Kanban boards, allowing me to spend time understanding our customers.

Learn

Continuous Learning

Principal engineers must continuously adapt to new technologies, business contexts, and organizational challenges. Learning isn't just about technical skills - it's about understanding systems, people, and how to drive change effectively.

At Amazon, I've provided technical leadership on projects and programs from initiation to completion in the general space of very large scale access control. My leadership goes beyond technical and I frequently lead in multiple areas from product management to incident response.

Languages

Software isn't about the language - it is about the ideas and the language is how you express your ideas in a concrete way. Still, I get asked this all the time.

70%
Python
My go to language for rapid development. It isn't just for scripting, I have built websites and full desktop applications in Python. pcb-tools (GitHub) win-lin-django (BitBucket)
70%
Java
I've rediscovered Java multiple times in my career, most recently at Amazon and Smarter Grid Solutions for microservices. Previously, I developed several Android applications and even a desktop application in Swing.
70%
C/C++
6 years and countless lines of code later, C++ keeps a place in my heart. I have used C/C++ to build Linux embedded/server and Windows desktop applications. OpenPLC (GitHub) xmlstack (BitBucket)
70%
JS/TS
JS has come a long way from my first exposure in the late 90s. Since then, I have built backend applications, mobile and single page applications using ES6 and TS in React and AngularJS. VIGSI (GitHub) easyeda-importer (GitHub) xss-by-example (GitHub)
70%
Rust
Rust piqued my interested for systems programming in 2022. I founded IronPLC specifically to learn Rust. I'm still at it! IronPLC
70%
PHP
My first experience was developing a WordPress plugin. Since then, I built backends for ChinaNetCloud in PHP using Laravel. trustedproxies (GitHub)
70%
C#
I dabbled in C# and MEF for a couple of years at National Instruments for LabVIEW. Later at Smarter Grid Solutions, I developed microservices in C# to integrate with devices using industrial protocols.
70%
HTML
Last, but not least, I first wrote HTML nearly 20 years ago. I have built web applications for Smarter Grid Solutions, SnapEDA, ChinaNetCloud, and others.
Didn't find what you were looking for? I've also completed commercial projects in Objective-C, MATLAB, IEC 61131, VHDL, Perl, VB.NET and probably more that I've forgotten.

Launch

Smarter Grid Solutions - Packaging for IEC 61131

Industrial software systems are often neglected and the tools and systems often have only rudimentary support for software engineering's best practices.

At Smarter Grid Solutions, we are transforming our software development process for embedded devices to take full advantage of best practices. For our differentiated control applications, we have developed fully automated pipelines that take Simulink-defined state machines and enable developers to compose solutions and automatically deploy then on all major PLC runtimes.

The result? An efficient platform for embedded systems innovation.

SnapEDA - Part Validations

Details in circuit board manufacturing are absolutely critical. Sub-millimeter mistakes can result in poor soldering, bad boards, or even boards that are impossible to assemble. This presents a barrier to acquiring data from 3rd parties such as SnapEDA.

At SnapEDA, I invented a patented verification system that identifies data problems. What makes this powerful was recognizing that the same information is often specified in multiple ways that should be self-consistent. The verification system is able to answer the question of "does this make sense?" and present the results in an easy-to-understand format.

US patent pending 20170249410

ChinaNetCloud - Adoption of React

OpsStack is ChinaNetCloud's Operations as a Service (OaaS) stack management system. As the software architect, I recognized that jQuery was not going to be an efficient way to develop and maintain future requirements.

I evaluated several frameworks, ultimately selecting React over alternatives such as AngularJS and others. This evaluation included a migration strategy so that we could change the front end piecewise and training plans for developers.

I have spoken about the migration in "Evolving an application architecture".

More?

Much of my work is proprietary which makes it difficult to publish. You can find clues as to what I'm working on in a few places:

And if all else fails - just Google for my name.