Nick Caplinger

Senior Software Engineer

A photo of Nick Caplinger

Hi! I'm Nick, a game industry veteran turned backend engineer.

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