Making software is part of who I am, not just what I do—it's in my blood. I get the same kind of thrill from contemplating an elegant design that I've seen others get when tasting a fine wine.
I'm a generalist software engineer with experience as an entrepreneur in Silicon Valley and I'm more than just a coder: my two years of management training and strong communication skills make me excellent at bridging business requirements with modern technology. I've got a degree in Electrical Engineering and Computer Science from U. C. Berkeley and I'm comfortable at all levels of the software development stack.
I am a generalist but lately I've enjoyed developing applications in Node.js using test driven development with Docker containers. You can read my thoughts about the Meteor framework for creating single-page applications.
Open SourceI have created open source projects on GitHub, including:
- ServerDate – synchronize with the server's clock in the browser
Bachelor of Science degree in Electrical Engineering and Computer Science
University of California at Berkeley, 1994
My passion is software but I also studied electrical engineering so I can go all the way down to the metal when necessary.
Self-Directed and Effective on a Team
For three years I coached people one-on-one on how to improve their personal productivity and I practice meditation to keep my mind sharp.
I am also interested in how to deliver results effectively on a team so I spent two years studying the science of managing promises in the Generative Leadership Program of The Institute for Generative Leadership.
I answer questions about software engineering on Stack Overflow where I'm in the top 10% of answerers for questions about Node.js and in the top 14% overall.
I wrote the (now outdated) Disk Encryption HOWTO for The Linux Documentation Project.
I love to travel and have an opinion on everything.
Tendermint, Software Engineer (March, 2018 - present)
Monax, Software Engineer (January, 2015 - May, 2017)
I worked on a team that created open source software to enable a whole new class of distributed applications built on blockchains and smart contracts.
- Responsible for maintaining and supporting the open source client libraries that talk to the company's core offering (Hyperledger Burrow).
- supporting both internal and external customers
- Implemented prototype lab with mock versions of our stack components for testing architectural design hypotheses economically, enabling architectural conversations to be grounded in evidence.
Eris Worker, a distributed computation framework designed to support autonomous operations on blockchains.
- Set up automated continuous delivery system for testing and publishing our software stack.
Toptal, Software Developer Screener (2014)
I worked remotely for Toptal, interviewing 3 software developers per day while travelling in South America.
- Interviewed hundreds of software developers with the goal of accepting only the best (top 3%) to work with Toptal's clients.
- Assessed the applicants' programming skills by giving them live coding exercises as well as 2 week projects.
- Assessed the applicants' communication and collaboration skills.
When I returned to the US I joined Toptal's network as a software engineer and they introduced me to Monax (see above).
The Productivity Game, Cofounder (2010 - 2013)
- Cofounded a personal productivity coaching business.
- Designed personal productivity methodology and coached clients 1-on-1 on how to use the method.
- Created a simple productivity timer for time boxing and to synchronize coordinated action between team members.
- Wrote an open source library (ServerDate) to implement multi-client timer synchronization.
- Implemented a prototype promise management system in Node.js using MongoDB and Express.
Authentic Man Program, Business Consultant (2007 - 2009)
- Assembled a board of advisors to provide guidance to the company's strategic mission.
- Facilitated strategy sessions with business owners to define and clarify the company vision and mission.
- Created and led customer outreach teams to increase sales.
- Managed facilities. Hired and managed an operational assistant and bookkeeper.
- Created customer satisfaction surveys to obtain market feedback on company offerings.
TGND Corporation, Cofounder (2006 - 2007)
- Cofounded a company with a mission to create price-comparison shopping internet sites for niche markets.
- Hired and managed two software engineers to create a prototype using Ruby on Rails.
- Worked with a lawyer, an accountant, and an internal marketing employee on the big picture of the business.
- Created "virtual company" infrastructure allowing the entire company to run on the internet, requiring no office space.
Technologies: Ruby on Rails
Handspring, Software Engineer (2002 - 2003)
- Enabled third parties to create software for our products by maintaining and publishing the Palm OS software development tools.
- Created software tools and wrote documentation to support internal application developers to operate more effectively and efficiently.
- Took initiative to support compatibility with open source software for our products by providing leaders of the community with technical documentation and hardware.
- Initiated a proposal and partnered with a PR executive to design a more ethical customer outreach program to prevent harm to company reputation.
- Wrote a technical report and gave a presentation about the costs and benefits of upgrading the Palm OS development platform to support C++ in addition to C.
Technologies: C, C++, Qt, Palm OS
NetStudio Corporation, Software Engineer (1997 - 1998)
- Co-founded the company with a vision to create a pioneering consumer application for web graphics authoring, emphasizing ease of use.
- Brought the product to market successfully and was awarded "Best of Show" at the Internet World conference.
- Led and defined the software development process, including feature specification and coding standards.
- Architected the product engine in C++. Defined the major subsystems and their interactions.
- Created runtime class inheritance system in C++ to implement user-modifiable effects.
- Created a smart-pointer API to support transaction-based infinite undo and redo.
- Created a runtime diagnostic tool that generated a view of a high-level internal program state in HTML.
Technologies: C++, Microsoft Windows
Brøderbund Software, Software Engineer (1995 - 1997)
- Designed and implemented the artificial intelligence component of a real-time strategy game in C++.
- Brought to market French and German versions of a desktop application (Carmen Sandiego Junior Detective Edition) by providing translation support engineering.
- Recognized and rewarded with the Intellectual Capital Award for innovation and realization of ideas contributing to the company's success.
- Gave a technical talk on how to author web pages using the new HTML standard.
- Wrote a proposal to implement the company wide continuous integration system.
Technologies: C++, Microsoft Windows, HTML
Center for Advanced Medical Informatics at Stanford University, Software Developer (1989 - 1995)
- Developed a pen-based user interface for Ivory, a patient data entry program, in PenPoint, a pen-based operating system.
- Wrote PostScript-generating code in Common Lisp for reports created by Oncocin, a cancer patient treatment expert system.
- Researched different aspects of a pen-based computing user interface as part of an overall effort to make computers more accessible to doctors.
- Set up an experimental wireless network to be used for mobile computing in a hospital.
- Wrote a GIF codec in Common Lisp.
Technologies: Common Lisp, PenPoint OS, PostScript