A Full Release, at Nine, in Scratch
The beginning is two years earlier than I tell people

I have said for years that I started programming in late 2018. That is when I started typing code, and it is wrong by two years. The oldest thing I have ever published is a Scratch project called "My Game," dated December 10, 2016, when I was eight. It predates my oldest repository by four months. The profile it lived on is a 404 now, but the seventeen projects under it are still there.
Read the titles in order and you can watch it happen. The first three are animations. Then they turn into games with actual mechanics - a chase, a launcher, a jumper - two of them shipped on the same day in March 2017, which is the burst habit showing up at eight. Then the pair I cannot get over: in August 2017 I shipped "Maze Run Infinite (Prerealease)," misspelled, and three months later "Clicker Full release." A prerelease and a full release, at nine, in a drag-and-drop editor that has no concept of either. My second account went further and put semantic versions in the titles - "Question Studio V. 1.0.0.2" - four components, at eleven, for a thing you cannot install.
Nobody was watching. Seventeen projects over two years drew about fifty views between them, and my best-performing work of that entire era was a Minecraft trivia quiz that fourteen people opened. I kept versioning them anyway.
The names tracked who I thought I was the whole time. MathyCrafter at seven (from accidentally setting my Minecraft username to an old email password), GamerTeach at nine because I was forever teaching my friends about the games I played, then GamerCoder215 at eleven. Gamer to teacher to coder, in three handles, before anyone had read a line of it.
The Honest Origin
"I got into coding because I thought I was smart enough to market and grow a Discord Server that would somehow become profitable."
The text came later, and people assume I was handed it. I was not. My father runs Bright Plum, a Drupal and PHP web shop, and he did not want me going into tech. Not a prohibition and not hostility; he was not going to stop me, and he would provide what I needed. What I got was an environment, not an education - a real codebase, a real client, and a real deployment within arm's reach at an age when most self-taught kids have only tutorials. But the teaching was one framework, in late 2018, and nothing else directly after it.

Across all my repositories my father appears in exactly two, both client work: my aunt's art portfolio, which he stopped wanting to maintain and I have now kept running for seven years, and my grandfather's law practice, which I scaffolded in a single week so he could run it himself. He still edits it.
My first computer was a Mac mini, and its hostname is still sitting in my git history as an author identity. Everything it ever recorded, from September 2019 to April 2020, was work on my aunt's paintings. The first thing my first machine did was catalogue somebody else's art. My early projects sit under the Bright Plum org because I decided they would get more reach there and worked out the transfer myself, which is a twelve-year-old doing distribution strategy with the only brand available to him. Every domain since has been one I bought with my own money: gamercoder215.me, teaminceptus.us for the studio I ran at thirteen, then gmitch215.xyz, .dev, .blog, and .fun.
The Minecraft Awakening
First package, first plugin, first five stars

This is where the record truly begins, and where a pattern gets set that never breaks: I learn by building real, published software, in public, at a pace that embarrasses adults. In March 2021 I pushed nodejs-notebook to npm, my first published package. It reached version 1.2.2, so it saw real iteration, not a one-and-done upload.
Then Minecraft. Within two weeks that April I shipped MoreSurvival, a Bukkit survival plugin, and minecraft.js, a low-dependency API wrapper I wrote like a real library rather than a script, at thirteen. QuantumPen, a packet-level world editor, became my first published plugin on SpigotMC.
The Moment It Clicked
"I got my first 5-star review, and moved forward."
The code was exactly what you would expect from a self-taught thirteen-year-old: single-module Maven builds, copy-pasted boilerplate, a getter or two that returned the wrong field, and commits literally titled "replit updates" because I was building in a browser IDE. It worked. It had zero tests and zero documentation. It was a beginning, and I knew it.
The Craftsman Emerges
Gradle, a 25-version abstraction, and real users

The gap between 2021 me and 2022 me is the largest single-year leap in the record. In one year I went from a kid pasting getters to a developer running open-source projects like an adult, and my commit count went up fivefold. Three things happened at once.
I learned real build engineering. My Maven plugins migrated to multi-module Gradle Kotlin DSL, and Novaconomy grew a 25-version NMS abstraction layer: reflection-based adapters for every Minecraft server release from 1.8 to 1.20. Minecraft's internals are obfuscated and change every version; abstracting across 25 of them is the kind of thing that defeats professional plugin developers.
Then I shipped my best work. MobChip, an Entity AI Library for SpigotMC, wraps Minecraft's native mob-AI internals behind a clean, fully documented public API across 17 versioned adapters. It has 35 test files, CI, a Discord community, and a real Maven repository other developers depended on. At 88 stars it is still my most successful project by a wide margin, and after I stopped maintaining it another developer took it over, which is about the highest compliment an open-source library can get.
Then came the Big 4: Novaconomy, StarCosmetics, PlasmaEnchants, and BattleCards, alongside MobChip the library. By the end of the year a fourteen-year-old was maintaining multiple published libraries, with tests, CI, and versioned releases, that real strangers used. That is not a normal hobby. It is an apprenticeship completing itself.
Building Tools That Build Tools
And GamerCoder becomes gmitch215

Two things defined 2023. First, I stopped building only applications and started building tools that build applications, a taste most engineers never develop and almost no teenagers reach. InceptusNMS is my own documentation-generation engine: a Kotlin parser that reads JSON schema files and produces a JDK-Javadoc-style browsable website, with its own schema validator and template generator. A tool to document other tools.
Alongside it, KotlinMC automated my own distribution: an hourly GitHub Actions job that polls JetBrains for new releases, auto-bumps a Gradle plugin, and auto-publishes to Modrinth. I was fifteen, and I was already building the pipeline instead of running it by hand.
Second, GamerCoder became Gregory Mitchell, then gmitch215. My git display name flipped to my real name across every active repo that summer; the handle followed soon after.
Why I Rebranded
"I was getting older and needed to be more professional. I wanted a name that reflected my identity as a developer, not just a gamer."
The new name is just g plus mitch plus 215, a number I picked at eleven and am refreshingly honest about not caring much about. A teenager building a professional identity, deliberately, ahead of the rest of my life.
Ten Languages, Five Registries
Range, proved in a single artifact

2024 opened with the most advanced thing I ever built in Minecraft, then pivoted hard toward range. SocketMC pairs a server plugin with a client mod over a socket protocol, bridging the two halves of Minecraft development that normally cannot talk to each other. It was the technical capstone of my Minecraft years, and a direct ancestor of edgeport: both are fundamentally about making two machines talk over a socket.
Then I proved multi-language fluency in one artifact. benchmarks is a harness that compiles and runs the same algorithms across C, C++, Go, Java, JavaScript, Kotlin, Kotlin/Native, PHP, Ruby, Rust, and Zig, times them, and plots the results. You cannot fake that; it requires writing correct, idiomatic, comparably-optimized code in ten languages at once.
Published to the Grown-Up Registries
kasciffy and TabroomAPI to Maven Central. TabroomAPI to npm. gitle to the Gradle Plugin Portal. I built gitle specifically so I would not have to keep paying for a hosted repository just to consume my own unpublished libraries.
I also founded Calculus Games, an indie studio, and designed LevelZ, a human-readable file format for game levels backed with parsers in six languages, an IntelliJ plugin, a VSCode extension, and a CLI. That is more completeness than most formats get from an entire company. By the end of the year I had shipped libraries in three package ecosystems and written production code in ten languages. I was sixteen.
Other People's Repositories
Patches upstream, and a support desk I never signed up for
The easy story about a teenager with a lot of commits is that he worked alone. Mine does not hold up to the record. Across four Minecraft years I shipped 29 pull requests into 19 organizations I do not own and filed 91 issues into roughly 45 upstream projects, the first one merged when I was twelve. Some of it is real infrastructure: a SHA-1 bug in raylib that broke on messages longer than 31 bytes, JetBrains Runtime support in GitHub's own setup-java action, Linux ARM added to Doxygen's CI.
It ran the other direction too, and that part is less glamorous and more convincing. Strangers filed 69 issues on my projects and I answered them; 19 of 22 outside pull requests got reviewed and merged. MobChip alone took 13 patches from other people at a 100% merge rate, and I credited every contributor by name in the release notes, every time. One of them, datatags, spent two years pushing code into it. When I stopped maintaining it he forked it as MobChipLite and is still shipping it in 2026, two years after my last commit. Code I wrote at fourteen outlived my interest in it because somebody else had been made an owner of it.
I also lost, in public, repeatedly. Five Paper maintainers overruled me at once when I asked them to restore a method MobChip depended on; I conceded the technical point, wrote the reflection workaround, and shipped. The longer one is the one I would put on a resume if resumes had room. Over nine months in 2023, at fifteen, I took an idea my peers had already rejected, refined it anyway, submitted it as an API change to Bukkit itself, took review from three maintainers including the project lead, threw out my own design and rebuilt it on the API he pointed at, and then found out the objection was architectural rather than cosmetic.
How It Ended, in My Own Words
"It seems this approach is unpopular. I've decided to decline this PR and maybe make a new one overall in the future, perhaps with better implementation."
I withdrew my own patch rather than push something the maintainers did not want. That is the whole open-source loop, and I ran every stage of it before I could drive. One thing governs how all of this should be read: every line of it is pre-AI. I joined SpigotMC in March 2021 and wrote my last Minecraft code in August 2024, so the libraries, the version abstraction, the packet work, the upstream patches, and the arguments all predate the agentic tooling I picked up in 2026. It is the cleanest sample of what I produce unassisted, and it is 4,345 commits across eighteen repositories. The platform got the last word, and I mean it: without SpigotMC I would not be the programmer I am, and it got me into Dartmouth.
Pointing My Superpower at the Thing That Hurts
cmdfx, teaching, and the mission

Three storylines converge in 2025, and this is the year the mission gets discovered and decided. The first is cmdfx, a game engine for the terminal written from scratch in C, begun in January 2025. CMake build, sanitizer harnesses, a hand-rolled assertion library, Doxygen docs, a Homebrew formula, and installers for Windows, macOS, and Linux.
It came sideways from kasciffy, my ASCII-art engine in Kotlin Multiplatform: I needed an excuse to get back into C. This is a demo of it from that January, a clip of an arcade hoop followed by the same scene redrawn as a brightness ramp of plain characters.
I used to call cmdfx my clean control sample. It is not, and I would rather correct that than keep the better story. My editor's own stored chat history puts conversational AI in this project from April 2025 - the first session is me asking why my mutex was interleaving printf output - so 298 of its 465 commits predate any assistance and the rest had it available. The real control sample is bigger anyway and does not need cmdfx to prop it up: 6,850 commits predate my first chat prompt entirely, including every line of the Minecraft years, and 9,683 predate any agentic tool. Three instruments gave three different answers for when I started using AI, I checked the most convenient one last, and the number moved by thousands of commits.
The second is a job. That summer, at sixteen, I taught Java to seventh through ninth graders in downtown Chicago, an hour from home, writing my own curriculum and delivering the lessons myself. The nine-year-old who called himself GamerTeach grew up and actually taught, and it is not a coincidence that this is the same person who wants to study psychology.
The third is The Earth App. In May 2025 I founded the org and began the most ambitious thing I had attempted: a social platform to fight loneliness and the mental-health crisis, built as a five-language microservices architecture. The backend started as a hand-written TypeScript service on Hono and was simply too slow paired with CollegeDB, the sharding router I had pulled out of it. Facing a re-platform, I took my father's recommendation and went to Drupal. That is the only piece of technical advice from him anywhere in this story, accepted on its merits after a measured failure, and it is the seed that eventually grew into Drupflare. I submitted the app to the 2025 Congressional App Challenge in Illinois' 2nd District, and won.

This is where it crystallizes. I am easily drained, and more than anything I want to feel included; in 2025 I decided to point my one real superpower at the thing that hurts. From here on the code has a purpose that is not about code.
It Was the Harness, Not the Model
What actually moved, measured against my own logs

For four years my curve sat near 2,000 commits a year, roughly what a fast human types while also going to school. In 2026 it broke: 7,122 commits in a little over nine months, more than 2024 and 2025 put together. The interesting part is when, because my own stored prompts date it precisely and the obvious answer is wrong.
I had a conversational assistant for thirteen months before anything changed. Across the Copilot Chat era my median month went from 182 commits to 199 - flat. The step came in May 2026, the month the first CLAUDE.md appeared in one of my repositories: 585 commits that month, then 1,033, then 1,361, then 1,773. It was not a better model, and 92% of my prompts were already going to Anthropic. It was the harness: an agent that can run the build, the tests, and the deploy.
The Objection, and Why It Fails
The obvious reading is that agents just split work into smaller commits. My median commit went the other way - from 27 changed lines to 90. The work per commit got bigger, not smaller.
I spent the velocity building the layer underneath. edgeport is a from-scratch TCP library for Cloudflare Workers - SSH, SFTP, SMTP, IMAP, POP3, NATS, MQTT, STOMP, FTP, LDAP, Syslog, and since August Redis - tested against real Dockerized servers, because the platform advertised the capability and nothing maintained wrapped it. One burst put up 104 commits in a day. It is the email library that smoke, my self-hostable support desk, imports, and where I fixed an SMTP MIME header injection bug, which is the defect a from-scratch protocol library is most likely to ship.
That is also how I split the work with an agent, in my own words from that project: I wrapped the connect function around cloudflare:sockets myself, had Claude design the wrappers and protocols, then oriented the tests around real-world recipes. You can outsource the typing. You cannot outsource the understanding. This was the year I closed the old chapters too: I graduated in June, got into Dartmouth, and archived every repository in Calculus Games, Team Inceptus, and LevelZ-File, along with MobChip itself.
A Computer Nobody Has Finished Writing
Drupflare, gmux, and a tool for why things pass here and fail there
On August 9 I started a feasibility spike in a scratch directory to answer one question: can Drupal 11 run on Cloudflare Workers? It shipped as v1.0.0 on September 13, and the organization now holds thirteen repositories and 1,997 of my commits. Drupal 11, with PHP 8.5 compiled to WebAssembly, executing inside a Durable Object, using that object's own SQLite as the database. No VPS, no container, no origin server.
What makes it a real result instead of a stunt is the wall I hit on day two. workerd forbids WebAssembly codegen at request time but permits it during module evaluation, and every published php-wasm build in existence is a dynamic-linking build whose linker synthesizes trampolines at runtime. So extensions can never load, so Drupal's required dom, xml, SimpleXML, mbstring and gd are simply unavailable. A statically linked interpreter was not an optimization; it was a precondition. So I built one, and that is phasm.
Then I made it fit, and two sessions of compression engineering became history overnight. The free plan allowed a 3,145,728-byte compressed worker, so the interpreter travelled as a zstd frame inflated at module scope. On September 4 Cloudflare deleted that limit, replacing it with 64 MiB uncompressed. The correct response is not to mourn the work: any refusal whose reason was bundle size needs re-scoring, not re-refusing. A cached page costs 1 ms of Durable Object CPU, a full uncached render 34 ms against 9.47 ms for native PHP, and cold boot is 1,398 ms.
The Rule That Came Out of It
An absolute CPU figure comes only from cpuTime in wrangler tail on a deployed worker. In-PHP microtime() returns 0 on the edge, and Date.now() inside the isolate once reported 114 ms for a 1,374 ms invocation. Zero is obviously broken; 114 survives review. I reversed four free-tier verdicts in eleven days, and three of the four were the instrument being wrong, not the system.
Most of the repositories stand on their own, including durabledb, which exists only because Durable Object SQLite's real limits are undocumented: 100 bound parameters where local PDO allows 32,766, a 50-byte ceiling on a LIKE pattern, and lossy integer reads above 2^53. Each broke something real before it got written down.
The roadmap argues against its own speed table, and that is the part I care about most: "drupflare has to become more than a faster host, because as a faster host it is not worth building. A 1.21x re-render does not justify a runtime." What justifies it is one question - how much continuously provisioned hardware this makes unnecessary. I measured it on my own bare-metal machine through the processor's energy counter, and the first result cuts against the obvious pitch: PHP in wasm costs the same energy per request as native PHP-FPM, to within 13%. The saving is not in the interpreter. Small-site hosting is bound by memory rather than CPU, so a box packing a thousand sites spends its whole year idle while a Worker draws power only while a request runs, and my page store expires on an edit where a CDN expires on a clock. At twenty million views a month that is 186,371 renders a day against about 25.
The Accounting I Did Not Have To Publish
Every figure is labelled measured, derived or derived (modelled), and "a figure never moves up a tier by being repeated." I will not claim a per-tenant Cloudflare wattage, because I probed a deployed Container by all six routes a Linux process has and found nothing: "there is no counter being withheld; there is no counter." I will not claim a thousand sites retire a thousand servers, because real hosts already consolidate. And the cost table prints the case I lose: one busy site costs $5.15 on Workers against a $5.00 VPS.
The measurements were all on my own sites, so v1.0.3, on October 2, pointed the runtime at other people's software. I pinned 27 production Drupal codebases by commit and drove each through a 13-row capability lane. Fifteen pass all 13 on a local runtime, GovCMS, Thunder, farmOS, Islandora and my own mantle2 among them, and farmOS, GovCMS and Thunder pass on a deployed Worker too, though Thunder's result does not reproduce on every deploy. The pass found 104 defects: 46 in the product, 39 in the lane and its probes, 16 in the native install harness and 3 upstream. Fourteen of the product defects appeared only once deployed. The same release made migration a product - drangler preview copies a live site over read-only SSH, converting MySQL, MariaDB or PostgreSQL and carrying its files, code and configuration - and I bought drupflare.com and drupflare.app.
On October 7 I reopened my own rule that v1.0.3 was the last patch release. v1.0.4 is a proof release, and the roadmap writes its pass conditions before any run: a drangler preview of The Earth App's production server, run twice with no manual steps; an owner patching a deployed site in one click, where a deliberately broken update has to roll back; and an energy experiment that must be published before a "25% less energy per request" sentence is allowed for any class of site. The next day an experiment with the Workers Cache lost. A purge reported success while leaving an old copy in 6 of 26 rounds, and a Durable Object, which is where saves happen, cannot purge at all. It ran on two throwaway free-plan workers, the account read zero Workers afterward, and it cost $0. That closes a mechanism. The goal - answering a public request before the application runs - stays open.
It turned out not to be a project at all. It was a technique, and within three weeks I had applied it twice more. bytebox is Java on Cloudflare Workers: apply a Gradle plugin to a Java workspace and it compiles into a Worker through TeaVM, feeding cartridge, the wasm-interpreter host I had already extracted from Drupflare. tinyimg points the same instinct at images: workerd has no Canvas API, so I wrote freestanding C compiled to a single wasm32 module that decodes, transforms and re-encodes inside the Worker's own CPU budget, at $0.05 per million transformations against Cloudflare Images' $500. Then burrow removed the last requirement. Everything up to it got past the codegen wall by knowing its code at deploy time; burrow runs a guest module that arrives with the request, by not compiling it - an interpreter ships in the bundle and the program becomes data. workforce and bastion made it operable: a fleet library for deployed Workers, and a hardened single-binary environment that runs the whole stack on your own hardware, because workerd by itself "is not a hardened multi-tenant sandbox, and its own repository says so."
On September 19 I published my first paper, sole-authored, on the method underneath all of this: Retargeting Managed Runtimes to Serverless WebAssembly, on figshare and Zenodo under CC BY 4.0 with the artifact pinned to a specific commit. It is published and citable, not yet refereed; I am seeking an arXiv endorsement, and the Journal of Open Source Software asked for six months of public history first, so that resubmission waits until February 2027. Its least comfortable result is the one I like best: a correctly translated regular expression, semantically identical, cost 14 ms on a real JVM and 11,010 ms on the host engine. Semantic agreement is not operational equivalence.
Drupal is the one thing I was actually taught: late 2018, in my father's shop, and nothing else directly after it. It came back at seventeen as his single recommendation, when my TypeScript backend proved too slow. Then at eighteen I took that one tool and did something with it that nobody in that shop asked for or advised on. Every architectural decision here is mine - my father has no commit anywhere in the Drupflare organization, and none in The Earth App. What I was given was one framework and one suggestion.
Drupflare's savings were measured on small, mostly idle sites. The obvious next question is whether they survive on machines that are busy, and I put it to myself in those words: "is this a strong product or a fever dream? and if it is the latter, what prevents it from being the former?" Then I bounded it so it could actually be answered. No Containers, no partial serverless; "the testable primitive is one traditional cloudflare worker."
gmux is a real Linux kernel - not a syscall shim over another kernel - running inside a single Worker deployment, each machine a Durable Object, on the free plan. A day and a half after the first experiment it was public and reproducible: a kernel boots to a BusyBox shell in a 476 ms median, fork works from unmodified C programs, dlopen works, a 1 GiB pipeline finishes exactly across five free-plan events, and a whole booted machine checkpoints mid-job, survives a forced eviction, and restores exactly. Unchanged x86-64 binaries - BusyBox, coreutils, bash, sqlite3, curl - match native Linux on 117 of 117 transcript lines through my translator.
The design was decided by a deployment, not a theory. The ceiling on a running machine turned out to be task count, not CPU: the kernel fork gives every task its own instance of about 2.7 MiB, boot alone creates 48, and the machine died silently after roughly ten more processes while still reporting the event as ok. The kernel has five mutable globals, so now every task runs on one instance and I swap those five words at each context switch. Between October 2 and 4 the work moved from single experiments to batches. One run lasted 12.3 hours under a Sonnet coordinator and four Sonnet lanes with my own session idle, and spent $251.43 of a $337.50 limit that I wrote down beforehand. It produced the first inbound connection into a machine: an unmodified BusyBox httpd serving behind the site, with response bodies equal to native Linux in 6 of 6 cases.
The Rule Every Measurement Confirmed
"Preserve the abstraction, remove everything the abstraction does not require." Every large win so far deleted work rather than speeding it up: an interrupt in place of polling took idle host wakes from 13,588 a minute to under 300; exec stubs in place of whole executables in memory made fork plus exec 3.4x faster; resumable frames in place of Asyncify took the checkpoint tax from 63% down to nothing measurable.
I keep three claims apart, and I am strict about it, because this is exactly where a demo gets mistaken for a result: compatibility (same observable output), resource equivalence (comparable CPU, memory and energy), and negative optimization (work that no longer happens and nothing notices). A shell prompt is none of the three. Booting is none of the three. Eliminated is also not the same as moved - Linux's TCP stack disappearing because Cloudflare terminated the connection lowers my CPU, but the network processing still happened, so it does not count. My own sensitivity table prints the rows where gmux loses: on a host already running at 50% with nothing eliminated, it costs 10% more. And the v1 bar has grown instead of narrowing: twenty-eight named workloads, from compilers and databases to Kafka and 70-billion-parameter models, each held to a speed ratio of at most 1.0 against native Linux on every run. The translated x86-64 path ran CPU-bound programs 99 to 331 times slower than native in the September table, and one hand-picked block has since reached 5. That is the distance, measured instead of guessed.
In October I started Drift, which takes the question every developer asks of a failing build - why does it pass here and fail there - and makes it a tool. drift capture records an environment as a hashed capsule, drift diagnose ranks what differs between a passing run and a failing one, and drift verify re-derives every count and verdict from the archived case alone. It is Kotlin Multiplatform, like kasciffy, with 88.4% of its lines in common code. Its second product is a portability atlas of 38 small programs recorded on 13 Kotlin targets, of which 23 print different output on at least one. I published the weak result next to the strong ones: on the 41 development scenarios with a known cause, the right cause ranks first in 19 where random order expects 15.2 (P = 0.034), top-3 is not significant (P = 0.37), and the ranking weights are set by hand.
What all of it proves is one claim, tested repeatedly: a serverless platform is a general-purpose computer that nobody has finished writing the runtimes for.
Build Software So People Feel Less Alone
CS and Quantitative Social Science, aimed at the problem

This is the payoff, and it stopped being a prototype. The Earth App is live in the app stores at v1.0.3, settled into four surfaces that each do one job: a Drupal 11 API for durable state, a Cloudflare Worker for the edge, a Nuxt web app, and a native iOS and Android app. 732 test files across the services that carry a suite. CollegeDB, my second-most-starred project at 32 stars, was extracted straight out of it and published to npm.
Then I compiled the whole mission down into one small app. recess says "Go Outside." A few prompts a day, filtered by clock, season, weather, and what you have already done. No server. No account. No competition. No social graph. An on-device CLIP model, sentence embedder, and Whisper check the nudges; nothing is uploaded, ever. The points buy nothing, because there is nothing to buy. I grew up inside engagement mechanics; I built the opposite on purpose.
I also went back to teaching for a second summer, and almost none of my plan survived. Java was too slow, so I pivoted to web design, then CodeCombat, then an Intro to AI unit. Half the class finished the final project, and half of those were pasted out of ChatGPT. I am presenting that unsoftened, because the failure mode is the research question.

What Two Summers Taught Me
"Developers have a problem-solving mindset; it becomes difficult for us to recognize when it shouldn't be us who solve the problem."
My interest in mental health is not academic. I am that same self-aware, easily-drained, wants-to-be-included kid, deciding to point my one real superpower at the thing that hurts. That is why I am majoring in Computer Science at Dartmouth with a Quantitative Social Science minor, keeping psychology for its research methods and sociology as the social lens, aimed at the problem rather than at a job title. I moved into Hanover on September 3, the last of my friends to arrive, and did not stop shipping: the three weeks around the move and my first week of classes carry 1,378 commits and two new runtimes. I call myself the world's okayest developer. It is a good joke, and it is wrong. You only really need one or two languages to be successful; I learned ten because I had a reason to. It shows in every commit.
