Hi, I'm James. I'm a computer programmer who likes to read and occasionally gets outside.

I spend some of my time working on personal projects, most of which are available on GitHub.

When I'm not coding, I like to mountain bike, play guitar (I'm still learning), and travel. I can also make good pizza.

I'm currently a Software Engineer at HubSpot and a recent graduate of Northeastern University.


Mamoru means "to protect" in Japanese. Use Mamoru to set a timer. If you don't check back in before the time is up, Mamoru lets your contacts know something might be wrong. Mamoru won first place in the Health and Wellness category at Hack Duke 2014! It also took home the Twilio API prize that day.

Primary technologies: node.js, firebase, android sdk, twilio api

Collaborators: Bobo Bose-Kolanu, Zach Fogg, Siddhartha Tondapu


TweetPD is an alert service for local emergencies. It listens in on municipal fire, police, and 911 dispatch Twitter accounts, and can let you know if something's wrong in your area. TweetPD currently supports alerts via SMS and US Mail. That's right! Postal mail. If there's a fire down the street from you, we can immediately dispatch a postard to your residence, and in just a few short business days, you'll know all about the emergency. The future is now! Note: this is in beta - don't rely on it.

Primary technologies: python, flask, bootstrap, twilio api, lob api, twitter api

Collaborators: Alice Young, Arya Boudaie, Luka Milekic

Vulgar Tongue

A Twitter bot that tweets a word of the day from Francis Grose's 1811 Dictionary of the Vulgar Tongue. I found the book on Project Gutenberg, and I just couldn't resist.

Primary technologies: python, sqlite, twitter api

Anagram Analyzer

This is a solution to the classic programming question "Given a set of words, output the number of words in that set that have at least one anagram among the other words in the set." It was written to be stand-alone library that could be run on arbitrary word lists - it is well-documented and unit-tested, and runs on python 3.3 and 2.7. The Ridiculously Huge English Word List is included for testing, along with a few other word lists.

Primary technologies: python


Largely for personal satisfaction, but it's also a showcase of some of my professional and personal work. If you have any feedback, please let me know!

Primary technologies: sass/css, jekyll, html, zurb foundation

This is just a summary. GitHub is the source of truth.


Software Engineer
Jun 2016 - Present

After graduation, I re-joined HubSpot on the COS Platform team, where I work on the technology underpinning the COS.

Primary technologies: Java, SQL, ES6, React


Co-op Software Engineer
Jan - Jul 2014

Here I mostly work on the HubSpot COS, an integrated website, blog, and landing page system.

Primary technologies: Python, Django, Java, MySQL, Coffeescript, CSS


Co-op Software Engineer
Jan - Jul 2013

My role here spanned engineering and customer research. On one team, I worked on a new version of the TurboTax product, implementing new features on the back and front end. On the Healthcare team, I conducted interviews and focus groups to discover customer needs and insights, then rapidly iterated on our prototypes for the next customer sessions.

Primary technologies: Java, Javascript, Maven


Co-op Software Engineer
Jan - Jul 2012

Here I developed a stress-testing and diagnostic framework for the servers we manufactured. It integrated with the bootloader and exercised all components of the system.

Primary technologies: C++, C, Linux

Northeastern University

ResNet System Administrator
Jul 2012 - May 2015

I maintained and developed the severs and other infrastructure at ResNet, a technical support office. I was responsible for firewalls, data backup, DNS, print services, maintaining our Django applications, and more.

Primary technologies: Ubuntu Linux, Django, MySQL, Puppet, Active Directory

This is just the abridged version. Check out the whole thing on LinkedIn.


Subscribe via RSS