Damien Sullivan -- Software Developer
SUMMARY: Generalist software engineer with six years full time
experience. Strongest in Python and C++ on Linux. Careful, curious, a
quick-learner, test driven. Caltech graduate. Measurably cautious in my
- REST microservices
- Test-driven development (TDD)
- Senior Software Engineer | Yepchat | Sep 2020 - Feb 2022
- Business: providing automated phone menus for restaurants.
- Second engineer hired, in a back-end role. AWS Lambda serverless environment.
- Techs: Python, MySQL, Twilio.
- Various cost-saving projects, improving automation and integration of
company processes, e.g. Google TTS, email processing, client scheduling, phone number search.
- Reason for leaving: mass layoff due to financial constraints.
- Software Engineer | Kinnami Software Corporation | March 2017 - February 2020
- Business: providing trusted timestamping at a large scale.
- Roles included Dev, QA, Sysadmin, and Ops, in a 3-person startup.
- Back-end Python development, on Linux; MySQL; wsgi REST microservices and
standalone programs; Amazon EC2 and S3.
- Had main responsibility for 20-30K lines of Python code.
- Introduced pervasive logging.
- Developed new REST services and APIs as needed.
- Researched and implemented publication via Solidity contract to the Ethereum blockchain.
- Testing and QA of all code; volunteer proofreading of website text.
- Deployment and monitoring on AWS. System administration of development and
production Linux machines.
- Wrote automation shell scripts for cluster tasks: machine maintenance,
code deployment, code monitoring.
- Assisted other developers with dev tools such as Linux, vim, shell, and
git, including mentoring an intern.
- Some exploration of marketing via Google Adwords.
- Reason for leaving: total layoff due to financial constraints.
- N/A | Tutor | February 2011 - March 2017
- Part-time tutoring in math and programming.
- C consulting for an early startup, reviewing robotics code for quality.
- Indiana University Bloomington | Teaching Assistant | August 2002 - June 2010
- TAed classes in assembly language and computer architecture, where the
students programmed turtle robots.
- Private math tutoring.
- Mindstalk Consulting | Software Engineer | September 2001 - August 2002
- Self-employed software contracting, Java and C++.
- Cogit Corporation | Software Engineer | July 1998 - September 2001
- Reverse engineered an undocumented suite of Perl/CGI scripts acting as an
- Debugged and enhanced components of the company C++ machine learning programs.
- Acted as a 'fireman' solving other people's urgent problems.
- Wrote a networked service dispatcher in C++ with dynamically loaded plug-in modules, which was the middle tier of the company's three-tiered web services product, and designed the interfaces and configuration for the dispatcher and modules.
- Participated in intermittent pair programming and peer review, trained junior developers, helped supervise the automated build and test system, and helped guide the company Unix sysadmin.
- Advocated for peer review and open source tools.
- Caltech Seismo Lab | Software Engineer | June 1993 - June 1998
- Various summer and part-time jobs, condensed:
- Data wrangling and processing
- AVS animation of the Northridge Earthquake, used for public information.
- Created oraphics for the "Earthquakes in Southern Calfornia" page
- Webmastering, and running early forum software
- (separate job) Using Visual C++ to capture and display movement data from a body suit.
- Corboy and Demetrio | Database Manager | June 1992 - September 1992
Learned and wrote queries for a law firm's database.
- Loyola University of Chicago| Teaching Assistant| June 1991 - August 1991
- Advanced Placement Computer Science (in Pascal) Teaching Assistant.
In calibrated probability assessments I am in the underconfident minority:
I'm more accurate and knowledgeable than I think I am, or probably sound.
My intellectual interests and reading are very diverse: e.g. urban planning,
immunology, history, evolutionary biology, anthropology, decision and measurement
theory, Spanish, Japanese, etc.
- Master of Science in Computer Science | Indiana University Bloomington | 2010
- Part of a comp sci/cognitive science PhD program from 2002 to 2010, studying
models of analogy making under Douglas Hofstadter.
- Some of my graduate school courses: computer theory (automata, computability,
complexity); analysis of algorithms; computer graphics; operating systems;
scientific computing; Bayesian analysis; group theory visualization; quantum
computing; mind and evolution; fundamentals of computer languages; agent-based
simulation; concepts and categories.
- Bachelor of Science in Planetary Science | California Institute of
Technology | 1997
References from Cogit, Kinnami, and Yepchat available on request.