Principal Software Engineer2019 - PRESENTEstimize
- Maintained a large legacy Ruby on Rails application.
- Implemented Factset services to switch over all of our external data providers.
- Managed a remote developer to build new features that were more front-end heavy.
- Upgraded and added functionality to the API.
- Implemented better incident response technologies, such as Pager Duty.
Co-founder and Senior Software Engineer2017 - 2019Gonation
Technologies: Scala, AWS, Akka-Http
- Built an API that served our main platform that businesses used for uploading menus, hours, etc. Used the API to also server custom built websites so that when updating info on our platform, the information would show up on their website.
- Implemented CI/CD with CircleCI and deployed a Docker image to AWS Elastic Beanstalk.
- Implemented a combination system of DynamoDB and PostgreSQL to create a highly scalable system while keeping costs down.
- Implemented geolocation with PostGIS and the HERE API.
Principal Software Technologist2015 - 2017Pattern, Inc.
Technologies: C++, Python, Flask, Scikit-Learn, NLTK, TensorFlow, Java, Neo4J, RabbitMQ
- Designed and developed algorithms for a new distributed hypergraph database system in C++. Specifically focused on the system’s subgraph matching and rewriting part of the system.
- Developed a Python Flask API back-end server hosted on AWS for a client's front end to communicate with.
- Developed a machine learning system in Python to predict athletic scores for a mobile fitness app.
- Built a Python microservice to ingest articles and perform NLP entity recognition, using NLTK and TensorFlow on the articles and then returning the results to a queue using RabbitMQ.
- Developed an application in Java to create a wrapper around a Neo4J database to easily traverse graph results from queries.
Back-end Software Engineer2014 - 2015Localytics
Technologies: Scala, Play, Akka, MySQL, AWS (EC2, S3, SQS, SNS, DynamoDB, AuroraDB, etc.)
- Redesigned and implemented a microservice in Scala and Akka to use much less memory to handle larger queries and perform almost 10x faster than the legacy system without losing any functionality.
- Designed, developed, deployed, and supported a Scala Play REST API that was horizontally scalable. The API was able to handle all the traffic it needed, which could be over 100 million requests per day.
- Developed several integration tests that could ensure new changes didn't break any part of the system, which could be run automatically any time a new branch was pushed to master.
- Implemented several monitoring tools to ensure the system was up and running properly at all hours of the day. This included using AWS alerts, NewRelic, and Pingdom integrated with PagerDuty to alert of any issues.
- Implemented several new features across the many different Scala microservices in our system leveraging Play and Akka concurrency.