Jonathan Calvert,美国田纳西州纳什维尔的开发者
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拥有超过14年的各种语言软件开发专业经验. 他特别擅长Java和Ruby,特别关注api和后端技术,比如排队系统. 他曾担任技术主管和高级工程师,与创业公司和大型上市公司以及医疗保健等领域的团队合作, finance, transportation, among others.

Portfolio

Braintree
Go, Amazon Simple Queue Service (SQS), Apache Kafka, Ruby on Rails (RoR)
Kit Check
Tableau, AngularJS, Resque,赛璐珞,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...

...我研究的算法是实现Frechet距离来匹配GPS路线数据.

Work Experience

Senior Engineer

2016 - PRESENT
Braintree
  • 在一个扩展和性能团队工作,通过代码调优来满足客户对核心信用卡处理API不断增长的需求.
  • 开发了通过时间关键型代码路径卸载持久性的基础设施.
  • 计划并执行零停机数据存储迁移.
  • Mentored junior engineers.
  • 使用Etcd开发分布式锁存储.
技术:Go, Amazon Simple Queue Service (SQS), Apache Kafka, Ruby on Rails (RoR)

Senior Engineer

2015 - 2016
Kit Check
  • 为AngularJS UI前端应用开发健壮的Rails api, 向数百家医院提供受控的药物跟踪软件.
  • 为与现场医院HL7电子医疗记录系统的双向集成实现排队基础设施.
  • 开发数据仓库和客户报告功能,以提供有关药物使用的BI价值.
  • 通过使用调试器和分析器来调整性能并消除缺陷.
  • Mentored junior engineers.
技术:Tableau, AngularJS, Resque,赛璐珞,MySQL, Ruby on Rails (RoR)

高级工程师|后端架构师

2012 - 2014
Curb
  • 在Rails中为旗舰移动预订应用程序开发了新的、经过高度测试的RESTful api.
  • 领导开发利用地理空间数据进行实时客户/供应商出租车匹配的内部服务.
  • 介绍了单元测试和代码审查的文化.
  • 引导所有主要应用程序的持续集成以及自动代码质量检查.
  • 负责开发针对移动应用程序和车载信用卡刷卡设备的内部支付系统.
  • 介绍了将单片应用程序分解为微服务的举措.
技术:Resque, PostgreSQL, MySQL, Ruby on Rails (RoR)

Senior Engineer | Team Lead

2010 - 2012
Vetstreet
  • 带领团队用Ruby on Rails重构一个未归档的PHP门户系统,以便与自定义CMS集成.
  • 推广开发实践,如面向服务的体系结构和单元测试,以及良好的源代码控制实践.
  • Implemented event-driven, 基于队列的服务,用于发送数百万封带有复杂目标营销规则的电子邮件.
  • 标准化了一些用于从远程兽医管理系统提取数据的Java库, 将它们转移到一个集中的数据库中, 并围绕它们提供标准化的对象关系映射对象,以缩短开发时间.
  • 指导初级开发人员发展其能力和独立性.
技术:Akka、OSGi、Apache Camel、SOAP、JRuby、Ruby on Rails (RoR)、Hibernate、Java

软件工程师(初级至高级)

2005 - 2010
Congressional Quarterly
  • 设计和开发先进的立法搜索功能,为40多个不同的数据源产品提供统一的接口.
  • 重构和维护内部履行应用程序,该应用程序集成了计费功能和客户服务备注,并提供用户对订阅内容的访问.
  • 与编辑团队密切合作,完成了CQ网站的重新设计,并在倡导新兴UI技术的同时担任UX指导委员会成员.
  • Developed the CQ.com的黑莓应用程序,以简化移动访问材料.
  • 将收购的Visual Basic/Access产品迁移到Oracle支持的Java Wicket应用程序中,以对超过50年的FEC归档数据进行分析.
技术:jQuery, Oracle, SOAP, JRuby, Ruby on Rails (RoR), Hibernate, Java

QA Engineer

2004 - 2004
IBM
  • 开发用于服务器管理的IBM服务处理器的基于web接口的自动化测试.
Technologies: WebSphere, Perl

Rider Matching

Taxi Magic的一个核心产品是我们的手机应用程序,它允许用户请求并支付出租车费用, 类似于Uber或Lyft等其他打车应用. 司机们并不总是确认车上的人是对的,有时用户会坐错出租车.

To address this, 我们需要指定一个乘客和司机已经成功满足的置信度值,这样我们就可以升级问题,并由客户服务进行分类, 我被要求想出一个解决方案.

我们有安装在出租车上的设备的GPS数据,也有来自用户设备的GPS数据,这些数据都存储在PostgreSQL数据库中. 我实现了一个基于Ruby on Rails的微服务,它只有一个端点,可以获取用户的ID, a vehicle's ID, and a time range. 该服务将查询用户和车辆在该时间段内的GPS数据,并使用Frechet距离算法, 计算报告路由的二维线性表示之间的面积. 从那里,我们可以分配两者在一起的概率. 我们的主应用程序将在司机注册接车几分钟后触发一个作业来查询这项服务, 然后,该作业将根据结果启动工作流.

多变量定向电子邮件营销活动

At Vetstreet, 它能够提供的主要服务之一是高度针对性的营销活动,作为制药公司的中介,同时对客户数据保密. 这些活动需要根据宠物的人口统计数据(如.e.(7岁以上牛头犬的主人). 此外,我们需要能够为来自多个不同业务单元的请求提供服务.

我设计了一个单一的Java web服务,它为我们的分析师提供了REST和SOAP接口. 我们的邮件提供商exactttarget需要对每个地址调用数十个API来跨维度和多个步骤上传客户数据,这意味着大量的时间成本. 为了提供最大的并行化, 我使用了Akka库,它提供了一个actor编程模型. 创建活动和数据上传的每个步骤都可以封装在跨多个服务器的线程进程中, and being aware of the dependencies, 在API调用失败的情况下,它可以正确地合作纠正顺序并进行恢复. 这使我们能够扩大规模,交付数以百万计的定制产品, 每次活动可追踪的产品回扣.

法律文本和文件分类

在《欧博体育app下载》工作时, 该公司收到了大量有关提案的传入数据, amendments, regulations, and editorial material. With such a deluge of material, 立法情报的一个关键方面是能够确定哪些特定项目与特定领域相关,因为许多立法以非直观的方式影响行业.

我设计并构建了一个系统,该系统提供文档的自动标记,作为对其主题相关性进行广义和狭义分类的一种手段. 我们所有的文档最终都被输入到一个MarkLogic XML数据库中,该数据库有一种进行实体提取的方法——一种检测文档文本中的事物的方法,比如专有名词(人), places, products). Using this entity extraction, 然后,代码就可以将实体上传到Apache Mahout, a Hadoop machine learning library. 这将应用朴素贝叶斯过滤器, 该代码能够确定给定修正案或文件的相关分类. 然后可以将这些分类与编辑人员先前标记的数千份文件进行比较, 允许我们立即标记文档并在感兴趣的领域提醒客户.

用于数据库连接操作的机架中间件

http://github.com/jcalvert/life_guard
At Kit Check, 有必要为现场的数十名销售代理提供干净的演示环境,他们可以在不干扰他人工作的情况下定制体验, and for a variety of reasons, 简单地托管和提供不同的环境是不实际的. 因此,我编写了一个开源库来解决这个问题.

这些Ruby on Rails应用程序依赖于一个名为Rack的库来提供HTTP服务器和Rails应用程序之间的抽象. 机架允许您插入中间件,使您能够在请求/响应生命周期内执行常规应用程序代码之外的功能.

life_guard中间件查找自定义请求HTTP头,然后将该请求的进程连接到正确的底层数据库. 这种方法将复杂的代码排除在过滤器和主代码库之外. Because it is loaded as middleware, 这还允许库的用户约束加载库的环境, 将有风险的代码与正常的生产环境隔离开来.

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

计算机科学学士学位

北卡罗来纳州立大学-罗利,北卡罗来纳州,美国