char/cv
git clone https://git.t4t.associates/char/cv
fbadae1
main
1# import "layout.typ" : cv , event , article , divider 2 3# show : doc => cv ( 4name : "Charlotte Som" , 5tagline : [Systems programmer, videogame cheat developer, # linebreak () reverse engineer, multispecialist.] , 6links : ( 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), 12doc , 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" ) 2526 == 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 101obfuscated 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 */