more polish

This commit is contained in:
Charlotte Som 2026-03-20 06:37:38 +00:00
parent 202d50be92
commit fbadae1916
2 changed files with 41 additions and 20 deletions

14
cv.typ
View file

@ -70,12 +70,15 @@ written a multiplayer web game engine in TypeScript (with several interesting ne
as well as a (Git-based) beginner-oriented version control system. as well as a (Git-based) beginner-oriented version control system.
To facilitate prototype art we also experimented with Blender automation and machine learning in production, To facilitate prototype art we also experimented with Blender automation and machine learning in production,
so I've also written & deployed Python / CUDA / ONNX backed services. writing & deploying Python + CUDA / ONNX services.
#divider() #divider()
#event[Game modding / game-hacking][Self-employed][2016 -- 2025][] #event[Game modding / game-hacking][Self-employed][2016 -- 2025][]
Game development & game modding is a very effective entrypoint into programming at large.
I started in 2007(!!) developing ROBLOX games.
- _GTA Online_: C++ (primarily), Rust - _GTA Online_: C++ (primarily), Rust
- _Minecraft_: Java, Kotlin (primarily), Scala, JVM Bytecode - _Minecraft_: Java, Kotlin (primarily), Scala, JVM Bytecode
- _Counter-Strike: Global Offensive_: C++ (primarily), Rust - _Counter-Strike: Global Offensive_: C++ (primarily), Rust
@ -84,6 +87,7 @@ so I've also written & deployed Python / CUDA / ONNX backed services.
In my teens, I used to sell a custom client for Minecraft In my teens, I used to sell a custom client for Minecraft
(5-figure USD revenue from 2016 -- 2019), (5-figure USD revenue from 2016 -- 2019),
and a subscription trainer menu for GTA Online. and a subscription trainer menu for GTA Online.
I find the resulting end-to-end product experience & reverse engineering skills valuable to this day.
#divider() #divider()
@ -108,14 +112,14 @@ The flagship "Splashforce" product was an end-user e-commerce automation suite
for various sneaker sites. My duties included: for various sneaker sites. My duties included:
- `cronet`: Custom patches for & isolation of Chromium's HTTP stack. - `cronet`: Custom patches for & isolation of Chromium's HTTP stack.
(To evade TLS fingerprinting.) (for use as a library to evade TLS fingerprinting in the application.)
- Pairing an Electron (node.js / web JavaScript) frontend to a Go backend. - Pairing an Electron (node.js / web JavaScript) frontend to a Go backend.
- Anti-piracy, reverse-engineer-deterrent releases for the Go backend. - Anti-piracy, reverse-engineer-deterrent releases for the Go backend.
(Code virtualization, `cgo` FFI bindings, etc.). (Code virtualization, `cgo` FFI bindings, etc.).
- Reverse engineering bot protection measures on websites. - Reverse engineering JS & WASM bot protection measures on websites.
- Reverse engineering & circumventing bot prevention measures on Android apps. (Java, Smali, etc). - Reverse engineering & circumventing bot prevention measures on Android apps. (Java, Smali, etc).
]) ])
#pagebreak() /* #pagebreak()
TODO: PAGE 2 TODO: PAGE 2 */

View file

@ -100,27 +100,44 @@
accent: rgb("#870c66"), company_newline: false, accent: rgb("#870c66"), company_newline: false,
title, company, period, location title, company, period, location
) = [ ) = [
#text(1.2em)[ #if company_newline {
#text(weight: "semibold")[#title] grid(
#h(1fr) columns: (auto, 1fr),
#if not company_newline { align: (left + bottom, right + bottom),
text(fill: accent, weight: "bold", size: 0.8em, baseline: -0.125em)[_#[#company]_] box[
} else { #text(1.2em, weight: "semibold")[#title]\
text(fill: accent, weight: "bold", size: 0.8em)[\ #text(0.96em, fill: accent, weight: "bold")[_#[#company]_]
_#[#company]_] ],
} box[
]\ #if period != [] {
#text(1em)[ icon("calendar", shift: 0.18em)
#if period != [] { [_#[#period]_]
}\
#if location != [] {
icon("location")
location
}
]
)
} else {
grid(
columns: (1fr, auto),
align: (left + top, right + top),
box(text(1.2em, weight: "semibold")[#title]),
box(text(0.96em, fill: accent, weight: "bold")[_#[#company]_])
)
v(-0.5em)
if period != [] {
icon("calendar", shift: 0.18em) icon("calendar", shift: 0.18em)
[_#[#period]_] [_#[#period]_]
} }
#h(1fr) h(1fr)
#if location != [] { if location != [] {
icon("location") icon("location")
location location
} }
] }
] ]
#let article( #let article(