Jonathan Calvert, Developer in Nashville, TN, United States
Jonathan is available for hire
Hire Jonathan

Jonathan Calvert

Verified Expert  in Engineering

Geospatial Data Developer

Location
Nashville, TN, United States
Toptal Member Since
November 15, 2018

Jonathan has over 14 years of professional experience developing software in a variety of languages. He's particularly good with Java and Ruby with a strong focus on APIs and back-end technologies such as queuing systems. He has worked as a tech lead and as a senior engineer with teams from bootstrapped startups and large public companies and in domains such as healthcare, finance, transportation, among others.

Portfolio

Braintree
Go, Amazon Simple Queue Service (SQS), Apache Kafka, Ruby on Rails (RoR)
Kit Check
Tableau, AngularJS, Resque, Celluloid, MySQL, Ruby on Rails (RoR)
Curb
Resque, PostgreSQL, MySQL, Ruby on Rails (RoR)

Experience

Availability

Part-time

Preferred Environment

Git, Eclipse, Sublime Text, Vim Text Editor, MacOS, Linux

The most amazing...

...algorithm I've worked on was implementing the Frechet distance to match GPS route data.

Work Experience

Senior Engineer

2016 - PRESENT
Braintree
  • Worked in a scaling and performance team to meet a growing customer demand on the core credit card processing API through code tuning.
  • Developed the infrastructure for offloading persistence through time-critical code paths.
  • Planned and executed zero downtime data store migrations.
  • Mentored junior engineers.
  • Developed a distributed locking store using Etcd.
Technologies: Go, Amazon Simple Queue Service (SQS), Apache Kafka, Ruby on Rails (RoR)

Senior Engineer

2015 - 2016
Kit Check
  • Developed robust Rails APIs for AngularJS UI front-end apps, delivering controlled medication tracking software deployed to hundreds of hospitals.
  • Implemented a queuing infrastructure for a two-way integration with onsite hospital HL7 electronic medical record systems.
  • Developed data warehousing and client reporting features to deliver BI value around medication usage.
  • Performance tuned and eliminated defects through the use of debuggers and profilers.
  • Mentored junior engineers.
Technologies: Tableau, AngularJS, Resque, Celluloid, MySQL, Ruby on Rails (RoR)

Senior Engineer | Back-end Architect

2012 - 2014
Curb
  • Developed new, highly tested RESTful APIs in Rails for the flagship mobile booking application.
  • Led the development of internal services using geospatial data for real-time client/provider taxi matching.
  • Introduced the culture of unit testing and code reviews.
  • Bootstrapped the continuous integration for all major applications along with automatic code quality checks.
  • Headed the development of an in-house payment system for mobile applications and in-vehicle credit swipe devices.
  • Introduced the initiatives to decompose monolithic applications into microservices.
Technologies: Resque, PostgreSQL, MySQL, Ruby on Rails (RoR)

Senior Engineer | Team Lead

2010 - 2012
Vetstreet
  • Led an effort to refactor an undocumented PHP portal system with Ruby on Rails in order to integrate with a custom CMS.
  • Evangelized development practices such as service-oriented architecture and unit testing as well as good source control practices.
  • Implemented event-driven, queue-based services for sending millions of emails with complex targeted marketing rules.
  • Standardized a number of Java libraries used for pulling data from remote veterinarian management systems, moving them into a centralized database, and providing standardized object-relational mapping objects around them to improve development time.
  • Mentored junior developers to grow their capabilities and independence.
Technologies: Akka, OSGi, Apache Camel, SOAP, JRuby, Ruby on Rails (RoR), Hibernate, Java

Software Engineer (Junior to Senior)

2005 - 2010
Congressional Quarterly
  • Designed and developed advanced legislative search functions to provide a unified interface to over 40 disparate data source products.
  • Refactored and maintained internal fulfillment application which integrated billing functions and customer service notes and provided user access to subscription content.
  • Collaborated closely with editorial team for a complete CQ website redesign and served on the UX steering committee while advocating for emerging UI technologies.
  • Developed the CQ.com BlackBerry app to streamline mobile access to materials.
  • Migrated an acquired Visual Basic/Access product to a Java Wicket application backed by Oracle to provide analytics into over 50 years of FEC filing data.
Technologies: jQuery, Oracle, SOAP, JRuby, Ruby on Rails (RoR), Hibernate, Java

QA Engineer

2004 - 2004
IBM
  • Developed the automated testing for web-based interfaces for IBM service processors for server administration.
Technologies: WebSphere, Perl

Rider Matching

At Taxi Magic a core product was our mobile app that would allow a user to request and pay for a taxi, similar to other ride apps like Uber or Lyft. Drivers did not always verify they had the correct person in the vehicle and sometimes users would get in the wrong cab.

To address this, we needed to assign a confidence value that the rider and driver had successfully met so that we could escalate the issue and be triaged by customer service, and I was asked to come up with a solution.

We had GPS data from a device installed in the taxi and also GPS data from the user's device all stored in a PostgreSQL database. I implemented a Ruby on Rails based microservice that had a single endpoint that would take the user's ID, a vehicle's ID, and a time range. The service would query GPS data for both the user and the vehicle in that time range and using the Frechet distance algorithm, calculate the area between the two-dimensional linear representations of the reported route. From there, we could then assign a percentage chance that the two were together. Our main app would trigger a job to query this service a few minutes after a driver registered a pickup, and that job would then start workflows based on the result.

Multivariate Targeted Email Marketing Campaigns

At Vetstreet, one of the primary services it was able to provide were highly targeted marketing campaigns acting as an intermediary for pharmaceutical companies while keeping customer data confidentiality. These campaigns would require multiple variations in the offer and language used depending on pet demographics (i.e., owners with two or more bulldogs over the age of seven). In addition, we needed to be able to service requests from multiple distinct business units.

I designed a singular Java web service that provided both a REST and SOAP interface for consumption by our analysts. Our mail provider ExactTarget required dozens of API calls per address to upload customer data across dimensions and multiple steps which meant significant time cost. In order to provide maximum parallelization, I used the Akka library which provides an actor model of programming. Each step in the creation of a campaign and data upload could then be encapsulated in its own threaded process across multiple servers, and being aware of the dependencies, it could properly cooperate to correct the order and recover in the case of failed API calls. This allowed us to scale up to deliver millions of customized, trackable product rebates per campaign.

Legal Text and Document Classification

While working for Congressional Quarterly, the company had a great deal of incoming data regarding proposed bills, amendments, regulations, and editorial material. With such a deluge of material, one key aspect of legislative intelligence is being able to determine which particular items are relevant to a particular domain as many pieces of legislation impact industries in unintuitive ways.

I designed and built a system that provided the automatic tagging of documents as a means of both broadly and narrowly classifying their topical relevance. All of our documents were ultimately fed into a MarkLogic XML database which had a means of doing entity extraction—a way of detecting things in document text such as proper nouns (people, places, products). Using this entity extraction, the code was then able to upload entities to Apache Mahout, a Hadoop machine learning library. This would apply naive Bayesian filters, and the code was able to determine the relevant classifications of a given amendment or document. These classifications could then be compared against a body of thousands of documents which had been tagged previously by the editorial staff, allowing us to instantly tag documents and alert clients in areas of interest.

Rack Middleware for Database Connection Manipulation

https://github.com/jcalvert/life_guard
At Kit Check, it was necessary to provide clean demo environments to dozens of sales agents in the field who could tailor the experience without interfering with others' work, and for a variety of reasons, it was not practical to simply host and provision disparate environments. As a result, I wrote an open source library to solve this problem.

These Ruby on Rails applications rely on a library called Rack to provide abstractions between HTTP servers and Rails applications. The rack allows you to insert middleware which enables performing functions outside the usual application code within the request/response lifecycle.

The life_guard middleware looks for a custom request HTTP header and then connects the process of that request to the correct underlying database. This approach keeps tricky code out of filters and out of the main codebase. Because it is loaded as middleware, this also allows users of the library to constrain the environments in which it is loaded, keeping otherwise risky code segregated from normal production environments.

Languages

Java, Ruby, JRuby, Perl, JavaScript, Go

Frameworks

Ruby on Rails (RoR), Sinatra, Celluloid, AngularJS, Hibernate, Apache Camel, OSGi, Akka, GrapesJS

Storage

Redis, PostgreSQL, MySQL

Libraries/APIs

RGeo, EventMachine, Resque, Sidekiq, jQuery

Tools

Amazon Simple Queue Service (SQS), RabbitMQ, ActiveMQ, Kafka Streams, Vim Text Editor, Sublime Text, Git, Tableau, Sumo Logic

Paradigms

Parallel Programming

Platforms

Apache Kafka, Linux, MacOS, Eclipse, Oracle, WebSphere, New Relic

Other

Geospatial Data, SOAP, Software

2000 - 2004

Bachelor of Science Degree in Computer Science

North Carolina State University - Raleigh, NC, USA

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring