« Proposal: An online skeptical toolbox | Main | Smith College Guest Lecture, "How to build a simple production web site in Python" »
Tuesday
Aug112015

Available! Versatile Software Engineer, 20+ Years Experience, Object-Oriented & Extreme Programming

After taking a break from computing in 2009 and creating a new kind of social platform - one based on treating life as an experiment - I happily returned to CS research in 2011. I was asked to re-join the AI group at UMass where I previously helped build Proximity, a platform for machine learning research. However, that position's funding has ended (as is the way of research's ebb and flow) and I'm excited to move on to the next adventure.

In those four years I got a lot done, including exploring ways to scale up the Ph.D. students' algorithms [1], coaching students in the Extreme Programming agile software development methodology that I love so much, implementing lab infrastructure improvements (I consolidated multiple aging servers into a single modern cluster, and got the lab using the commercial wiki, Confluence), and of course collaboratively designing and coding the lab's new causal learning in Python (a language I love, BTW, though I still enjoy Java).

As a pleasant surprise, before the funding ended in May, at the last minute another CS professor asked me to help his lab get some urgent work done during the summer, which I was happy to do. While there I benchmarked and started an optimization effort for their new information extraction pipeline, led the team in meeting a crucial grant deadline, and prototyped a web-based PDF annotation tool [2] for creating a gold standard to evaluate their algorithms' performance against. I was introduced to Node.js, continued learning Scala (I wrote some for my GraphX work), and JavaScript for the web app.

Looking forward, I've started my job search for my next project, with the goal of finding work that's challenging, engaging, and meaningful. I've not had to do one in a while, so the process itself is a kind of experiment. What approaches will work? What is out there? Who is doing cool work? Exciting, and a little scary.

So: if you know someone looking for a versatile software engineer with lots of experience who writes excellent code, then please - drop me a line. My LinkedIn profile is linkedin.com/in/matthewcornell.

  • [1] I explored multiple MPP approaches including single-node SQL using PostgreSQL, distributed SQL using Impala on the Hadoop ecosystem and Vertica, and graph databases such as GraphX, Neo4J, and Giraph.
  • [2] The prototype allows users to load a PDF file as a browser-renderable SVG, draw and edit rectangular regions overlaid on the text, and save and load them from a server. I used the standard web technologies of JavaScript and JSON, all running on Play Framework and its Java API. I used Fabric.js for the direct manipulation UI, which I really enjoyed working with (check out the awesome demos).

(Image from Fountain on Boston Common.)

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
All HTML will be escaped. Hyperlinks will be created for URLs automatically.