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 After spending many years building computer-aided engineering (CAE) applications for Industry, Academia and the Government - moving from algorithms to frameworks to applications to application suites - it became apparent that many users preferred webapps over desktop applications. I was fortunate enough to be able to spend ten years founding start-ups that explored some innovative ideas and built several large, modern, 'user friendly' web applications, eventually incorporating the latest neuroscience research and nascent AI into a next-gen mixed-reality social network.
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.
Software Farm, Inc. - Cheers, Palo Alto, California 3/16-present
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).
Software Farm, Inc. - 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).
Software Farm, Inc. - 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).
Software Farm, Inc. - Magazines.me, Boulder, CO 2/08-12/09
Software Farm, Inc. - 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.
Software Farm, Inc. - 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) implemented an automatically generated J2EE database browsing/editing tool, 4) the graphics, workflow, and architecture of the (JSP/Servlets) GUI for a (small, 12 screen) J2EE network management tool. Refactored and rewrote much of on-line billing system. Spearheaded conceptual phase, produced and gathered requirements, architected, designed, documented, prototyped, and produced various schedules for the implementation phase for the productization of core datacenter management service of company to be 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++.
- 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.