A high energy, results focused software engineer who is driven by new challenges. Experienced with
the full lifecycle of object oriented design and development in both customer facing and back office
applications. Committed to providing high quality software that supports the needs of your
organization. I'm passionate about open source software because we can acchieve greater things by helping each other. I enjoy learning new languages and technologies as I believe that seeing problems from different perspectives can enlighten us on the best solution.
Professional Experience
At Stanford University Libraries Justin works with a team of developers that develops and maintains a large portfolio of projects. This includes leading development work on the open source projects Samvera (formerly Hydra) and Blacklight. Lately Justin has been working with a team to implement the next iteration of the Stanford Digital Repository system. This effort focuses on replacing a "distributed monolith" with a microservice architecture implemented in Go and deployed using Docker to AWS.
At Data Curation Experts Justin helps academic libraries, archives and museums to preserve, organize and present their digital content. Justin is a leader of the Project Hydra and Blacklight project teams which develop open source repository and search solutions.
Refactr LLC — Senior Software Developer (November 2010 - June 2010)
At refactr Justin worked with other team members to produce projects for clients at the startup stage as well as Fortune 100 businesses.
PedalBrain LLC (August 2010 - November 2010)
PedalBrain LLC is a small startup in Minneapolis dedicated to creating a bicycling computer. At PedalBrain, Justin played key roles developing embeded software, mobile software for Android and iPhone as well as the web application.
GoKart Labs — Consultant (March 2010 - August 2010)
At GoKart Labs Justin worked with a team to crafted a social learning website called Sophia. This website included a multifacet search engine (Solr), video transcoding (zencoder), cloud storage (S3), offline processing (RabbitMQ) and a heavy front end component using JQuery. The team used Ruby on Rails and Test Driven Development to produce a high quality site in a limited time frame.
- Responsible for major software projects vital to the core business of the center.
- Migrated 5 websites from Struts to JRuby on Rails, allowing faster software development while
leveraging existing Java code.
- Instrumental in implementing continuous integration and test coverage monitoring.
- Participated in the creation of a disaster recovery plan for critical software operations at the center.
- Instituted improvements in the build process which eliminated redundant work and simplified
dependency management.
- Updated web interfaces for projects by implementing AJAX techniques and user generated content.
Software developer (January 2002 - June 2008)
- Worked one on one with dozens of clients to develop dynamic web sites for their organizations using
object oriented design and data modeling.
- Developed a custom framework to speed web development and for object relational management
(ORM).
- Performed domain analysis leading to preliminary software designs. Forecasted time and cost estimates.
Ensured that development progressed meeting design milestones while not exceeding the allocated
budget.
- Planned and oversaw the work of several student developers.
Student developer (September 1999 - January 2002)
- Developed websites using Object oriented programming.
- Maintained code on existing projects, diagnosed problems and devised solutions.
- Encouraged the use of software design techniques and tools such as CVS which encourage collaboration
and increase quality.
Education
- B.S. Computer Science, University of Minnesota, 2001
- M.S. Software Engineering, University of Minnesota, 2007
- Regular attendance at software conferences such as Java One, RailsConf, No Fluff Just Stuff,
Codefreeze and MinneBar.
Presentations
Integrating Rails with your Java infrastructure
Ruby users of Minnesota — Feb 23, 2009
A Unified System for Processing Microdata Projects with Disparate Hierarchical Data Models
IASSIST 2008 — Stanford, CA — May 30, 2008
Additional Technical Skills
Programming Languages: Go, Ruby, Elixir, Javascript, Java, Perl, Objective C, ActionScript, C++, C
Java Technologies: Glassfish, Servlets, JSP, Spring, JSF, JDBC, JMS (Active MQ), JUnit, Struts, JRuby, Groovy
Search Engines: Lucene, Solr
Development Tools: Ant, Mercurial, Git, Subversion, CruiseControl, TeamCity, Mingle, IntelliJ IDEA, NetBeans, JIRA
Databases: DynamoDB, Redis, MongoDB, MySQL, Oracle, PostgreSQL, Microsoft SQL Server
User Interface: Vue.JS, Angular 5, JQuery, Java Swing, paper prototyping
Operating Systems: Linux, Solaris, FreeBSD, Windows, Mac OS X