About Me
Hey there, I'm Nick Caplinger. I'm a software engineer living in Texas. I've been programming professionally for 10 years, and I've been writing code for fun for even longer. I've worked on a variety of projects, from video games to web applications. Like many, my journey has not been a straight line.
Experience
2021 - Present
Senior Software Engineer - KidStrong
When I started as the second hire on KidStrong's technology team, coaches at various KidStrong centers across the United States were still using paper cards to track kids' progress throughout their time at KidStrong. Later that year, we shipped "KidStrong Coach," a full-stack application built using Firebase that allowed coaches to manage their class, track kid progress, and give out awards. Our stack also integrated with an existing CRM, allowing kid information to flow directly into our ecosystem via ETL pipelines.
After we hired more developers, I transitioned away from being a full-stack engineer to being the lead of the backend team, continuing to address the needs of several of our client applications and partner integrations. We incrementally migrated away from Cloud Functions and towards Cloud Run, moving from TypeScript in favor of Rust and GraphQL. Although our domain did not strictly require extreme performance, we had several developers that knew Rust and we appreciated the correctness that Rust's type system brings.
TypeScript
Rust
GraphQL
gRPC
Google Cloud Platform
Firebase
Cloud Run
Unity3D
2016 - 2020
Software Engineer - Armature Studio
Armature is where I fell in writing software with a focus on performance. Although I was a generalist, I spent a fair amount of time working with graphics and audio and learned a great deal from the talented engineers there.
I've come to think that the time I spent optimizing for GPUs has helped immensely with regards to writing performant backend code. A lot of the same abstract concepts and patterns apply to both domains!
I also spent some time managing our CI/CD pipeline using Jenkins, which was a great experience.
C++
Vulkan
DirectX
Jenkins
Python
Perforce
2014 - 2016
Software Engineer - Tango Me
Previously: Junior Software Engineer
Previously: Software Engineer Intern
Tango is where I got my start! Note that I was a part of a satellite office in Austin, TX - I didn't work on the main video chatting app.
C++
Objective-C
Java
Lua
Git
Projects
I honestly have had too many projects over the years, but here are some of the more interesting or notable ones.
Rust Game Engine
I started building a cross-platform game engine in C++ in college, and built a few small, unnotable games with it. Eventually, after tinkering in Rust for a time, I decided to port the engine to Rust.
I used my professional experience in graphics programming to build the renderer, which I think was better than other engines at the time. However, Bevy since reworked their graphics backend and I decided to put the project to rest.
Rust
Vulkan
Audio programming
Network programming
Homelab
If you're unfamiliar with the term, "homelab" refers to a home network setup that is more complex than a typical consumer setup. I've been working on mine for a few years now, and it's been a great way to learn about networking, Linux, and other technologies that I don't get to work with in my day job.
I typically use it for my NAS, media server, video game servers, and anything I write that I want to deploy without spending money on cloud services.
Proxmox
Linux
Networking
Docker
Rancher
Kubernetes
Prometheus
Terraform
NickCaplinger.com
Although I'm a much stronger backend engineer than frontend, and I'm certainly not a good designer, I've been enjoying working with Next.js. There are too many neat things I want to do to not work with it, and CLIs and TUIs can only get one so far.
TypeScript
Next.js
TailwindCSS
Bun