Resume of Blain Smith
blain.smith@gmail.com
blainsmith.com
I am a software engineer always hungry for new challenges and problems to solve, be it tackling online video to disrupt the cable industry, building backend systems for multiplayer AAA games, pushing packets around the internet at Layer 1, or building a motor for my '90 Mustang. I also enjoy the challenge of powerlifting and strongman to push my body to extraordinary limits.
I love working on low level and distributed systems. I can be dangerous with web design and front end work, but my heart is in pushing packets, performance improvements, profiling, and optimizations with compiled languages.
Skills
Systems Design - Software Architecture - Systems Scalability - Linux Networking - Network Protocols - Embedded Linux - Product Development - Technical Leadership - Mentoring - Developer Experience and Productivity - User Experience and User Interfaces - Performant Caching - Online Video Delivery and Analytics - TV-Connected Devices Requirements - CI/CD Setups - Unit, Integration, and Load Testing - Amazon Web Services and Google Cloud Platform - Technical Documentation
Languages and Tools
Go - eBPF - JavaScript - Node.js - Elixir - gRPC - Protocol Buffers - Swagger - Envoy - Docker - Rust - C - Ruby - Java - Kotlin - PHP - ScyllaDB - Redis - Riak - MongoDB - DynamoDB - PostgreSQL - MySQL - SQL Server - BrightScript - HTML - CSS - React - Vue.js - GitHub - GitLab - AWS - GCP - Heroku - Fly.io
Experience
ngrok: Staff Software Engineer
https://ngrok.com
July 2023 - Present
Online in One Line. ngrok is simplified, API-first ingress-as-a-service trusted by over 5M developers to get their apps online faster and keep security happy. With one line of code, developers get instant ingress to services with authentication, observability, and other critical controls. All without provisioning legacy proxies, load balancers or VPNs. ngrok’s simplicity has made it a de-facto standard tool among developers, and the world’s top brands — including GitHub, Okta, Shopify, and Twilio — recommend it throughout their documentation.
Rocket Science: Staff Engineer
https://rocketscience.gg
September 2022 - July 2023
With decades of industry leadership experience, Rocket Science creates online tools & services for the world's most successful games. We designs solutions to solve a wide array of problems for both Publishers & Studios and have experience working with first and third-party partners in regions around the world.
- Mentoring and training fellow engineers in system design, documentation, technical writing, architecture design, coding, and more.
- Building microservices in Rust and ScyllaDB to support a soon to be released AAA Live Ops genre-defining game.
- Interfacing with other engineering teams across the organization to raise engineering standards and mentor other engineers.
- Dove into other customer projects to provide assistence when needed to troubleshoot engineering and planning issues.
- Worked with the recruiting team to help identify and interview potential candidates.
- Worked closely with game engine developers on an internal project that involed a lot of networking concepts to help build a game client SDK in Rust and communicate with a remote server in Go using QUIC as the communication protocol.
StackPath: Senior Software Engineer
https://stackpath.com
June 2022 - September 2022
StackPath is a cloud computing and services provider that puts its locations in densely populated markets. We have dozens of locations that each sit well inside their city limits, rather than a handful of zones that actually sit somewhere out of town.
That way your applications, data, and content—in part or in whole—can be closer to end-users and devices, and will have a fast, secure, and seamless experience.
- Assisted in the CDN modernization effort to bring in the use of Envoy, Prometheus, and other CNCF solutions.
- Assisted in the planning of "hot file" and server load and health rules to determine proper load balancing within the CDN.
- Became a primary point of contact for Go code reviews as the more senior engineer familiar with Go.
- Code reviewed the coding challenges from potential candidates applying to various roles within the CDN team.
- Created and maintained a Go coding standards document to train others in best practices and idioms
- Wrote the foundations of the gRPC and HTTP Gateway control plane admin API which produces automatic https://swagger.io/ docs and integrates into https://backstage.io.
- Drove the initative to document all aspect of the CDN product offering using https://c4model.com/
Subspace: Senior Software Engineer
https://subspace.com
December 2021 - May 2022
Subspace is a global network platform that allows real-time applications to route traffic on the fastest paths. All at an IP level, and all at scale, putting developers in complete control.
Backed by top Silicon Valley VCs, Subspace builds deep tech in global networking (Layer0 (DWDM) to Layer7). Run by top former Execs from Riot Games, SpaceX, Google, Facebook, and leading Telecom companies. The biggest multiplayer games in the world use Subspace to create the most competitive and engaging online experience possible.
- Responsible for building and maintaining the core network telemetry system which measures the latency, jitter, and packet loss across the entire 125 PoP network.
- Using IPv4 and IPv6 addressing with TCP and UDP within Layer 1 and Layer 2 using Go and eBPF.
- Leading quarterly cross-functional Delivery Teams to plan out and meet goals in coordination with product and leadership teams.
- Researching and developing more efficient ways to leverage Linux kernel features such as hardware timestamping at the NIC and eBPF rules to direct packets of data to specific destinations.
- Translating good and bad BGP routes from resulting telemetry data into BPF maps to inform proper packet switching.
- Measuring, monitoriting, observing, and performance tuning telemetry systems to work as optimally as possible to ensure CPU time is spent forwarding customer traffic rather than spending time performing measurements.
- Telemetry data informs higher level products such as WebRTC-CDN, Packet Accelerators, and SIPTeleport to ensure real-time traffic is optimally routed.
- Writing ADRs (Architectural Decision Records) and presenting them in real-time DRs (Design Reviews) to present system improvements and outlining rollout plans for mitigating disruptions of other dependent systems.
- Co-authored https://github.com/subspace-com/fast_afpacket which is used in our telemetry system for measuring link performance.
Wolfjaw Studios: Principal Software Engineer, Partner
https://wolfjawstudios.com
August 2019 - December 2021
Wolfjaw crafts compelling experiences through our expertise in building game services, player engagement tools, and companion services. Wolfjaw also makes it easy to curate your video content and drive viewership by equipping your team with a custom suite of streaming solutions, applications, and analytics tools. We are hired as consultants by some of the most popular video game and entertainment companies in the world.
- Every Principal Engineer is expected to be a solutions architect on their primary project as an individual contributor, but also serve as a technical lead on a secondary project to guide other engineers. This gives us a way to have more projects than solutions architects and a way to build up our employees to become technical leads themselves. Some of the additional work here includes bootstrapping projects for proper setup, tooling, CI/CD, and security guidelines to empower other developers to dive in and be productive with minimal friction.
- Created a series of internal projects in Go to showcase the different parts an online game needs in the modern age. Some of these educational projects are a matchmaking service, leaderboard services, packet routing service, authentication service, telemetry service, and player inventory service.
- Most client projects I’ve worked on are under strict NDA so they cannot be listed, but what I can mention is that I have touched all aspects of a multiplayer game:
- Server allocation and scaling
- Game client/server integration to external services in C, C++, and C#
- Custom matchmaking services
- Low level TCP/UDP packet routing in Go
- Load testing, benchmarking, and performance tuning Go services
- Sit in on sales calls with our business development team to talk to potential clients to understand their needs from a technical perspective
Kinetic: Senior Software Engineer
http://wearkinetic.com
December 2017 - August 2019
Kinetic is attempting to change the way people think about safety by equipping factory and warehouse workers with AI-enabled kinematic trackers to analyze and eventually predict work-related injuries.
- Designed and implemented, in Go, the deployment of device management infrastructure with Amazon IoT and our custom Go APIs to sync device state changes, transmit sensor data securely, and issue software patches remotely.
- Worked closely with data scientists to design and implement, in Go and C, their trained models onto devices for inferring kinematic movement. Wrote a custom clone of Tensorflow so it worked on our low power, battery operated, wifi-disabled devices during work hours.
- Redesigned and reimplemented our REST API, in Go, to be more performant, reliable, and resilient. This also included best practices for metrics monitoring with InfluxDB for latencies, response times as well as CPU, memory, and I/O.
- Co-authored our custom Math Engine that performed computations of the aggregated sensor data to be made available to customers through a dashboard. We implemented our custom computations with a DAG to ensure deterministic results based on user input.
- Mentored junior engineers and trained them in Go, AWS, Rust, and C. Also helped them level up their skills in general software engineer best practices like unit testing, integration testing, software design, requirements gathering, RFC writing, etc.
Odd Networks: CTO, Senior Software Engineer
March 2015 - December 2017
Odd Networks was born out of MadGlory to build cross platform video and subscription management platforms for gaming, mobile, and tv connected devices. Our platform supports all major online video providers (OVP), Brightcove, Ooyala, JWPlayer, and Vimeo and our SDKs are used to build apps for Roku, Amazon FireTV, AppleTV/iOS, and AndroidTV/mobile.
- Designed and implemented the primary video content metadata API mimicking a high performance read cache that services devices and sits in front of the OVPs as its upstream sources.
- Designed a plugin interface system for the content API to allow for writing data providers from any upstream source that provide video and playlist data.
- Worked with other app developers to design the app SDK for Roku, Apple, Amazon, and Android apps each in their native languages.
- Built and maintained the first live poker video app for XBox 360 in C#.
- Built and maintained the web widget in Vue.js to allow customers to render their catalog on any website they own by embedding a script tag with an API key. The output of this app looks similar to the Netflix web app.
- Built and co-maintain the AndroidTV and FireTV app from a single Java codebase with different build targets.
- Implemented a VAST 3.0 Java plugin for all Java-based apps to support video ads.
- Built a command line tool in Go to automate the build of any app platform by checking out the source from GitHub and merging in image assets and color settings to create a branded app for new customers.
- Built internal tooling in Go for aiding other engineers to locate and deploy test Roku apps on the local network, generate and validate API tokens for testing and development, an HLS stream validator and testing for ensuring stream quality.
- Built an events tracking system in Go for apps to send back usage data for app launches, browsing app catalogs, playing/stopping/pausing videos for generating usage graphs for customers. It also has the capability to write copies of the event data to any datastore like S3 or PostgreSQL.
- Built a feed generation service in Go to supply Roku, Amazon, and Google XML feeds so they may index customer’s content for their global search every hour.
- Co-designed and built a cross platform in-app-purchases (IAP) system in Elixir for synchronizing purchases from one platform (ex. Apple) to another (ex. Roku). This system can be used for any digital content from one-time purchases to recurring subscriptions. Supports transactions from Roku, Apple, Google, and Amazon billing systems.
- Set up all the testing, building, and deployment pipelines of all backend services using Docker and CircleCI with hosting on Heroku.
MadGlory (now PUBG New York): Senior Software Engineer
https://madglory.com
https://pubg.com
October 2012 - March 2015
Founded in 2012 by a team of engineers whose passion is in game services, MadGlory is a team of gamers, developers and designers who now work on their favorite games. First cutting their teeth at Agora Games, now Warner Brothers Games NY, and Major League Gaming, the team has been building game services for AAA studios and developers for almost 20 years.
Most of the roles below involved augmenting internal developer teams to help them launch their projects for their respective studios.
- Riot Games: Worked on a tournament engine in Java and Riak and accompanying front end app in Backbone.js for displaying tournament progress with progress charts, scorecards, and team standings.
- Riot Games: Worked on the League of Legends game client in ActionScript to build features for player profiles to display game wins/losses, favorite champion, play style, and other relevant statistics.
- Warner Brothers: Website and data migration for Lord of the Rings Online and Dungeons and Dragons Online in Drupal.
- Warner Brothers: Website for Shadow of Mordor game in WordPress. EA Games Mobile Division: Built a digital asset code redemption system in Node.js with Redis and PostgreSQL for allowing players to redeem one-time codes for in-game items such as coins, skins, and more.
- Overdog: Co-built an online game-agnostic matchmaking system for XBox One based on player interests such as movies and music instead of experience level using Win.js, Node.js, Redis, and PostgreSQL.
- Worked with configuring and managing AWS and GCP resources for most of the projects above along with setting up the testing and build pipeline when needed.
Other customers I can mention by name, but not project due to NDA restrictions, are Bethesda, Epic Games, Kabam, Super Evil Mega Corp., and BossKey.
Harvard School of Public Health IT Dept: Senior Programmer
https://www.hsph.harvard.edu
August 2005 - October 2012
I spent most of my career as a programmer at Harvard School of Public Health (HSPH) in their IT department with only 1 other programmer. Each graduate school at Harvard has their own IT department with dedicated staff. I was on the IT Web Team in charge of everything web technology related.
During the first homepage redesign, we built a custom CMS to suit the needs of the content publishers in the school and worked closely with the marketing department to accomplish this. I also created the school’s first online course evaluation system that integrated with the registrar’s system. This system not only allowed students to evaluate their courses and professors, but it also allowed those professors to run reports to see aggregated results and read feedback from student comments.
Another large school-wide initiative was the HSPH Forum (https://theforum.sph.harvard.edu) which involved building a live video broadcasting studio and managing those live events through a website we built on WordPress. I became proficient in streaming video over the web during this project since we needed to target as many devices as possible. This initiative generated many viewers because their aim was to be a cornerstone for news and information in the field of public health.
Other smaller tasks I was responsible for was supporting the core departments of the school with any web-related jobs. These jobs put me front and center with tenured professors, high ranking administrators such as Deans and Directors of their departments. Gathering requirements, asking questions, and helping them achieve their project goals was priority #1. I made a good name for myself amongst those people and they grew to trust me which, according to my boss, “was hard to do because of their high expectations and the status they carry within Harvard”.
interlinkONE: Programmer
https://interlinkone.com
June 1998 - August 2002
interlinkONE was my first programming job while I was still in high school. I went to a technical high school which offered an IT program and they offered an internship program that I took advantage of.
During my time there I wrote web reporting software in ASP 3.0 that pulled from SQL Server databases for mutual funds clients. Later I spent time working on their product offering for an integration sales and marketing solution for lead generation, lead tracking, order management and fulfillment. I also worked on a custom build GitHub-like software tracking system so we could manage versions and releases of our product and testing with our internal QA team. We called them SMTs (Software Modification Tickets).
Education
I spent a lot of time in school transferring and attending classes trying to complete my B.S. degree in Computer Science. Due to changing degree requirements, time commitments and responsibilities, I decided to focus on my career, and that decision has paid off. Having the opportunity to be employed by companies/institutions who believed in me, my skills, drive and dedication to succeed, I was able to achieve the goals listed above.
Georgia Tech: M.S. Computer Science (Accepted)
https://omscs.gatech.edu/specialization-computing-systems
August 2022 - Present
SUNY Empire State College: B.S. Computer Science (Graduated)
https://esc.edu
August 2012 - June 2020
Harvard University: B.S. Computer Science
https://harvard.edu
August 2005 - June 2010
Bentley University: B.S. Computer Science
https://www.bentley.edu
August 2003 - June 2005
Worcester Polytechnic Institute: B.S. Computer Science
https://www.wpi.edu
August 2001 - June 2003
Rensselaer Polytechnic Institute: B.S. Computer Science
https://rpi.edu
August 2000 - June 2001
Hobbies & Interests
- My smart and funny autistic son who reminds me so much of myself
- Competitive powerlifing and strongman
- Motorcycle riding, modding, and maintenance
- Car racing, modding, and maintenance
- Off-roading, overlanding, and camping
- Heavy metal, 90's hip-hip, and synthwave
- Horror, action, and psychological thriller movies
- Reading fantasy and technical books and academic papers