Nic O’Sullivan #
Oklahoma City, OK
Primary Languages #
- Go
- PHP
- Javascript/Typescript
Primary Tools #
- Kubernetes
- Docker
- GitLab
- Helm
Experience #
Paycom Payroll, Senior Technical Lead - Platform Engineering #
Feb 2024 - Present
- Rebuild core SDLC reducing lead time to change in production.
- Introduced new deployment patterns eliminating cross-service coordination.
- Built custom Kubernetes operator for managing rollouts across datacenters in multiple regions.
- Roadmap and build out features for internal development platform.
Paycom Payroll, Supervisor of Software Development #
April 2023 - Feb 2024
- Led 5 software development teams in the platform engineering group.
- Managed large projects across teams for both platform engineering and security teams.
- Managed and coordinated incident response and post-incident follow-up.
- Mentored team leaders and team members on best practices.
Paycom Payroll, DevOps Architect #
May 2022 - April 2023
- 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 used to run on Digital Ocean for Kubernetes, but I simplified to Cloudflare Pages. Built and deployed with GitLab CI/CD. You can see all the details in 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.