cv/cv.typ

117 lines
4.5 KiB
Plaintext
Raw Normal View History

2023-07-03 21:35:25 +00:00
#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