Scroll To View More
Jonathan Calvert, Ruby Developer in Washington, DC, United States
Jonathan Calvert

Ruby Developer in Washington, DC, United States

Member since October 3, 2018
Jonathan has over 13 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.
Jonathan is now available for hire

Portfolio

  • Braintree
    Ruby on Rails, Apache Kafka, AWS SQS, Go, Etcd
  • Kit Check
    Ruby on Rails, MySQL, Celluloid, Resque, AngularJS, Tableau
  • Taxi Magic | Curb
    Ruby on Rails, MySQL, PostgreSQL, Resque

Experience

  • Ruby, 11 years
  • Java, 11 years
  • Ruby on Rails (RoR), 11 years
  • Parallel Programming, 10 years
  • Redis, 6 years
  • Apache Kafka, 2 years
  • Amazon SQS, 2 years
  • Geospatial Data, 2 years
Washington, DC, United States

Availability

Part-time

Preferred Environment

Linux, Mac, Vim, Sublime Text, Eclipse, Git

The most amazing...

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

Employment

  • 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: Ruby on Rails, Apache Kafka, AWS SQS, Go, Etcd
  • 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: Ruby on Rails, MySQL, Celluloid, Resque, AngularJS, Tableau
  • Senior Engineer | Back-end Architect

    2012 - 2014
    Taxi Magic | 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 for an in-house payment system for mobile applications and in-vehicle credit swipe devices.
    • Introduced the initiatives to decompose monolithic applications into microservices.
    Technologies: Ruby on Rails, MySQL, PostgreSQL, Resque
  • 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.
    Technologies: Java, Hibernate, Ruby on Rails, JRuby, SOAP, Apache Camel, OSGi, Akka
  • 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: Java, Hibernate, Ruby on Rails, JRuby, SOAP, Oracle, jQuery
  • QA Engineer

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

Experience

  • Rider Matching (Development)

    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 (Development)

    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 (Development)

    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.

Skills

  • Languages

    Java, Ruby, Perl, JavaScript, Go
  • Frameworks

    Ruby on Rails (RoR), Sinatra, Grape
  • Storage

    Redis, PostgreSQL
  • Libraries/APIs

    RGeo, EventMachine, Resque, Sidekiq
  • Tools

    Amazon SQS, RabbitMQ, ActiveMQ, Etcd, Kafka Streams, Sumo Logic
  • Paradigms

    Parallel Programming
  • Platforms

    Apache Kafka, Linux, New Relic
  • Other

    Geospatial Data

Education

  • Bachelor of Science degree in Computer Science
    2000 - 2004
    North Carolina State University - Raleigh, NC, USA
I really like this profile
Share it with others