I've been coding professionally for roughly 9 years, and in that time I've been able to work on many different things in many different roles, including chief technical guy, mentor, programmer and stopgap DBA. I am not currently interested in any job opportunities unless they're open to remote work (within the U.S.).
Regarding tech stacks, I'm most interested in working with dynamic languages and platforms (Ruby/Rails, Javascript/Node.js), but I care a lot more about doing work where I can see a clear connection to the bottom line than about any particular tech stack.
Things I'm currently working on:
* WholeLatteLove - a complete overhaul of a multi-tenant app to single-tenant deployment onto AWS. This involved relatively complex data migrations, setting up AMI and EC2-based autoscaling deployment and scripting with Ansible.
Things I've recently worked on:
* SplickIt - a system that communicates with white labeled mobile apps, restaurant locations and payment providers to help you beat the line by ordering and paying for food directly from your phone. I wrote several key features for the API in PHP, and wrote large parts of the front-end Javascript for a new Rails-based web interface.
* MapQuest Local - a Scala app using Play and Akka that provides content-rich pages for restaurants, hotels, airports, stadiums and other points of interest.
* A centralized accounts platform used across all MapQuest products. We migrated ~750M users from a home-grown MongoDB cluster to a centralized PostgreSQL/Rails system.
Things I used to work on:
* MapQuest Discover - a Rails app that's best described as "Pinterest for travel". It uses redis and Backbone.js, among other things.
* MapQuest Vibe - a Java-based app that allowed users to vote and comment on restaurants, movie theatres, barber shops and pretty much everything else in their neighborhood. This was highly data-intensive and relied heavily on PostgreSQL.
Lead Engineer @ I joined WholeLatteLove to build an in-house team of developers and take over development from a stream of contractors and consultants. To that end, I sourced, screened and hired two engineers to build an in-house engineering team. In the end, I led a team of 5 (4 developers, 1 QA) and implemented practices like code reviews, release windows and issue tracking.
Together, we finished a major application upgrade from Spree 2.2 to 2.3. This entailed a Rails upgrade to version 4 as well as significant changes to our architecture, as the Spree upgrade added several new data validations which were not in place before and were incompatible with a previous multi-tenant deployment. As part of this, we implemented page-level caching which improved page load performance by a factor of about 5 (average page load went from about 3 seconds to 0.6 seconds).
I architected and helped implement a large single-tenant deployment off of colocated hardware onto AWS systems, using Ansible for orchestration. This cut our hosting costs by about 50%, even before taking advantage of the scalability and flexibility AWS offered that our previous solution did not.
I wrote an integration test suite using Capybara and other tools to document behavior of a poorly documented legacy application. From June 2015 to Present (7 months) Rochester, New York AreaSenior Software Engineer @ I've been doing a variety of things to help customers jump the line by ordering food from their phones ahead of time. I've been modernizing a PHP-based API by replacing homegrown infrastructure code with modern, open-source tools such as Composer, Guzzle and Phinx, and organizing things with a RESTful architecture for public consumption. I'm writing integration code to send orders directly to a variety of POS systems including Micros and Aloha. I've also been dogfooding this work with a Rails front-end to enable ordering from your browser for those times when you can't get to your phone but need to order a burrito right now. From April 2014 to May 2015 (1 year 2 months) Senior Software Engineer @ I've worked on a variety of things in my tenure at MapQuest, using tech stacks including Java, Rails and Scala (using the Play! framework). I tend to be the "data guy" on teams I work on, but I've touched virtually every part of apps I've worked on and prefer full-stack development to being typecast in a specific role. From February 2012 to April 2014 (2 years 3 months) Software Engineer @ I worked for the L245 program on a Swing-based application which accepts live data from multiple other applications and displays it to the user either in a 2D map or projected onto GoogleEarth through exported KML files.
I was part of a three person performance improvement team which improved performance of our application by 10x by implementing batch processing algorithms for our data ingestion and processing components.
I served as mentor to our summer intern and assisted him with HR and technical questions as needed. From August 2010 to September 2011 (1 year 2 months) Programmer @ I worked for AIG United Guaranty, a provider of private mortgage insurance based in Greensboro, NC. While there, I consistently received top ranking in employee reviews for my ability to solve difficult technical problems and to work without supervision while meeting my estimates for project work.
I served as technical lead on two projects, both of which were delivered on time and under budget. The first project had a staff of five employees and involved routing all access to delinquency information through a web service instead of using an inconsistent amalgam of database lookups, calculations and method calls. The second was to rewrite an Access application which enabled our accounts receivable department to accept payment from customers electronically instead of over the phone or mail. I interfaced regularly with the business users to perform ongoing requirements analysis and acceptance tests.
I was regularly asked to prototype applications using new technologies, including Ext-JS (an AJAX library for our UI) and DWR. My work with Ext-JS was instrumental in securing a $1M budget to help modernize our application interfaces as part of an ease-of-use initiative.
I solved two performance problems within our applications caused by our use of Hibernate in our persistence tier, and investigated alternate technologies such as Ibatis and Spring-JDBC to avoid such problems in the future. From December 2007 to August 2010 (2 years 9 months) Java Developer @ I worked at RemitData, a small startup that sold software to hospitals and other health care providers to process claim denial information from medical insurers.
The program I worked on retrieved denial responses from health insurance payers and compiled a report to show why insurance claims were being denied and to recommend ways that health care providers could adjust their internal processes to recapture that lost revenue. I wrote an automated component which retrieved and parsed denial responses for our customers exposed via Telnet. From March 2007 to December 2007 (10 months) Software Engineering Intern @ I supported a team of software engineers working on the GCCS-J program, both by developing software as well as by configuring and maintaining servers for use by the engineers.
I managed installation and configuration of software on a series of disk images that the engineers could use to quickly bootstrap a server to the product baseline and version they needed to work against.
I improved the Graham Scanning algorithm for finding a convex hull to aid performance of a ballistic missile tracking system (TBM-J). These improvements allowed for quick recalculation of the hull in the face of changing data points as well as the calculation of a hull over a spherical surface and not a plane.
I developed a distributed build system to reduce network usage by maintaining a CVS repository at three development sites and performing a nightly merge of the three repositories. This system also used CruiseControl for continuous integration and Maven to manage versions of libraries and other software components. From February 2006 to December 2006 (11 months)
M.S., Computer Science @ University of North Carolina at Greensboro From 2007 to 2009 B.A., Classics @ Wake Forest University From 2001 to 2005 Diploma, High School @ Hampton Roads Academy From 1995 to 2001 Justin Beal is skilled in: Java, AJAX, Ruby on Rails, JavaScript, jQuery, Databases, Git, Ruby, Software Engineering, PostgreSQL, Eclipse, Backbone.js, REST, Subversion, RSpec