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.
Backend 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.