About Me

banner

Overview

In a nutshell, I can best be described as a passionate, driven, and slightly hyperactive software engineer. I began the journey of my technical career back in 2012 as a Technical Support Representative assisting web based users with technical issues. A little more than a year later, I had worked myself into a Desktop Support role and then into a role as Systems Administrator a year after that. In 2016, I accepted my first engineering role as a Site Reliability Engineer and have been involved in some form of Software or Systems engineering since.

Summary of Skills and Work Experience

Application Engineering

  • Comfortable working with either monolithic and micro-service based application architectures
  • Contributed to a wide variety of projects ranging from APIs to CLIs to Micro-Services
  • Familiarity with a wide range of development and database technologies, package managers, and frameworks such as Python, golang, NodeJS, Postgres, and Influx to name a few
  • Experience working with many common CI/CD and containerization utilities: Drone, Jenkins, Vela, docker and Colima

Systems Engineering

  • Experience with both standalone and High-Availability clustered infrastructure stacks. virtualization, containerization, and cloud based
  • Experience with multiple infrastructure migration strategies including live migrations and data import/export
  • Understanding of Network concepts surrounding network topology, firewall management, load-balancing, and multi-layered network stacks (virtual and physical)
  • Familiar with core Information Security concepts like file and user access-control and permissions management; Experienced with Linux OS security and permission utilities like Pluggable Authentication Modules (PAM), firewalld, and file permissions and ownership utilities like chmod and chown

Career Highlights

  • Prepped, planned, and coordinated the migration of an Enterprise Github stack across virtualization platforms
  • Developed automation to perform operational maintenance tasks such as hot-patches, rolling reboots and operational support tasks such as detection and remediation of break-fix issues
  • Regular participant in Secure Code Warrior challenges which focuses on identifying security bugs in code
  • Multiple contributions to the open-source community
  • Experience with integrating CI/CD tools to enable automated deployments
  • Along with two other engineers, designed and wrote a token minting and management solution used as a means of ensuring trusted relationships between servers in a given cluster

Professional Development

More recently, I’ve been focusing on growth in the realm of leadership. While I’m not currently a leader, it’s almost certain that my path will eventually cross through some form of a leadership role. Similar to how I’ve approached growth in any aspect of my career I like to look ahead to where I’ll be in the future, determine the skills that I’ll need to succeed, and figure out a way to apply these skills to my current role. In terms of developing my leadership skills in my current role there are two primary skills that I’m actively working on. The first is simply leading by example in terms of taking full ownership of everything I have control of, being open and honest with my teammates, and planning, prepping, and executing on objectives to the best of my ability. The second area of focus is on my communication skills.

The next section is a brief synopsis of my personal philosophy behind engineering in the technical world.

Engineering Philosophy

As an engineer, my approach to Software Engineering first begins with understanding the problem that needs to be solved. This involves diving deep into user requirements and system intricacies before diving into code. I feel that I excel in this stage as a result of my early career roles in that I’m able to put myself in the perspective of the end-users and empathize with them and their requirements. Whenever possible, best practices serve as my guiding principles from writing clean and modular code to following established design and architecture patterns.

Flexibility is key; I embrace a hybrid mix of agile methodologies like allowing for iterative development and responsiveness to changing project dynamics while doing my best to keep things simple. In essence, my philosophy centers on a blend of problem comprehension, adherence to best practices, and an agile mindset, while doing my best to ensure that the every piece of software or systems stack that I touch is not only technically sound but also easily adaptable to evolving needs.