I've had a lengthy career in technology writing software, building systems to support software, and writing tools to facilitate that. I have had experience running software on bare metal, virtualized servers, and cloud providers. Currently, I've been responsible for database services and running them in production environments. I believe that the SRE model is the next iteration of DevOps and that they are more than just buzzwords. I believe in the operators of systems collaborating with the creators of the software in which those systems run and that operators must write tools assist in managing the systems they operate.
I am interested in distributed systems, architectures that use Kubernetes, building tooling to interact with infrastructure, and using empathy to identify with stakeholders and collaborate on stakeholder needs. I value opportunites to mentor other engineers and positively influence technical direction of projects.
In my role as Lead Site Reliability Engineer, my focus shifted from building tools and services to leading the technical direction and collaboration on my team. My focus was to help my managment and senior leadership make decisions using technical guidance and data to derive timelines based on technical estimates and architectural design. Tools I used were Go, Dropbox Paper, and Slack APIs.
Additionally, I facilitated technical discussions and documentation with the senior engineers of the team. I provided mentorship and made my time available to provide mentorship and be a leadership resource while continuing to contribute to writing code and documenting systems.
My team and I managed the relational and non-relational database infrastructure at InVision. I created tooling to deploy schema changes to the relational database infrastructure using Kubernetes. My team and I also built monitoring tooling to log what queries contended for locks and blocked other queries. I worked with application developers to change queries to perform better. My team and I reduced the CPU on our primary database instance by just over 25% by changing a query not using an index to use the correct index. My team and I also coached teams on using databases to achieve the greatest performance and would help evaluate other team's data models. My team and I managed MySQL on RDS and MongoDB in EC2 and on MongoDB's cloud platform Atlas. Tools and languages I used were Liquibase, Go, Python, shell scripting, Kubernetes, and Ansible.
After the services initiative concluded, I joined the Site Engineering team where I supported container-based applications and deployment of them using early versions of Docker. On Site Engineering we supported monitoring of critical business services and databases. I would serve on a week long on-call shift where I would be responsible for incident response, system operations, and triage of issues reported by engineering teams. During this time I used Puppet, Ruby, shell scripting, Ansible, and Docker.
Finally, I was one of the founding members of the database team. My team and I managed New Relic's extensive relational database infrastructure and tuned it to achieve the most performance from them. My team and I managed nearly 100 bare metal database servers. My teams's scope was expanded to include NoSQL database as they started to be used by application teams. I attended the Cassandra Summit in 2016 where I was certified as a Cassandra Administrator by DataStax. My team and I managed MySQL, Postgres, and Cassandra. We used Ansible, Puppet, Percona tools, and custom tools my team and I wrote in Go and Ruby.
Scaled the virtualized testing and continuous integration (CI) infrastructure. I took an aging set of servers and I built a web based self service tool that allowed engineers to create and have access to virtual machines with various operating systems used for testing. I used VMWare ESX, Puppet, Ruby, and Rails to build it.
I joined the company initiative to help build the infrastructure and libraries for a service oriented architecture (SOA). My team was tasked with building service discovery, a synchronous communication , and asynchronous communication frameworks for the services being built as part of the initiative. To facilitate this my team and I used Apache Thrift, Ruby, etcd, and Redis.
As a parent and human being with interests I don't have a lot of projects I've contributed to on the side outside of work hours. My limited involvement in projects is listed below