
Jonathan Calvert
Verified Expert in Engineering
Geospatial Data Developer
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
Experience
- Ruby - 11 years
- Ruby on Rails (RoR) - 11 years
- Java - 11 years
- Parallel Programming - 10 years
- Redis - 6 years
- Apache Kafka - 2 years
- Geospatial Data - 2 years
- Amazon Simple Queue Service (SQS) - 2 years
Availability
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
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.
Senior Engineer
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.
Senior Engineer | Back-end Architect
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.
Senior Engineer | Team Lead
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.
Software Engineer (Junior to Senior)
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.
QA Engineer
IBM
- Developed the automated testing for web-based interfaces for IBM service processors for server administration.
Experience
Rider Matching
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
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
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_guardThese 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.
Education
Bachelor of Science Degree in Computer Science
North Carolina State University - Raleigh, NC, USA
Skills
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
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
Paradigms
Parallel Programming
Platforms
Apache Kafka, Linux, MacOS, Eclipse, Oracle, WebSphere, New Relic
Other
Geospatial Data, SOAP, Software
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring