~/cowrse

> whoami

cowrse

TODO Name

Full-stack Roblox developer

Luau on the client and server. TypeScript, Python, and Node.js on the web. Summer 2027 Software Engineer Intern candidate.

About

Bio

Software engineer and Computer Science student who has shipped Roblox experiences since 2017, with 54K+ visits combined. I build combat and physics systems, server-authoritative movement, and multiplayer duels in Luau, and I have run my own studios (Bards Playground, Cow Horse Studios, Parasol Co.) as well as developed for XII STUDIO and Type Ashura.

Hireability

Open to Summer 2027 Software Engineer Internships. I own features end to end, from coding and testing to deploying to production, and use agentic coding tools and LLMs in my workflow. Interested in Engine, Infra, and Economy teams.

Download résumé →

Stack

client
Luau · physics · UI · 3D math
server
Luau · DataStores · networking
web
TypeScript · Python · Node.js
“Make it work, make it right, make it fast.”
— Kent Beck

Projects

// client Gameplay, UI, and 3D on the player’s device

Bard’s Fighting Arena

2026

Owner & Lead Developer · Bards Playground

  • Shipped a physics-driven fighting arena that reached 21.6K+ visits.
  • TODO: Built responsive client-side combat (input buffering, hit feedback, camera) on top of Roblox physics.

LuauPhysicsAnimationRemoteEvents

Bard’s Fighting Physics 2

2023

Owner & Lead Developer · Bards Playground

  • Developed a ragdoll/physics combat sequel with 6.3K+ visits, iterating on the original “bard the juju game” (3.2K+ visits).
  • TODO: Describe the physics or 3D-math problem you solved and its measurable impact.

LuauPhysics constraints3D math

RE: Exordium — Parry System

2026

Developer · Parasol Co.

  • Built a latency-tolerant parry system for a combat experience with 3.7K+ visits.
  • TODO: Explain the timing window / lag compensation approach and how you tested it.

LuauReal-time networkingHit detection

// server Authoritative Luau services, data, and cross-server systems

Server-Authoritative Movement

2025

Solo Developer

  • Prototyped server-authoritative character movement with server-side validation to prevent speed and teleport exploits.
  • TODO: Add reconciliation details, tick rate, and bandwidth or latency numbers.

LuauClient-server architectureAnti-exploit

[DUELS!] Brainrot Survival

2025

Holder & Developer · Cow Horse Studios

  • Shipped a survival experience with 1v1 duels that reached 7.7K+ visits.
  • TODO: Describe duel matchmaking, round state machine, and DataStore persistence.

LuauDataStoreServiceMatchmaking

A Horror Game

2017 – 2023

Solo Developer

  • Built and maintained my first published experience, relaunching it and growing it to 9.3K+ visits.

LuaGame design

// web APIs, Open Cloud tooling, and data pipelines off-platform

This Portfolio

2026

Solo Developer

  • Built a statically generated portfolio with procedurally generated Bayer-dithered SVG art and schema.org markup.
  • Pulls project data from public Roblox web APIs and deploys to production on every push through Vercel.

TypeScriptAstroSVGVercelGitHub

TODO Open Cloud Analytics Dashboard

TODO 2026

Full-Stack Developer

  • Developed a Python data pipeline that ingests Open Cloud API data and computes player retention metrics.
  • Used agentic coding tools and LLMs to generate and review unit tests, increasing test coverage to TODO%.
  • Presented findings to TODO (club, team, or class) and deployed the tool to production for TODO users.

PythonTypeScriptNode.jsRoblox Open Cloud APISQL

Code sample

src/server/Services/ProfileService.luauSession-locked DataStore loads with exponential backoff
local DataStoreService = game:GetService("DataStoreService")
local store = DataStoreService:GetDataStore("Profiles_v1")

local MAX_RETRIES = 5

local function loadProfile(userId: number, jobId: string): { [string]: any }?
	for attempt = 1, MAX_RETRIES do
		local ok, result = pcall(function()
			return store:UpdateAsync(tostring(userId), function(data)
				data = data or { coins = 0, inventory = {} }
				-- Refuse if another live server still holds the lock
				if data.lock and data.lock.jobId ~= jobId
					and os.time() - data.lock.time < 1800 then
					return nil
				end
				data.lock = { jobId = jobId, time = os.time() }
				return data
			end)
		end)
		if ok and result then
			return result
		end
		task.wait(2 ^ attempt) -- exponential backoff
	end
	return nil
end

Experience

Founder & Lead Developer · Bards Playground · Cow Horse Studios · Parasol Co.

TODO – Present
  • Founded and ran independent Roblox studios, shipping combat experiences with 39K+ combined visits.
  • TODO: Team size, how you coordinated with artists/testers, and your release process.

Developer · XII STUDIO · Type Ashura (TYPE://ASHURA)

TODO
  • TODO: Systems you owned, how you partnered with cross-functional collaborators (design, art, QA), and outcomes.

Technical Skills

Languages
Lua, Luau, C++, Python, TypeScript, JavaScript / Node.js, C#, SQL
Roblox Platform
Roblox Studio, Roblox Engine API, DataStoreService, MemoryStoreService, MessagingService, RemoteEvents / RemoteFunctions, Open Cloud APIs
Engineering Concepts
Distributed systems, Real-time communication, Client-server architecture, 3D math & rendering, Data processing, Performance profiling, Unit testing
AI & Tools
LLMs, Agentic coding tools, Git, GitHub Actions (CI/CD), Rojo, Wally, Selene, StyLua, TestEZ, Linux

Education

TODO University

Expected May TODO

B.S. in Computer Science · GPA TODO

Relevant coursework: Data Structures & Algorithms, Operating Systems, Computer Networks, Databases, Computer Graphics

Download résumé