Damien Sullivan -- Software Developer
Objective: Contract or FTE back-end software engineering roles on Unix; I'm
strongest in C++ and Python, with some Perl, but can learn other languages and
tools quickly on the job. Strengths in server-side, systems, and algorithms.
- Work languages: Python, C, C++ (C++17) and STL, SQL, Unix shell, Perl
- Other languages studied: Java, Rust, Ocaml, Haskell, Scheme
- Test-driven development
- Object-oriented and functional programming
- Network and multi-threaded programming
- Environment and tools: Unix/Linux, make, GIT
- Comfortable with calculus, linear algebra, differential equations, and algorithmic analysis
- Excellent writing skills
- Software Engineer at Kinnami Software Corporation, March 2017-present.
Responsibilities cover Dev, QA, and Ops.
- Back-end Python development, on Linux; wsgi REST services and
standalone programs; Amazon EC2 and S3.
- Main responsibility for 20-30K lines of Python code.
- Introduced pervasive logging.
- Developed new REST services and APIs as needed.
- Researched and implemented publication to the Ethereum blockchain.
- Testing and QA of all code; 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.
- N/A; 2011-2017.
- Part-time tutoring in math and programming.
- Teaching assistant at Indiana University Bloomington, as part of a
computer and cognitive science PhD program; August 2002-May 2010.
- TAed classes in assembly language and computer architecture, where the
students programmed turtle robots.
- Mindstalk Consulting; 2001-2002.
- Self-employed software contracting, Java and C++.
- Software Engineer at Cogit Corporation; July 1998--September 2001.
- Managed a suite of Perl/CGI scripts acting as a GUI for the core machine
- Debugged and enhanced components of the core code and algorithms (C++).
- 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.
- Caltech; webmaster; February 1997--June 1998:
- Webmastering and design in the Planetary Science department at Caltech.
- Helped run my advisor's experimental HyperForum site.
- Integraft; Contractor; June 1996-August 1996:
- My employers had a body suit to capture and display movement; I used Visual C++ to analyze and visualize the data.
- Caltech; webmaster; September 1995-December 1995:
- Worked on a Web site for a geology/environment class at Caltech.
- Caltech; web designer; June 1995-September 1995:
- Designed and provided
graphics for the "Earthquakes in Southern Calfornia" page of Caltech's
- Caltech; data visualization; June 1994-September 1994:
- Learned AVS and
used it to create an animation of the Northridge Earthquake, which was used in
a public information kiosk in the lobby of the Seismo Lab and on a SCEC Web
- Caltech; no job title; June 1993-September 1993:
- Miscellaneous data wrangling and processing in Caltech's Seismo Lab.
- 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.
- 2015-current: independent study of algorithms, design patterns,
networking, and new or updated languages.
- M.S., Computer Science, Indiana University Bloomington, August 2002-June
2005. (Part of a comp sci/cognitive science PhD program through 2010, studying
models of analogy making under Douglas Hofstadter.)
- B.S., Planetary Science, California Institute of Technology, September
- 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.
References from Cogit and Kinnami available on request.