Nic O’Sullivan #
Oklahoma City, OK
Primary Languages #
- PHP
- Go
- Javascript/Typescript
- Ruby
Primary Tools #
- Kubernetes
- Docker
- GitLab
- Helm
Experience #
Paycom Payroll, DevOps Architect #
May 2022 - Present
- Responsible for identifying and automating significant pain points in the SDLC process.
- Guided development of a “Paved Path” for new services and teams to follow to help ensure rapid deployments and consistent setups.
- Grew a team of DevOps Engineers from 2 individual contributors to 6.
Paycom Payroll, Software Development Team Lead - DevOps #
April 2021 - May 2022
- Oversaw the early development and adoption of DevOps best practices and containerization efforts across the Development Department (400+ developers).
- Guided team members in the development of their CI/CD skills, and further researched new training opportunities
- Developed department wide training relating to DevOps topics.
- Led the evaluation and adoption of new CI/CD tooling. Worked on ROI evaluation leading to approval.
Paycom Payroll, Software Developer III - Internal Tools #
December 2019 - April 2021
- Led the dev effort of containerizing our monolith PHP application. This involved revisiting all the assumptions that were made over 20+ years of only deploying to Windows Servers.
- Improved department efficiency by enabling testing of changes on feature branches by QA before Devs merged code. Reducing Integration environment outages. This required working across multiple teams and across multiple systems to coordinate releases of feature branches to a Kubernetes cluster.
- Built custom service to convert Bitbucket webhook events into Digital AI Release events to trigger deployments in a short time frame.
- Documented and instructed other Dev teams on what changes were needed to make their portions of the code base function in containers.
- Improved the internal PHP framework (Zend/Laminas based) used by most development teams.
- Worked with teams to identify and implement performance improvements across the codebase.
- Troubleshot and implemented fixes for production performance issue.
Paycom Payroll, Software Developer I - II - Product Development #
May 2016 - December 2019
- Worked with Product Managers to implement new features.
- Provided feedback on early specs to help identify potential implementation issues early.
- Mentored new team members.
- Participated in code review and pair programming as needed to ensure high quality code and help other team members learn.
Projects #
osullivan.tech - Personal #
My personal blog and resume site. It runs on a Kubernetes cluster in DigitalOcean. Built and deployed with GitLab CI/CD. Pipeline includes GitLab Review Apps for early previews and as a personal exercise. It’s a static site built with Hugo. The full Kubernetes cluster is a bit overkill, but it provides me a simple testing ground for new pipeline features or release/deploy features. You can read more details about the setup in my post Moving to the Cloud
Cloud Homelab - Personal #
I manage all of my cloud infrastructure with pulumi. Everything runs on DigitalOcean, with Cloudflare for DNS and DDOS protection. I use external-dns to sync ingress records from my k8s cluster to Cloudflare. For all my sites I use cert-manager to auto provision SSL certs. For my “production” sites I use the Cloudflare Origin CA Issuer to issue Cloudflare CA certs to enable secure connections between my services and Cloudflare. For non prod sites I use the Let’s Encrypt integration due to the Cloudflare Origin CA Issuer not having a ClusterIssuer resource as most my non prod sites are dynamic GitLab Review Apps. Most my services run behind the ingress-nginx k8s ingress controller.
Local Homelab - Personal #
I run a collection of physical servers at my home. 2 Dell R610s, and 1 Dell R510. The 2 R610s are setup in a Proxmox cluster. I ran a small GitLab install on it for a while. It was mostly used as a playground for various services and k8s clusters. The main long standing services were Jellyfin and FoundryVTT with Foundry mostly getting used during 2020. I played around with various game servers for my friends. The R510 hosted TrueNAS which held my media library for Jellyfin, and most of the backups of the Proxmox VMs.