Staff Software Engineer June 2015 to Present
- As a Staff Software Engineer:
- Develop a microservice in Go that speaks the Amazon S3 protocol, translating incoming S3 requests (HTTP) into proprietary IBM Spectrum Protect verb protocol (TCP).
- Migrate our microservice code to IBM GitHub Enterprise, developing best practices for version control, test driven development, code review, and hot fix branches.
- Develop code in C to create the supporting back-end for our S3 layer and refactor existing code by adding new infrastructure in legacy code to support S3-like behavior.
- Work closely with other teams dependent on our S3 service in a feedback loop, facilitating and implementing stakeholder requirements.
- Research and integrate existing open source technology, rapidly prototype and modify open source code for our needs, and define a process to continually merge in upstream security fixes from the open source team.
- Implement asynchronous connection pooling to allow for TCP connection reuse: As HTTP requests come and go, corresponding back-end TCP connections get reused between request lifetimes and the scale with the number of HTTP requests.
- Move our API logging from the default Go implementation to structured logging and develop best practices for logging by adding contextual logging that simplifies filtering to the entire lifecycle of a specific request.
- Develop TLS certificate code and work with IBM Spectrum Protect security team to allow GSKit certificates to be used end-to-end and help internal test team troubleshoot certificate problems when implementing self-signed and CA certificates.
- Use Go's profiling and coverage tools to find and fix performance bottlenecks and make sure all code paths are covered by unit and integration tests, develop mock TCP connection code so we don't need a live server to run our test suite.
- Make our code more resilient by introducing retries with exponential back-off, all isolated and retry-able in Goroutines.
- Run capstone with a group of senior NAU students, developing a microservice approach for reclaiming space in cloud object storage. Run another capstone afterwards that utilizes machine learning (random forests) to predicatively ingest data into the correct storage tier (disk, tape, or cloud).
- Deliver offloading S3 data to tape storage using a microservice, implement Amazon Glacier protocol support, and build out legacy code infrastructure to simulate Glacier behavior on tape storage devices.
- As a Software Engineer:
- Work in Java and C with a significant amount of experience developing code using the Java native interface (JNI).
- Extensive experience creating and maintaining a concurrent cloud back-end that speaks with Amazon S3, OpenStack Swift, IBM Cloud Object Storage, and Microsoft Azure.
- Scale our performance to enterprise needs: Involved with taking our cloud integration from an initial release to a production workhorse.
- Work directly with customers providing technical expertise for Spectrum Protect implementation and troubleshooting.
- Deliver tiering from disk to cloud storage. This includes having a hand in every part of the pipeline: creating the initial multi-threaded infrastructure and work farming, large file handling, streaming buffers to cloud, addressing performance bottlenecks, and the REST API to control it.
- Run data visualization capstone project for NAU undergraduate student group.
Georgia Institute of Technology
Instructional Associate January 2018 to Present
- As an Instructional Associate:
- Responsible for grading, responding to student questions on Piazza, providing online office hours, enforcing academic integrity, and managing teaching assistants for Machine Learning (CS 7641).
- As a Graduate Teaching Assistant:
- Teaching assistant for Machine Learning (CS 7641) responsible for grading reports, exams, and attending office hours.
Machine Learning Consultant September 2018 to Present
- Provide ML expertise for development.
Rails Developer May 2014 to October 2014
- Work as a developer in an Agile web development environment using Ruby on Rails.
- Implement fraud prevention system to minimize fradulent chargebacks using a Naive Bayes classifier.
- Extensively implement front-end experiences using Bootstrap and the back-end to support a business that grows exponentially on a monthly basis.
Northern Arizona University
Teaching Assistant August 2013 to May 2014
- Grader for CS 200 Computer Organization taught in C and Assembly.
- Grader for CS 345 Principles of Database Systems taught in Oracle. In charge of grading and helping students through feedback.
Northern Arizona University
Lab Aide August 2013 to May 2014
- Lab instructor for the CS 122 Programming for Engineering lab taught in MATLAB.
- In charge of helping students during lab, grading lab reports, and creating pre-lab assignments for existing labs.
Rails Developer Intern May 2013 to August 2013
- Create a web application concept for a pool company located in Phoenix, AZ.
- Interface with client for requirements and collaborate with designer for implementation.
- Deploy a full Ruby on Rails application to Heroku. Demo and present to stakeholders.
- Use all kinds of Ruby technologies like Devise and various social media integration libraries.
Health Kick Digital
Back-end Web Developer Intern February 2013 to May 2013
- Lead a team of three developers in programming an add-on to the open source OpenEMR project.
- Utilize PHP and MySQL for back-end.
- First-hand experience with Bootstrap framework.
Boros Investments, Inc.
IT Manager June 2009 to June 2012
- Deploy Microsoft Windows Server 2008 and SQL Server 2008 to a small business environment.
- Provide on-call technical support for company employees and server administration.