Node.js Application Developer2017 - 2017Team America (via Toptal)
- Created a chatbot service in Node.js with Twilio (SMS) Facebook Messenger, and Watson Conversation Service (NLP) integrations.
- Designed and implemented a feature allowing the user to preview and send a physical postcard via LOB integration to their senate or house representative through chat or web interface.
- Supported CMS website back-end using Keystone JS, MongoDB, Node.js, and Pug.
- Created automated background job processing services that ran daily and kept production MongoDB up-to-date with all 5000+ bills in Congress and 500+ representatives for all US states and territories.
Software Consultant2016 - 2016Near Earth Autonomy
Technologies: Python, Groovy, Docker, Jenkins, Phabricator, Nginx
- Independently designed and brought online the company's Continuous Integration (CI) solution. The CI system is used daily by the software engineering team and includes per commit and nightly builds.
- Eliminated broken project builds on master branches by designing and building a pre-commit process leveraging Phabricator for code review, Jenkins Pipelines with Groovy scripts for automated builds, and custom Python scripts to integrate the tools.
- Created a highly scalable CI environment where compute agents can be trivially added to increase parallel build capacity by capturing project specific build environments in Docker containers.
- Deployed secure application web servers using Nginx reverse proxy with SSL/TLS termination.
Senior Software Engineer2012 - 2016Apple
Technologies: C++, Python, Hadoop, SQLite, Git, Xcode, Jenkins, Agile, Linux
- Designed and implemented algorithms for bringing new map data and features to millions of Apple Maps users. Utilized Hadoop and map-reduce to efficiently process world coverage geo data.
- Led design, implementation, and testing of algorithm for dynamic generation of sub-tiles on the vector map server (patent pending, US 62044949), a critical component in bringing Apple Maps to Apple Watch users.
- Acted as a key contributor to implementation of Apple Map’s vector tile server. Achieved sub 10ms latency at 50K QPS.
- Promoted to Senior Software Engineer (ICT4) in April 2014.
- Worked as the lead engineer for Point of Interest (POI) display in vector map tiles. Designed a popularity driven algorithm for choosing which POIs to display on the map in densely populated regions.
- Designed and implemented POI metadata service, a component of the technology stack enabling Apple’s Universal Search feature on iOS devices.
- Promoted to Engineering Manager in October 2014; led a team of four Software Engineers.
- Owned Apple Maps live service providing on demand vector map tiles to millions of Apple Maps users.
- Led the team’s rewrite of Apple Maps Live Traffic service. Reduced 95% latency from 100ms to 1ms. Resulted in factor of ten reduction of required server nodes in production environments.
- Promoted to Engineering Manager of Vector Maps team in June 2015; led a team of ten.
- Took ownership of a distributed data processing pipeline that transformed raw geospatial data into the map tiles used on all client devices running Apple Maps.
- Successfully launched vector tile support for Apple Map’s Transit feature in iOS 9.
Software Engineer2007 - 2012Medical Numerics
Technologies: C++, Qt, Visual Studio, Intel MKL, Google Test, Mercurial, Matlab
- Reduced time complexity of 3-D image smoothing from O(nk^3) to O(nk) by implementing a separable convolution algorithm. Enabled the addition of a new real-time smoothing feature to the product.
- Architected scalable 4-D statistical processing library using a parallel aggregation algorithm; decreased space complexity from O(n^4) to O(n^3) by transforming the algorithm to operate on 3-D blocks.
- Parallelized a 3-D image registration algorithm by applying the map-reduce technique to an expensive operation in a tight inner loop; decreased registration processing time by 33% on target Linux platform.
- Implemented an image processing service class using the active object pattern; allowed for a responsive GUI thread with concurrent execution of expensive image processing tasks.
- Designed a pipelined processing engine class that was reused in multiple applications. The class achieved a magnitude of order speed up by vectorizing data intensive operations in the pipeline.
- Promoted to Technical Lead in February 2011.
- Reduced build times from ten minutes to one minute by refactoring the header inclusion policy to prefer forward declarations, and by applying the PIMPL idiom to widely included classes.
- Introduced automated testing using Google Test. The time to execute the system test plan decreased by fifty percent.