Brian Lenoski
Software Developer
Brian has ten years of experience developing software across web, mobile, and desktop platforms, including having been part of the development team that brought public transit to Apple Maps. He communicates extremely well, and has worked in teams of all sizes.
Portfolio
Availability
Preferred Environment
Electron, Node.js, HTML5, CSS3, JavaScript
The most amazing...
...product I've launched is Maps on Apple Watch.
Work Experience
Node.js Application Developer
Team 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.
- Introduced functional testing to the project using Mocha.js/Expect.js testing framework. Introduced linting to the project using JavaScript Standard.
Software Consultant
Near Earth Autonomy
- 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 Engineer
Apple
- 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 Engineer
Medical Numerics
- 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.
Experience
Patent, Dynamic Vector Map Tiles US 62044949
http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=/netahtml/PTO/srchnum.html&r=1&f=G&l=50&s1=20160098598.PGNR.Publication, December 2008
Movie Night
https://github.com/blenoski/movie-nightSkills
Languages
C++, JavaScript, CSS3, Groovy, Python, HTML5, ECMAScript (ES6)
Frameworks
Angular, Electron, Redux, Hadoop, Qt
Libraries/APIs
React, Node.js, Intel MKL, Twilio API, Stripe API, Facebook Messenger API
Tools
Git, Webpack, Jenkins, NGINX, Xcode, Phabricator, Visual Studio, Mercurial, MATLAB, IBM Watson
Paradigms
Agile
Other
Software Development, Google
Platforms
MacOS, Linux, Docker, Firebase, KeystoneJS
Storage
SQLite, MongoDB
Education
Master of Science Degree in Electrical Engineering
Arizona State University - Tempe, AZ
Bachelor of Science Degree in Biomedical Engineering
Arizona State University - Tempe, AZ