Objective
To live a long, happy and fulfilling life with those that I love, doing what I love.
Employment History
Senior Haskell Developer
Ontellus (Houston, Texas)
December 2019-Present
Ontellus is a records retrieval and processing company that handles document processing for the insurance and legal industries.
Duties:
- Maintain and develop approximately 20 separate applications and libraries that implement the document processing pipeline. These applications are written in the Haskell, Clojure and Purescript programming languages.
- Deploy applications to staging and production servers using Docker.
- Created an X-ray film viewer application in Javascript.
Contract/Freelance Software Engineer
(South Portland, Maine)
February 2018-November 2019
Currently working as a freelance/contract software engineer helping clients to grow their small businesses.
Duties:
- Contracted with a local financial services company to maintain a Python web application based on the Django framework.
- Helping a local client to optimize his flower-selling businesses (48longstems.com, recitalflowers.org, flowersforfundraising.com) by upgrading an order service application. (PHP, Codeignitor)
- Fixed several bugs in an application that scrapes a website for arrest records. Added a simple web application front-end to it. (Python, Django, AWS)
- Helped a client to filter elements from large XML files. (Python, Big Data)
- Documenting an existing web API using the OpenAPI standard (Swagger).
Senior Software Engineer
Maxwell Health (Boston, Massachusetts)
February 2017-December 2017
Maxwell Health provides small to mid-size companies with an HR and benefits solution through its suite of web applications. There are solutions for insurance brokers, employers and employees alike.
Duties:
- I helped Maxwell Health bring a new "Open Enrollment" service to market using the Scala programming language to create a microservice together with a front-end written in ReactJS. I utilized my expertise in functional programming techniques and leveraged the Cats Scala library to write very robust code.
- I worked in a group that was creating a set of microservices to implement an insurance product library. Projects were mostly written in Typescript.
- I've given several presentations to engineering at Maxwell Health on such topics as "Domain-Driven Design", "Abstract Data Types" and "Pattern Matching in OOP".
Senior Software Engineer
McGraw-Hill Education (Boston, Massachusetts)
November 2014-February 2017
Duties:
- Worked to migrate a large legacy code base, written in a proprietary functional programming language, to a microservices architecture by building new services and incrementally hooking them in to the legacy system. New microservices being written in PHP, Scala and Haskell.
- Built an LTI service to support various integration efforts for both internal and external clients.
- Created a functional programming library in PHP that is used in production environments to support integration efforts.
- Helped maintain and enhance a Haskell codebase used to parse a proprietary binary file format.
Software Engineer
Lambda Prime (Boston, Massachusetts)
May 2014-November 2014
Lambda Prime is a privately held technology development fund with offices and research lab facilities in New York, Boston, and Pittsfield (MA).
Duties:
- Create and maintain web crawlers in Clojure using clj-http (http client), enlive (templating library) among other libraries. Each crawler is gen-classed and packaged as an OSGi bundle to be consumed by a UI.
- Create a Leiningen plugin to facilitate the creation of OSGi bundle from an uberjar.
Software Engineer
Corista, LLC (Concord, Massachusetts)
June 2013-March 2014
Corista is a software company whose flagship product is a digital pathology web application platform that assists pathologists in remote diagnoses.
Duties:
- Created a Java library to parse pathology image data from large TIFF files.
- Maintain and update a C# codebase used to generate an image pyramid from pathology slide images.
- Parallelized pyramid generating code to take advantage of multicore processing.
- Maintenance on a Java Servlets codebase.
- Maintenance on a Ruby on Rails codebase.
Computer Skills
Languages: Haskell, Purescript, Clojure, Scala, PHP, Java, C#, Python, C/C++.
IDEs: Emacs, IntelliJ, Eclipse, Netbeans, Visual Studio.
Version Control: Git, Subversion.
Build Systems: SBT, Cabal, Stack, Maven, Ant, Make, Leiningen.
Testing: ScalaTest, QuickCheck, HUnit, JUnit, CPPUnit, NUnit, PHPUnit.
Operating Systems: Linux, Mac OSX, Windows.
Web Programming: REST, Hypermedia APIs, X?HTML, Typescript, Javascript.
Infrastructure: Docker, Amazon Web Services (AWS), Azure Devops.
Education
-
BS in Physics, 1998-2002
University of Massachusetts (Lowell, MA)
Overall GPA: 3.67
-
Online Courses
Subjects
Intro to SWI-Prolog (edu.swi-prolog.org, 2019) | |
Docker Mastery (udemy.com, 2018) | |
Paradigms of Computer Programing (edx.org, spring 2014) | |
Programming Languages (coursera.org, fall 2014) | |
Compilers (coursera.org, spring 2013) | |
Circuits and Electronic, 6.002x (edx.org, fall 2012) | |
Machine Learning (coursera.org, fall 2012) | |
Automata (coursera.org, fall 2012) | |
Functional Programing Principles in Scala (coursera.org, spring 2014) | |
Interests
-
Programming
Much of my spare time is dedicated to learning new things in the field of software engineering. I'm almost always coding some pet project, taking an online course or reading a book on software. I'm particularly interested in functional programming.
-
Music
I started playing the drums when I was a teenager and played in bands with friends occasionally for years. I also learned to play the guitar in those days and a bit of piano. I don't play the drums anymore but I still enjoy playing my guitar and piano.
Miscellany
I have contributed to many open source software projects over the course of my career.
I am the founder of the Portland Functional Programming Meetup, based in Portland, Maine.