charlotte!
computer programmer & toys-player
i love playing in niches and intersections between disciplines are basically like a niche farm. i write code and i’m a music producer and i like doing VFX.
right now i’m working on:
- micro-sized web libraries
- cheap full-network indexing for the AT Protocol
- a local-first, realtime-synced password manager
- audio effects & synthesizers
- music visualization tooling
you can find my code at char on github or on lavender.software or at char.lt on tangled.
if you’d like to get in contact (e.g. to respond to a blogpost!), you can email me at charlotte@som.codes.
software
i’ve been programming for most of my life. here’s a selection:
- Paramorphism (discontinued) - a JVM bytecode obfuscator targeting Java/Kotlin.
- Koffee – a programmable JVM bytecode assembler DSL in Kotlin.
- phoebe - a best-effort double-puppeting bridge for Discord and Matrix.
- ssh-lockbox - an auto-deployment solution & store for SSH public keys.
and along the way i’ve fallen into a bunch of different niche specializations:
-
Java bytecode & JVM internals
- i once wrote about convincing the JVM to skip its bytecode verifier
-
JavaScript semantics & V8 engine internals
-
at work, i’ve used
deno_core&rusty_v8to do sandboxed resource-limited server-side hosting of user game code - for personal stuff, i’m a heavy deno user and an occasional deno contributor ^-^
-
at work, i’ve used
-
systems programming against systemd
- systemd’s fdstore is very cool! careful architecture lets you upgrade running software without dropping its important state
- STM32 embedded development (keyboards!)
gamehacking
i used to make money selling a custom Minecraft client and a subscription trainer menu for GTA Online. i also love decompiling and modifying Unity3D games because there’s something about MSIL that activates the Java bytecode part of my brain, but a lot of them are il2cpp now :(
games are a really fun playground because there’s a bunch of emergent behavior to be found in the interaction between systems. like, here’s a demonstration of a fast infinite obsidian glitch in Minecraft, it chains a limit instant block-brekaing exploit into some specific world interaction that repopulates obsidian blocks:
natural languages
i love learning languages as a hobby. i got two for free by birth (English and French) and i also speak conversational Spanish (learned at school) and Korean (self-study). i’d also really like to learn Russian (i can read cyrillic already ^-^) and standard Chinese (i know some characters & some super basic grammar) but i haven’t had the time yet!!