117 lines
4.5 KiB
Plaintext
117 lines
4.5 KiB
Plaintext
|
#import "layout.typ": cv, event, article, divider
|
||
|
|
||
|
#show: doc => cv(
|
||
|
name: "Charlotte Som",
|
||
|
tagline: "Systems programmer, videogame cheat developer, reverse engineer, multispecialist.",
|
||
|
links: (
|
||
|
(icon: "email", link: "mailto:charlotte@som.codes", text: "charlotte@som.codes"),
|
||
|
(icon: "github", link: "https://github.com/char", text: "@char"),
|
||
|
(icon: "link", link: "https://som.codes", text: "som.codes"),
|
||
|
(icon: "link", link: "https://hackery.site", text: "hackery.site"),
|
||
|
),
|
||
|
doc,
|
||
|
)
|
||
|
|
||
|
#grid(columns: (1fr, 2fr), column-gutter: 1cm, [
|
||
|
== Competitions
|
||
|
|
||
|
#event[Google Hash Code 2020][Google][February 2020][]
|
||
|
|
||
|
Worldwide intractable problem optimization competition. Competed as part of a globally-distributed team of three.
|
||
|
|
||
|
- *UK*: 6#super[th] place out of 406 teams.
|
||
|
- *USA*: 13#super[th] place out of 619 teams.
|
||
|
- *Canada*: 3#super[rd] place out of 135 teams.
|
||
|
- *Worldwide*: 252#super[nd] place out of 10724 teams.
|
||
|
|
||
|
#divider()
|
||
|
|
||
|
#event[Deloitte UK CTF][Deloitte][December 2020][London]
|
||
|
|
||
|
UK-wide infosec competition, organised by Deloitte.
|
||
|
Participated as a university team of six.
|
||
|
|
||
|
- *Qualifiers*: 10#super[th] place.
|
||
|
- *London finals*: 7#super[th] place.
|
||
|
|
||
|
#divider()
|
||
|
|
||
|
#event[BLÅHAJ CTF Team][][2021 -- Present][]
|
||
|
|
||
|
Casual infosec competition team. Since I joined:
|
||
|
|
||
|
- *Hack-A-Sat 2 CTF*: Organised by the _US Air Force & US Space Force_. Placed 15#super[th] out of 697 teams.
|
||
|
- *corCTF 2021*: Placed 11#super[th] out of 904 teams.
|
||
|
|
||
|
== Writing
|
||
|
|
||
|
#article(title: "Circumventing the JVM Classfile Verifier", date: 2019, url: "som.codes/jvm-force-no-verify")
|
||
|
#divider()
|
||
|
#article(title: "Reverse Engineering GTA V's Stunt Jumps", date: 2021, url: "hackery.site/writing/gta-v-stunt-jumps")
|
||
|
#divider()
|
||
|
#article(title: "Circumventing Cisco Duo's Authenticator App", date: 2021, url: "som.codes/cisco-duo-bypass")
|
||
|
#divider()
|
||
|
#article(title: "CyberDiscovery's 'Valhalla'", date: 2019, url: "hackery.site/writing/cyberdiscovery-valhalla")
|
||
|
|
||
|
], [
|
||
|
== Experience
|
||
|
|
||
|
#event[Multiplayer game technology][WorldQL Corporation][April 2022 -- Present][]
|
||
|
|
||
|
I currently work at WorldQL, building technology to reduce the barrier between singleplayer and multiplayer game development techniques.
|
||
|
|
||
|
The work is varied and has involved machine learning models, image processing pipelines, high-performance networking software, and 3D programming.
|
||
|
|
||
|
I mainly work with *Rust*, *TypeScript*, *Python*, *PyTorch*, *CUDA*, and *ONNX*.
|
||
|
|
||
|
#divider()
|
||
|
|
||
|
#event[Game modding / game-hacking][Self-employed][2016 -- Present][]
|
||
|
|
||
|
- _GTA Online_: *C++*, Rust
|
||
|
- _Minecraft_: *Java*, Kotlin, Scala, JVM Bytecode
|
||
|
- _Counter-Strike: Global Offensive_: *C++*, Rust
|
||
|
- Various Unity3D: *C\#*, .NET MSIL, C++ (for `il2cpp` games)
|
||
|
|
||
|
Professionally, I used to sell a custom client for Minecraft
|
||
|
(5-figure USD revenue from 2016 -- 2019),
|
||
|
and a subscription trainer menu for GTA Online
|
||
|
(4-figure annually recurring USD revenue until 2020).
|
||
|
|
||
|
#divider()
|
||
|
|
||
|
#event(company_newline: true)[Commercial obfuscator for JVM programs][paramorphism.dev (Self-employed)][2017 -- 2022][]
|
||
|
|
||
|
Java bytecode is one of my specialist areas.
|
||
|
|
||
|
Involved writing the product itself and internal tooling around JVM bytecode to aid debugging.
|
||
|
Working primarily with *Kotlin* and *Java*.
|
||
|
|
||
|
- _Paramorphism_: Bytecode obfuscator for JVM programs written in *Kotlin*.
|
||
|
- _libparamorphism_: Optional native runtime opaque library for programs
|
||
|
obfuscated by Paramorphism written in *Zig* and *Rust*.
|
||
|
- _Koffee_: Domain-specific language for *Kotlin* for Java classfile generation.
|
||
|
- _Aksara_ (internal): Bytecode assembly language and assembly/disassembly toolchain written in *Kotlin*.
|
||
|
- _Katon_ (internal): Bytecode viewer and editor with a GUI written in *Rust* and interfacing via *Java Native Interface* to *Kotlin* (_Aksara_) and *Java* (_Fernflower_).
|
||
|
|
||
|
#divider()
|
||
|
|
||
|
#event["Splashforce"][Force Software LLC][November 2020 -- October 2021][]
|
||
|
|
||
|
At Force Software, I was a "Software developer and strategy coordinator".
|
||
|
The flagship "Splashforce" product is an end-user e-commerce automation suite
|
||
|
for various sneaker sites. My duties included:
|
||
|
|
||
|
- `cronet`: Custom patches for & isolation of Chromium's HTTP stack.
|
||
|
(To evade TLS fingerprinting.)
|
||
|
- Pairing an Electron (node.js / web *JavaScript*) frontend to a *Go* backend.
|
||
|
- Anti-piracy, reverse-engineer-deterrent releases for the *Go* backend.
|
||
|
(Code virtualization, `cgo` FFI bindings, etc.).
|
||
|
- Reverse engineering bot protection measures on websites.
|
||
|
- Reverse engineering & circumventing bot prevention measures on Android apps. (*Java*, *Smali*, etc).
|
||
|
])
|
||
|
|
||
|
#pagebreak()
|
||
|
|
||
|
TODO: PAGE 2
|