char/cv

git clone https://git.t4t.associates/char/cv

Charlotte Sommore polishfbadae1

main
5.2 KiB125 linesraw
1#import "layout.typ": cv, event, article, divider
2
3#show: doc => cv(
4  name: "Charlotte Som",
5  tagline: [Systems programmer, videogame cheat developer, #linebreak() reverse engineer, multispecialist.],
6  links: (
7    (icon: "email", link: "mailto:charlotte@som.codes", text: "charlotte@som.codes"),
8    (icon: "github", link: "https://github.com/char", text: "@char"),
9    (icon: "link", link: "https://char.lt", text: "char.lt"),
10    (icon: "link", link: "https://hackery.site", text: "hackery.site"),
11  ),
12  doc,
13)
14
15#grid(columns: (1fr, 2fr), column-gutter: 1cm, [
16== Writing
17
18#article(title: "Circumventing the JVM Classfile Verifier", date: 2019, url: "som.codes/jvm-force-no-verify")
19#divider()
20#article(title: "Game Science: GTA V's Stunt Jumps", date: 2021, url: "som.codes/gta-v-stunt-jumps")
21#divider()
22#article(title: "Circumventing Cisco Duo's Authenticator App", date: 2021, url: "som.codes/cisco-duo-bypass")
23#divider()
24#article(title: "Extracting API Keys from a Minecraft Launcher", date: 2022, url: "som.codes/mmc-msaclientid")
25  
26== Competitions
27
28#event[Google Hash Code 2020][Google][February 2020][]
29
30Worldwide intractable problem optimization competition. Competed as part of a globally-distributed team of three.
31
32- *UK*: 6#super[th] place out of 406 teams.
33- *USA*: 13#super[th] place out of 619 teams.
34- *Canada*: 3#super[rd] place out of 135 teams.
35- *Worldwide*: 252#super[nd] place out of 10724 teams.
36
37#divider()
38
39#event[Deloitte UK CTF][Deloitte][December 2020][London]
40
41UK-wide infosec competition, organised by Deloitte.
42Participated as a university team of six.
43
44- *Qualifiers*: 10#super[th] place.
45- *London finals*: 7#super[th] place.
46
47#divider()
48
49#event[BLÅHAJ CTF Team][][2021 -- 2022][]
50
51- *Hack-A-Sat 2 CTF*: Organised by the _US Air Force & US Space Force_. Placed 15#super[th] out of 697 teams.
52- *corCTF 2021*: Placed 11#super[th] out of 904 teams.
53
54== Languages
55
56- *English* (native, primary)
57- *French* (maternal)
58- *Spanish* (since 2013)
59- *Korean* (since 2016)
60], [
61== Experience
62
63#event[Multiplayer game technology][WorldQL Corporation][April 2022 -- Present][]
64
65I currently work at WorldQL, where the mission is to reduce the barrier between singleplayer and multiplayer game development.
66
67Here, I've worked on EVM-based transaction processing / smart contracts (writing a hot wallet transaction scheduler in Rust),
68written a multiplayer web game engine in TypeScript (with several interesting netcode paradigms) & backend web services in Rust
69(at one point embedding `deno_core` in a Rust application for sandboxed multitenant user code exec on the server-side)
70as well as a (Git-based) beginner-oriented version control system.
71
72To facilitate prototype art we also experimented with Blender automation and machine learning in production,
73writing & deploying Python + CUDA / ONNX services.
74
75#divider()
76
77#event[Game modding / game-hacking][Self-employed][2016 -- 2025][]
78
79Game development & game modding is a very effective entrypoint into programming at large.
80I started in 2007(!!) developing ROBLOX games.
81
82- _GTA Online_: C++ (primarily), Rust
83- _Minecraft_: Java, Kotlin (primarily), Scala, JVM Bytecode
84- _Counter-Strike: Global Offensive_: C++ (primarily), Rust
85- Unity3D (various): C\# (primarily), .NET MSIL, and C++ (for `il2cpp` games)
86
87In my teens, I used to sell a custom client for Minecraft
88(5-figure USD revenue from 2016 -- 2019),
89and a subscription trainer menu for GTA Online.
90I find the resulting end-to-end product experience & reverse engineering skills valuable to this day.
91
92#divider()
93
94#event(company_newline: true)[Commercial obfuscator for JVM programs][paramorphism.dev (Self-employed)][2017 -- 2022][]
95
96This solo project involved writing the product itself, internal tooling around JVM bytecode to aid debugging,
97and the sales site in SvelteKit (then-_Sapper_, actually).
98
99- _Paramorphism_: Bytecode obfuscator for JVM programs written in Kotlin.
100- _libparamorphism_: Optional native runtime opaque library for programs
101    obfuscated by Paramorphism written in Rust first and then Zig later.
102- _Koffee_: Domain-specific language for Kotlin for Java classfile generation.
103- _Aksara_ (internal): Bytecode assembly language and assembly/disassembly toolchain written in Kotlin.
104- _Katon_ (internal): Bytecode viewer and editor with a GUI written in Rust and interfacing via Java Native Interface to Kotlin (_Aksara_) and Java (_Fernflower_).
105- _Citadel_: An experimental custom-instruction-set VM with a _libparamorphism_-backed native executor (+ some compilers), focusing on self-modifying code.
106
107#divider()
108
109#event["Splashforce"][Force Software LLC][November 2020 -- October 2021][]
110
111The flagship "Splashforce" product was an end-user e-commerce automation suite
112for various sneaker sites. My duties included:
113
114- `cronet`: Custom patches for & isolation of Chromium's HTTP stack.
115  (for use as a library to evade TLS fingerprinting in the application.)
116- Pairing an Electron (node.js / web JavaScript) frontend to a Go backend.
117- Anti-piracy, reverse-engineer-deterrent releases for the Go backend.
118  (Code virtualization, `cgo` FFI bindings, etc.).
119- Reverse engineering JS & WASM bot protection measures on websites.
120- Reverse engineering & circumventing bot prevention measures on Android apps. (Java, Smali, etc).
121])
122
123/* #pagebreak()
124
125TODO: PAGE 2 */