d.b.a. Firmware Repairman
Forty years of embedded design and coding from bare metal to applications
Open to contract programming in the San Francisco area, up to 20 hours/wk
Plays well with others
Doing embedded development since 1983
I started out in the early 80’s designing hardware. In my first jobs I learned to design bit-slice processors. These custom processors required VLIW programs, that I had to write. Programming them was my first introduction to embedded software. Since then I’ve stuck close to the hardware as the technology has evolved.
My first decade of engineering was spent in product development, rising to the position of Director of Engineering for a small engineering company. I quickly learned that I did not enjoy managing a department and returned to embedded programming. Along the way I picked up an MSc in Computer Science and Engineering.
I became a contractor in 2001 and supported dozens of customers over the next decade. In 2011 one of my customers was swallowed by Google and I was swept up in the backwash. We relocated to the Bay Area where I worked on the Android frameworks for four years.
After leaving Google I worked for a pair of San Francisco startups and I now consult and do contract programming here in the Bay Area
In my spare time...
After 30+ years in San Diego, my wife Winky (aka Lorraine) and I moved to San Francisco in 2011. Our three kids were going to colleges in the Bay Area at the time and I got an offer to relocate that was hard to pass up.
In the decade since, the kids have all graduated and along with their spouses are kicking off their careers: Katrina Mautner and Lee Marshall; Marina Mautner and Omar Reyes Lopez; and Allegra Mautner and Alejandro Schuler. Needless to say, we are very proud of all of them.
Since moving to SF we enjoy taking advantage of all that The City offers going to dinner, movies, plays, lectures, and Warrior games (to which we ride our bikes).
In the winter I snowboard and in the summer I ride my bike around the Bay Area. My biggest bike-riding accomplishment was to ride from San Francisco to San Diego in 2021.
I am an avid crossword puzzler. For those who can appreciate this, my New York Times targets are to complete Monday puzzles in under 5 minutes, and Saturdays in under 15.
In 2015 I stepped away from working to rebuild our San Francisco home. We took it down to the studs and created a renewed, open floor plan, Victorian.
We also have an adorable granddaughter who we love to care for.
Stuff I like to work on
Below you’ll find a small sample of the work I do on a regular basis.
If you don’t see what you’re looking for it’s likely that I’ve done it or that I can do it
Every embedded project begins with the hardware. I specialize in bringing up, establishing communications with, and validating new PCB’s.
Need an RTOS or Linux installed on your new system? I have experience with FreeRTOS, Real Time Linux (PREEMPT_RT patch), VxWorks, pSOS, and of course bare metal loops. I am also familiar with GRUB and Buildroot.
Every peripheral needs a device driver. And with today’s SoC’s there are a lot of peripherals. I’ve probably written a device driver for yours.
Above the OS, and the device drivers is where the embedded application lives. I have extensive experience writing user level applications, working closely with UX designers and other creatives
Updating software in the field can be a tricky proposition. What happens if the power goes out while in the middle of flashing. Or the newly flashed software has a fatal flaw. Are you signing your updates? And are you checking the signatures on every boot? I’ve worked on all of these issues
Debug, Problem Solving, Design and Code Review
Ever run into an intermittent problem that takes hours or days to reproduce? Me too! But I’m really good at fixing them, especially in other programmer’s code. Fixing a bug in code review is orders of magnitude less costly than fixing it in production
I hope we can work together and you can add to this
Craig’s hardware and software design skills are top-notch as are his debugging capabilities. Craig is a very productive programmer, generating well-tested, full documented and commented code in an extremely short time. His attention to detail up front has saved much time in the development and debugging process later.
CTO, Wind River Services
Craig had to come up to full speed as a microcode systems programmer virtually instantly in order to make the timely contributions that the project needed. He accomplished this difficult feat and beyond, writing specialized coding tools in addition to fulfilling his programming assignments. During testing, his results were as good as or better than that of other programmers who had considerably more experience with the tools and processor.
Craig ported a third party Bluetooth stack to VxWorks and two microcoding projects for Network Processors. In addition he worked on the creation of a new programming paradigm for Digital Media in an embedded environment. All projects were done quickly and successfully and I was very pleased with the effort Craig put out and the quality of his work.
Service Line Director