· Platforms: UNIX/Linux, Android.
· Web: Ruby on Rails, REST, HTTP, React.js, Ajax, Spring, JEE (JSP, JDBC).
· Databases: MySQL, SQLAlchemy, Hibernate.
Goals · Work-life balance (no on-call), good social impact, math/algorithm problem-solving.
Experience in Software Senior Software Engineer|
· Designed and implemented back end for inventory audits.
· Added features to wholesale order flow.
· Started engineering practices document.
|Flow Kana (Event Horizon Technologies) (August 2018 - November 2019)||Oakland, CA|
· Extended Java framework for creating APIs in Google Guice, adding OAuth authentication and JSON serialization.
· Designed new REST API feature touching several other teams, resolving conflicts.
· Served in on-call rotation covering several production services.
|Square (October 2017 - April 2018)||San Francisco, CA|
· Added features to Rails back-end API.
· Updated index in AWS CloudSearch.
|Medidata Solutions (contracting via Motion Recruitment) (May 2017 - October 2017)||San Francisco, CA|
· Added features to Spring/React web app serving millions of pages per day.
· Created index for querying large distributed database to measure user behavior.
· Made web app for testing several data-science models.
· Cowrote algorithm in MongoDB for tracking user activity.
· Documented internal tools.
Senior Software Engineer
|Indeed (July 2015 - December 2016)||San Francisco, CA|
· Added features to Ruby on Rails web app serving 500K pages/day.
· Rewrote credit-card user interface.
· Added email deliverability checking.
· Improved payment processing job flow.
Senior Software Engineer
|Platphorm (May 2013 - March 2015)||San Francisco, CA|
· Led 30 projects with teams of 1-4 developers, managing technical issues and client relations.
· Designed and built a web interface for Motorola's wireless cable modems, extending the web server code with a parameter-management table, run-time display flexibility, run-time localization, an XML protocol for communicating with the device back end, and device simulation. Added scripts for validation (Python for testing hyperlink navigation, Java for UTF-8 encoding and unit testing, XSLT for schema), preparing localized code, and preparing releases.
· Added SOAP service to high-performance PHP application for processing photographic images.
· Maintained HTML 5 Canvas design application.
· Designed, built, and maintained the company's timesheet tracking system from 2000 to 2008, adding a web interface to the legacy FileMaker Pro database using Lasso middleware, and a Java client utility.
· Designed Flash application for creating modular furniture layouts, with flexible administrative interface, using PHP/MySQL for back end.
· Contributed to open-source GoAhead/AppWeb embedded web server, and ported to a new RTOS.
· Managed and contributed to J2EE web application for uploading and reporting on sales data for a large beverage company.
· Implemented web interface to an MPEG multiplexer, including a complex Java applet and an XML protocol for displaying hierarchical stream data in real time.
· Added Ruby navigation tests to major sports gear e-commerce site.
· Built and maintained web application to automate loans for mortgage brokers.
· Built Ajax prototype for smart thermostat interface, and supervised port to Google Web Toolkit.
· Designed and implemented REST API for a large evolving data model, using JEE (Tomcat, Hibernate, and Oracle), for iPad sales support app.
· Built REST API for music-playlist management using Python and TurboGears.
· Managed design and development of cross-platform JRuby tool for processing aerial photos.
· Maintained legacy ASP.NET application, and added Excel/VBA reporting tool for aggregating sales data, with custom configuration language.
· Implemented Windows user interfaces in Visual C++ for multimedia authoring tool, medical training package, and digital audio recorder.
· Wrote a utility to convert sound files to proprietary format, researching and implementing sample rate conversion algorithm.
· Conceived and designed C++ classes for real-time sample analysis module used by ultrasonic testing apparatus.
· Implemented proof-of-concept 3-D molecular simulation in Java and Python (using OpenGL), and Flash.
· Researched recommender system algorithms for news story propagation.
· Took over a troubled web-device-management project and brought it back on track, clarifying goals and delivering on them.
· Developed and closed new sales lead.
· Prepared estimates and technology recommendations for project proposals.
· Interviewed and evaluated engineer candidates.
· Wrote technical articles for the company web site.
Education Ph.D. in Mathematics
|Art & Logic (July 1996 - April 2013)||Pasadena, CA (full-time telecommuting)|
· Thesis: “Fundamental groups of immersed spheres”.
· Conceived and developed 4,000-line computer program for dissertation research, to generate and study examples of a topological construction.
A.B. in Mathematics with Honors
|University of California, Berkeley (1991-1996)||Berkeley, CA|
· Wrote prize-winning undergraduate thesis, including computer program to solve a difficult 3-dimensional tiling problem by exhaustive search.
Published Work Articles · “Reddish-Greenish-Refactor”, O'Reilly Programming blog, July 2014.
· “Confessions of a Git Skeptic”, Art & Logic blog (Hacker News front page), February 2013.
· “Good Code Tells the Truth”, PragPub magazine, October 2010.
· “XSLT As Pretty Printer”, xml.com, November 29, 2006.
· “Automating Localization”, Dr. Dobb's Journal, February 2005.
· “Space tilings and local isomorphism” (with Charles Radin), Geometriae Dedicata 42 (1992) n.3.
|Harvard University (1986-1991)||Cambridge, MA|