# How a CS2 side project escalated into a full analytics SaaS

**Welcome to The Grind.** If you are a software engineer, you already know how this story starts. You find a minor inconvenience in a video game you play, you think, *"I bet I could parse that data and build a quick UI for it over the weekend,"* and suddenly you are staring down the barrel of a production-grade infrastructure, a custom reward economy, and a 2D rendering engine.

That is exactly how [**CSSkill.com**](http://CSSkill.com) was born.

My name is Ole Haugset, and I’ve been writing code for 20 years. My career trajectory followed the classic path: I started in frontend, moved to full-stack, eventually became a Team Lead, and spent my recent years as a System Architect. I spend my days thinking about scalable systems, state management, and architectural patterns.

But CSSkill didn't start with an architectural blueprint. It started as a hobby project with absolutely no clear ambition or roadmap.

### The Spark: Parsing the Chaos of CS2

I play Counter-Strike. And like many players, I was frustrated by the native CS2 demo viewer. It’s clunky, it’s slow, and extracting meaningful, aggregate data from it is a nightmare.

I initially just wanted to see if I could ingest CS2 `.dem` files and map out some basic economy and positioning data. I started tinkering. But the deeper I got into the data structures, the more the "System Architect" side of my brain took over.

I didn't just want a static dashboard. I wanted a tick-perfect 2D web replay viewer. I wanted to mathematically calculate "Untraded Deaths" by measuring the distance between teammates in the game engine. And eventually, I realized that to get gamers to actually engage with this data, I needed to build a fully automated reward economy that pays them in real weapon skins for improving.

What started as a weekend script organically shaped itself into a full-fledged Counter-Strike 2 analytics and rewards platform.

### What is "The Grind"?

While the main CSSkill blog will focus on gameplay tips, economy guides, and platform updates for our users, **"The Grind" is strictly for the builders.** This Hashnode blog will serve as the engineering diary and technical roadmap for CSSkill. Here, I am going to take off the "Founder" hat and put the "Architect" hat back on.

In the coming weeks and months, I’ll be writing deep dives into:

*   **Parsing CS2 Demos:** The headache and triumph of extracting positional data, FOV, and utility trajectories.
    
*   **Rendering 2D replays in the browser:** How we handle state, performance, and timeline scrubbing without locking up the UI.
    
*   **Building a virtual economy:** The architecture behind the Reward Token (RT) system, ledger accuracy, and preventing exploiters from draining the system.
    
*   **From MVP to scalable architecture:** Lessons learned from 20 years of engineering applied to a rapidly scaling gaming SaaS.
    
*   **The roadmap:** What we are building next, the technical hurdles in our way, and how we plan to solve them.
    

### Let's Build

Building a product as a solo dev or small team is a grind. You are writing the frontend, configuring the CI/CD pipeline, managing the database, and trying to market the thing all at once.

If you are interested in game data, web architecture, or just enjoy reading about the realities of bootstrapping a SaaS, hit the subscribe button.

I’ll be dropping our first technical deep-dive next week. Until then, if you want to see the result of this "escalated side project," you can check out the live platform at [CSSkill.com](http://CSSkill.com).
