Chris Martin

Programming

Scala

I began using Scala in 2012 for a 3D animation project, and it quickly became my favorite and most productive language. Having a lot of fun with Project Euler. Current projects: an Akka-based service to manage OCR processes, an open database of Georgia salary data using the Play framework.

Java

I started with Java in 2005 and since have worked extensively with Servlet-based web applications. Since adopting Scala, I have lost patience with Java's inadequacies. Graphics: 3D sculpting, circle-packing, spring physics simulation. An Eclipse plugin.

JavaScript

My JavaScript knowledge comes from working with rich webapps at GTRI since 2007 and various hobby web projects. Some silly experiments with canvas and SVG animation.

Python

I've dabbled with Python in small projects: an audio synthesizer, a presence notification system using an IR temperature sensor, web scraping tools for Georgia Tech services Oscar and T-Square.

C/C++

I am mildly capable with C/C++, mostly from school work: LLVM extensions, a Linux kernel module,

PHP

I used PHP for my first web application in 2003 and have revisited it for small projects since then. I have no fondness for it. Web service for scraped T-Square data, trivial intro databases class project.

Work

  • Georgia Tech Research Institute - Cyber Tech and Info Security Lab
    • Research scientist 2010—present
    • Software co-op 2007—2010
  • Some small open source projects that have spun off from my work at GTRI are listed at codeswarm.org.

School

  • Computer Science MS, Georgia Tech 2010—December 2013
    • Specialization in information security.
  • Computer Science BS, Georgia Tech 2005—2010
    • Specialization in theory and computing platforms. GPA: 3.78

List of courses

Tools

Some of the tools and software I most adore:

Various other things I've worked with significantly:

Philosophy

  • Compose. Avoid class extension. Be wary of frameworks that limit composition.
  • Test when testing helps. Test to shorten the feedback loop and to relieve anxiety.
  • Favor immutable types and pure functions. Mix functional and imperative styles.
  • Simplicity in everything awaits discovery. Time producing less code is well spent.
  • Commit quality is as important as code quality. Write short diffs and long messages.
  • Never wear shoes without a compelling reason.