I'm a polyglot senior software engineer who enjoys leadership and mentoring. I'm fascinated by leverage and always looking for opportunities to increase team performance by acting as a force multiplier. Having worked in the blockchain industry since 2015, I'm excited by new opportunities for the technology to empower human collaboration and I'm particularly interested in the domain of blockchain governance.
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 am comfortable at all levels of the software development stack.
I have created open source projects, 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 - November 2018)
- Wrote threat model document for this security-sensitive application responsible for tokens with monetary value.
- Made build process deterministic to enable greater security via reproducible builds.
- Introduced contract tests to code and gave presentation to team about test writing best practices.
- Implemented new features using modern web technologies.
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