Michael L. Davis
Palo Alto (SF Bay Area), California or Telecommuting U.S. Citizen
This resume / CV as a two page PDF
Facebook - LinkedIn - GitHub - my Other Hobby
HELPING SOFTWARE HELP PEOPLE
I love creating castles out of thin air with software -
It is my hobby and my profession.
I have a very strong 'Get Things Done' work ethic and have been lucky enough to work for organizations that share the same philosophy. As a software developer, architect or manager, I conscientiously and compassionately help my team build castles. Typically these teams are small and the castles magnificent. I have enjoyed working for startups, large corporations and the U.S. government. Research interests: Machine learning, science / engineering tools, human-computer interaction, innovative user interfaces, software architecture, direct manipulation 2D graphics.
TL;DR I spent the previous ten years founding and building products for startups. These included a mixed-reality social network, a smarter-safer-more social Amazon for the luxury market and other large and small, successful, and unsuccessful, consumer-facing web applications. Several of these took advantage of the latest research in neuroscience and were co-designed with my daughter, a recent Cal Ph.D in psychology whose focus is integrating neuroscience into software product design. Before that I spent 6 years at Sandia National Laboratories, which is responsible for the test and maintenance of our nuclear deterrent. The huge application my wife and I wife built there ran simulations on the world's fastest computer at the time, which they had onsite. I have written games for an off-shore online gambling website, cloud management software for a startup before there was a cloud, several applications for professors who wanted to bring their skillsets to market, and the operations support software for the largest Telco in Europe, used to provision things like telephone numbers for tens of millions of customers. The common thread for all of these applications has been innovative human-computer interfaces that make complex functionality tractable. The son of a Mathematics professor, I started programming computers when I was 14 years old.
Foundry College - San Francisco, California 6/18 - present
Software Farm, Inc. - OpenAIDE, Palo Alto, California 10/17-present
OpenAIDE.org "Open AI Development Environment". CAE for AI. Research and development of application with goal of 10X improvement in accessibility, productivity and the ability of experts to solve hard problems.
Cheers - Palo Alto, California 3/16-6/18
Co-Founder, CTO - Lifenik, Boulder, CO / Berkeley, California 4/13-3/16
Lifenik.com "Super-powered Kids". Several working betas. Google Map overlays to improve cross-cultural connection, empathy. Lumosity-like games to improve happiness, well-being. Gamified social network to improve savoring, gratitude, generosity. Linode, Ubuntu, Ruby on Rails 4.2, Python, Node.js, Nginx, GitHub, Capistrano, Unicorn (previously: AWS, AngularJS, Bootstrap, Passenger).
Ultimist - Boulder, CO 4/11-4/13
Ultimist.com "The safer smarter friendlier luxury marketplace" (high-end audio). Several major pivots based on feedback from domain experts. Quora-like Q&A. Badges. Forums. Classifieds. Analytics and statistics. Personal newsfeeds. Editable product database with searchable sortable semantic properties and tie-in to latest news. Provenance tracker. AWS, Ubuntu, Ruby on Rails 4.2, Python, Node.js, Nginx, Passenger, Resque, GitHub, Capistrano. Ported to Unicorn, Cron and Linode. Live (but mothballed).
Mattters - Boulder, CO 12/09-4/11
Mattters.com "Follow Your Interests" Over 1000 real-time news channels displayed with smart magazine-like layouts. Three major versions (ROR at Joyent. 100% Node.js at AWS. Mixed ROR and Node.js at AWS). AWS (EC2, S3, SQS, CloudFront), Ubuntu, Ruby on Rails, Python, Node.js, Nginx, Passenger, Resque, Memcache, GitHub, Capistrano. (1.5M uniques / month).
Magazines.me - Boulder, CO 2/08-12/09
Sendies - Boulder, CO 12/07-2/08
Sendies.com "Many to one messaging" Crowd-sourced greeting cards. An infinite, zoomable, editable, drag-and-drop canvas. People type messages, drag-and-drop clipart. RoR. Joyent.
Speshy - Boulder, CO 7/07-12/07
Sandia National Laboratories, (remote) Albuquerque, New Mexico 4/01 - 7/07
ChilECAD - a full-featured commercial-quality schematic capture analog ECAD desktop application capable of supporting custom models and simulators (e.g. XYCE) on the fastest computer in the world. Combined with my Mica Graphics Framework, I wrote and maintained nearly 500,000 lines of DRY Java. After project termination rigorous testing found less than a dozen bugs. XML-driven plugin architecture for: SPICE-dialect generation and parsing, conversion of SPICE to/from schematics, persistence, themes, file version management and conversions, and simulator setup and job submission. Uses XML to define OO parts (symbols) library definitions with MVC separation of concerns, inheritance and overloading. Java.
Verge Technologies Group, Boulder, CO 10/00-3/01
Designed and implemented 1) the 2nd and 3rd generations of a code-generation tool and its associated templates to quickly produce EJB applications from XML files or database schemas, 2) a report generation framework for JUnit Test, 3) an automatically generated J2EE database browsing/editing tool, 4) the (JSP/Servlets) GUI for a (small, 12 screen) J2EE network management tool, 5) rewrote much of online billing system, 6) Spearheaded, architected, and prototyped a datacenter (cloud) management service called OpenHost.
- github.com/justacoder Mica 2D graphics framework and UI widget toolkit in Java
- MICA GRAPHICS FRAMEWORK. Mica (successor to my EditorObject), now on GitHub, is a Java OO UI widget toolkit, 2D scene graph library, suite of editor objects and UI and network graph layout managers. It distills ideas from many toolkits and research papers (Mica was pre Java Swing).
- EDITOROBJECT. a bigger better PGL in C++. I was attending a lot of ACM Siggraph, CHI, OOPSLA, Visual Language conferences. OO, UIs, and direct-manipulation were ascendant. I was having to write a new graphics editor it seemed for every new contract. 'new Editor()' creates a full function editor.
- UI FRAMEWORKS. VisualADE, a declarative UI/data-binding builder. Cadabra and Obsidian: Aristotelian category-like declarative DSLs with behavioral and constraint metadata for e.g. auto test, repair, discovery. LUE (Life Universe Everything) used the data-flow paradigm to graphically build live UIs. C++. Java.
- PGL (Portable Graphics Library), in object-oriented 'C', rendered high-performance 2D scene graphs and windows on top of SunView, X-Windows and standard PC-graphics cards. C.
- Unicom. Interactive graphical layout and management for advertising copy and support materials. Java
- Innovative Research. Environment for the Analysis of Parallel and Distributed Systems. I built this on Mica (network graph managers, direct-manipulation graphics editors, tooltips, context-sensitive help, auto backup /recovery, drag-and-drop, right-button menus, and UI generation from metadata). Java 1.0.2.
- SunSoft. Prototyped two applications (Online DiskSuite, HATool). One prototype contained a dynamic flowchart from which windows were launched. The other prototype included a constrained, interactive treemap editor with extensive design rule checking. These made use of my EditorObject. C++.
- Ericsson Raynet. Architected and wrote frontend and application layers of RIDES - a large carrier-grade telecom operations support system (OSS) in C++ with 3 graphics editors using my EditorObject, a multi-layered framework architecture and extensive randomly-generated in-memory test-database.
- Innovative Research. Environment for the Simulation of Distributed Systems. Built graphical capacity planning tool for Operations Research professor for U.S. Army to provision computer networks (e.g. drag-n-drop network creation and workload assignment). Custom MVC (my architecture of choice). C++, MPI
- McDonnell Douglas. Wrote a highly constrained logical placement, route and display tool for telecom outside-plant equipment (mimicking the hand-drawn diagrams they had been using). C++.
- Cadnetix. Technical-lead for the graphics group for 4 years, which was responsible for the UI and 2D graphics for the company's products. My refactoring of the graphics library sped up the rendering and graphics database query language by a factor of 10X to 100X. ECAD. C. 80x86. 68000.
My academic background is Applied Math at the University of Colorado, Boulder, including differential equations, difference equations, pde, vector calculus, linear algebra, EE, physics, and graduate courses in probability, abstract algebra and space flight dynamics, satisfying technical requirement for B.S. but left to soon join the personal computer revolution. Previous member of ACM, IEEE, attended many tech conferences and read literally dozens of trade mags for 20 years.