From Minecraft backends to languages
People sometimes ask whether going from running a Minecraft server to studying Arabic and Spanish was a change of direction. It wasn't. The skills just transferred in ways I didn't expect, and the story starts a couple of years earlier, with a server called KingdomCraft.
What KingdomCraft actually was
KingdomCraft was a multiplayer Minecraft server with around 15,000 users at its peak. It ran a geopolitical roleplay gamemode with provinces, governors, elections, and a full economy. I joined the staff team in 2024 and eventually became Head of Minecraft, which meant I was responsible for pretty much everything that ran on the backend. Moderation, plugin development, infrastructure, version upgrades, community announcements. If it touched the server, I was probably involved.
The war on lag
Every Minecraft server admin knows the real enemy is tick rate. When the server lags, players can't break blocks, mobs freeze, and chat fills with complaints. By summer 2025 the lag had become a running joke in the community. So I started chipping away at it.
I built custom anti-lag configurations, added a RAM garbage collection plugin, and patched a serialization bug in CoreProtect that was causing CraftBukkit memory leaks. I fixed hopper and hopper-minecart bugs across multiple dimensions. Each fix was small on its own, but after a month of patches people started noticing that the server just stayed up longer. Restart times dropped. Crashes became less frequent.
The big move came in August 2025, when I switched the server engine from Spigot to Paper. This was not a small change. Spigot and Paper handle tick processing differently, and the migration meant reconfiguring plugins, testing redstone behaviour, and hoping nothing broke in production. It worked. Restart times dropped to about a tenth of what they were, and the server stabilised in a way that felt almost permanent. A player asked in chat if we'd bought better hardware. We hadn't. It was just better software choices.
Building Syntactical
By September I'd started writing a custom plugin called Syntactical in Java. The idea was simple: a single plugin that handled all the backend operations the server needed, instead of stitching together a dozen third party plugins that didn't quite talk to each other.
Syntactical managed dynamic server configurations, custom commands, prefix systems, tab list displays, and later a full chat placeholder system. Players could type codes like [heart] or [anglican] and the plugin would render them as texture pack icons in chat. I built an /enablearms command that let builders toggle armour stand arms, and a /prefix handler that gave players denomination badges visible to everyone on the server. None of these were massive features. But together they made the server feel cohesive, like someone had actually thought about how all the pieces should fit.
In February 2026 I took the server through a major version upgrade to Paper 1.21.10. That brought new mobs like the Happy Ghast and Copper Golem, new blocks like Firefly Bush and Copper Chest, and new structures like Fallen Trees and Nether Fossils. I ran staging tests first on a separate instance to make sure nothing corrupted, then deployed to production. Zero data loss. That felt like a real win.
Running the community side
Technical work was only half the job. I also led investigations into duplication exploits (a player had built an entire museum out of duped items, which took a full day to audit and roll back), drafted creative mode policies to stop builders crashing the server with data heavy books, and handled the moderation queue when things got messy.
I built a bidirectional Discord to Minecraft chat bridge so players could talk in game chat from their phones. I wrote the announcement posts for every update, managed staff appointments, and set up the ranked choice voting system for community elections. When you're the one who can fix the server at 2am, you also end up being the one who writes the changelog. The two roles blur together fast.
Why I stopped, and what carried over
By early 2026 I was preparing to move to Cairo for university. The server was stable, the plugins were documented, and the team was capable of running things without me. I handed over access and stepped back. I was ready for the next thing.
Arabic turned out to be surprisingly similar to backend work. Both are systems of rules with edge cases you have to memorise. Arabic's root system is a schema: plug a triliteral root into a pattern, apply the right transformations, and you get a word. Get the pattern wrong and the sentence breaks. Debugging a verb conjugation feels a lot like tracing a null pointer through a stack trace.
Running a community is also translation work. You spend most of your time converting intent between people who see the same situation differently. A player reports a bug but describes the wrong thing. A staff member wants a feature but can't articulate the spec. Learning to hear what someone means rather than what they said is the same skill whether you're moderating a Discord server or negotiating a conversation in a language you're still learning.
I still build things. Discord bots, web tools, Blender renders. But the languages are the main project now, and I've found that shipping a sentence in a new language is its own kind of deploy. The stakes are lower. Nobody crashes if I mispronounce a verb. But the discipline, the debugging instinct, and the comfort with slow compounding progress all came directly from running a Minecraft server for 15,000 people.