I'm currently a Software Engineer at BetterCloud building things with some awesome people.
I'm an innovative and results-driven software engineer with six years of experience in full stack development. Proven track record of both optimizing existing software (including enhancements in performance and testing) and building new solutions from the ground up. Experienced in leading development objectives to completion with efficiency and quality.
When I'm not in front of a computer screen, I'm probably watching a new fantasy show, building a lego, or hanging out with my four fur babies.
With over 6 years of experience, I have acquired skills in a number of domains, including
An API Gateway that oversaw and optinize outbound API calls, improving the observability and coordination of communication across 70+ different provider APIs.
I got to experience building up requirements, working through a POC (Proof of Concept) with three potential vendors, implementing and deploying the solution to our cloud platform, and successfully seeing traffic flowing in and out of the gateway in production. I learned a lot of new technologies, including Kong Gateway, Grafana and Prometheus, authentication (JWT and HMAC), OpenAPI Spec files, and much more.
When a new OpenAPI Specification needed to be implemented in the API Gateway, I automated the process, which involved creating the appropriate file, customizing it by adding or removing plugins, deploying the file to the gateway with a failsafe for potential deployment failures, and running tests on the newly generated endpoints. This process was executed through a CLI command in GitLab jobs.
This project I was able to lead and build out a CLI from scratch using pure JavaScript. I got learn how to split up work and determine what needed to be done and what order these needed to be done. I particapated in all code reviews to ensure over 95% code coverage in unit test as well code readability. I also got to learn how to build gitlab specific pipelines and how jobs run in the CI/CD environment.
Led a team of engineers to create automated retry logic using Java and kafka resulting in reduced on-call alerts and increased focus time for development. Also eliminated up to 68 million unused Kafka topic messages which reduced overhead and improved performance.
This initiative allowed me to work directly with Kafka and learn about how to setup kafka producers and consumers, how to handle records, and to work with error handling to allow the application to run smoother.
When an event was triggered by a mouse click, the response time from the button click to displaying results took well over 60 seconds to load. I refactored some legacy code to reduce the execution time from over a minute to under a second, resulting in a much happier customer response.
This project allowed me to learn how to optimize database queries and set up schemas for database changes. It also introduced me to Spring Boot and the powerful capabilities it offers for service development.
When onboarding new engineers, there was a lot of manual setup involved. I created a new engineer guide with steps for setting up the development environment and establishing coding standards and test coverage rules in SonarQube for all new merge requests (MRs). This effectively increased code coverage by a small margin with each code change.
This initiative enabled me to learn about documentation and effective communication. I observed how the documentation streamlined the onboarding process for new engineers and reduced the time spent on code reviews due to the clear expectations it provided.
Building new dynamic web pages in collaboration with a backend engineer. I aimed to enhance the user experience and achieve webpage objectives by creating site structures, improving navigation, optimizing page performance, and integrating graphics.
This was my first experience working with front-end specific technologies. I learned how to work with Angular and how to make API calls and consume data from the client side. Additionally, I gained knowledge on handling data to ensure that we displayed only received results, avoiding client-side data manipulation.
Most of the project had no unit tests and lacked code coverage. I implemented over 500 unit tests to enhance test coverage and uncover previously unnoticed bugs.
I learned about the importance of implementing good unit testing when working with new software. I noticed numerous unhandled edge cases, and now I always keep that in mind when developing new software and writing tests.
A Java-based application simulates the process of receiving missiles, refueling, disposing of chemicals, and shipping out. The tool was used to assist my customer in planning scheduled deliveries, optimizing the current staffing on a shift schedule, and determining if multiple steps can be performed to expedite production.
This project allowed me to learn how to manage a project and plan effectively for the successful deployment and delivery of major releases. As the sole developer, analyst, and project manager, I was able to communicate directly with the customer, building a trusting relationship of gathering requirements, verifying expected output, and providing realistic updates.
An eCommerce website built for my wife to sell her own clothes for her boutique. Built and fully maintained by me with design assistance from my wife.
A coding challenge for an interview. I had to build a simple angular 6 spa that is capable of navigating from one component to another and back. Each component will request data from the public Star Wars API.