I've written quite a bit about Minecraft on this blog. For better or worse, it has defined a large chunk of my life. But there inevitably had to be a time where I'd have to make the transition to a "real" job. Making this adjustment was painful but necessary.
What I find in general is that modding can be excellent at providing a good foundation for your "hard skills" (the act of writing code and designing things), it does make it dangerously easy to not develop the "soft skills" that are so often needed in the workplace. I wish I'd found a post like this before heading down the professional career path, and so I'm immortalizing some of the hard lessons I had to learn.
You add value! #
As a mod developer, you're in a category of people known as non-traditional candidates. This is a diverse category: career changers, parents returning to the workforce, and self-taught programmers. These people all bring their own unique talents and perspectives to the table.
Specifically, what do you bring to the table?
- You can self-direct your work. You can accomplish tasks without being prompted by others, and you have a bias towards action.
- You have practical experience. In some cases, you learned how to build software by yourself, showing that you are agile and can pick up new skills easily.
- You are a creative problem-solver. Mods can improve upon existing systems, or find creative ways to overcome game engine limitations.
- You can interact with communities. You have likely worked with other developers and supported your users in some way.
If you choose the gaming industry, then you additionally bring:
- A deep understanding of the player experience, because your mods build upon a base to add more depth, or correct perceived poor experiences.
- Familiarity with game systems and mechanics, especially if your mods add entirely new game modes to an existing game.
- Experience balancing technical constraints with user enjoyment, because you'll find creative ways to work around limitations of game engines.
Simply put, your experience with modding need not be a liability. In recent years, more companies have begun to understand that diversity can strengthen teams. You are in a prime position to take advantage of this!
Where do you want to work? #
The most "natural" path to advance is to transition from modding to game development. After all, modding entails understanding a lot of industry-specific knowledge. You could easily take the experience you have and apply it to making your own games.
The downside of this is that the gaming industry does not provide a good working environment:
- Work-life balance is poor. "Crunch" is a well-documented phenomenon, working additional hours beyond what a developer is paid for, often resulting in lower-quality work and health issues.
- The industry is unstable: layoffs and studio closures are common.
- Compensation is often lower. While just one data point (and only an approximation at most), Glassdoor cites a median salary of $106,000 for game developers, versus $162,000 for software engineers in the United States. That's more than a 50% difference!
Another path that is available is to translate your experience to other fields outside of the gaming industry. This takes more time and preparation, since you'll likely need to develop a new set of skills to navigate that transition.
I chose to transition into a non-gaming industry for a few reasons:
- I had a desire to understand how the "real world" works. What's more real-world than software that other people depend on for their jobs? My work at Ramp touches not only the lives of accountants but also regular everyday people who need to travel for business.
- I had previous experience with databases, networking, web development, and tackling scalability challenges. At various points in my time in the Minecraft scene, I handled some combination of all of the above, so a transition to working at a scaling startup made a lot of sense to me.
Have a solid foundation #
This is the only section I'm going to devote to hard skills, because if you are an experienced modder, then you have a foundation to build off. The challenge is in developing skills that are industry-relevant and in demand. The good news is that the modding scene actually offers opportunities for this, if you know where to look.
I'll take Minecraft as an example. Disregarding Bedrock Edition, the Java Edition gives away a lot in the title: it's written in Java, and you are able to mod the game using Java (or, in fact, any JVM language you desire). As it turns out, Java is a rather common language used in actual software engineering jobs! You already have the fundamentals you need to learn, say, Spring Framework (a very common Java framework often used for web applications), so you may want to take some time to develop a web application using Spring. In addition, you can leverage this to learn web development using HTML, CSS, and JavaScript.
Even if the modding language of choice isn't commonly listed on a job posting, it can still be applicable to learning another related language. For instance, if you understand Lua, then you already conceptually understand the core of JavaScript, as both languages are multi-paradigm and have prototypical object systems. Also, Lua has had some very large scale real-world applications - for many years, Cloudflare's HTTP reverse proxy logic was partially built with Lua!
You can also work on projects related to the game of your choice in a language that is different from the one that the game is programmed in. At various points in my time in the Minecraft scene, I also made use of PHP (with Laravel), Python (with Django and Flask), Go, JavaScript/TypeScript, and even Rust. One network I worked on (Mineteria) was built on top of Kubernetes, so I also gained experience with that as well.
Now, this comes with some obvious caveats:
- Code standards that might fly for modding may not work in a professional setting. Often, the priority in a game modding setting is just to "get the thing working", which means that you will inevitably have code that is not clean or maintainable by others, or have poor documentation. These things will not fly in a professional setting. As Guido van Rossum, the creator of Python, would put it, code is more often read than written.
- Techniques useful for game development aren't broadly applicable to enterprise applications. For instance, if you work in a garbage-collected language, then you have probably optimized your code to reduce the amount of garbage objects generated and value low pause times. Enterprise applications are often less sensitive to pause time and can afford to generate more garbage. Some of these techniques are even considered bad form in some contexts! The upshot is that in some applications that require low latency, such as high-frequency trading (where shaving off nanoseconds really matters), this can be a competitive advantage.
- You will necessarily have to get out of your comfort zone. The types of applications you're going to work on in a professional context are different, so you will be best served by gaining experience outside of modding. That could be as simple as building a simple web-based tool to help simulate some key game mechanic.
Prepare to have lowered expectations #
Sadly, the median software engineer will be stuck at a large corporation focused primarily on internal CRUD (create-read-update-delete) applications that are obscure but also important enough to necessitate hiring someone to take care of it. This work may not be necessarily creative in nature. In some cases, you're doing this simply to "pay your dues" and set yourself up for greater things. Other employers may not offer a realistic path to advance.
I can give you an actual example from my own life: from 2018 to 2021, I was working on Mineteria. During this time, I built key infrastructure for them (working across many different programming languages), and created my own Minecraft server proxy, Velocity, which was later adopted by Mineteria and countless other Minecraft servers. After leaving Mineteria behind and eventually landing at Ramp, the very first project I was assigned was "create a system to link a personal bank account" - quite the step down from "build out an efficient proxy that speaks the Minecraft protocol"!
The skills I got from my time were still helpful: thanks to previous work, I was familiar with Python, ORMs (although I had to make the transition from working with the Django ORM to SQLAlchemy), Celery (from a previous Minecraft server list project I'd worked on), and PostgreSQL (Ramp's backend database of choice).
Much later on, having the skills needed to read a profile meant that when we had a particularly bad memory leak in one of our applications, I was able to pinpoint it and fix it easily. Over time, too, I established enough of a reputation and track record that I was entrusted to architect and execute upon much larger, more complex projects.
So how can you still be happy while working a day job that might be less exciting? Well, you could still take up modding, but on a smaller scale. Even now, I still occasionally contribute to Velocity or update my existing Minecraft mods for newer versions of the game. You could also take up new hobbies to get your creative energies flowing. For me, due to burnout and having less interest in Minecraft in general, I found that redirecting my creative energies towards writing helped me a lot. If your employer has put you in a position where your job is effectively a dead-end with no realistic path to advance, then you should shake things up and find a new job that can make you happier!
Being in the workplace #
Your company's internal chat is not going to be a Discord voice chat (if it is, I would probably run far away!)
The top priority for anyone transitioning from a modding community to the workplace is to studiously separate your gaming life from your professional life. Gaming communities, particularly competitive ones, can foster toxic behavior that is almost normalized in that setting but would be unacceptable in a professional setting, where inclusivity, constructive feedback, and respect for diverse perspectives are a must.
There are many, many excellent online resources that can dive into way more detail about how to be effective in the workplace than this blog post could ever hope to accomplish. I will describe some broad categories of professional expectations below, how these could be treated in the context of a modding setting (potentially with an example with my own work), and provide resources for you to learn how to act professionally.
Project management #
You may or may not be practicing project management in your work, but it is essential in the workplace, not just to keep yourself organized and make sure you can advance a project, but also to provide a bird's eye view of the status of a project to other stakeholders, outside of updates you provide in writing or by hand.
There are a number of approaches on how to learn project management and apply them to modding. You could go all out and take a free course on how to do project management on a site like Coursera, but often, having a working knowledge of Agile can be sufficient, as many companies utilize Agile methodologies. I won't go into detail about Agile, but consider understanding the Agile Manifesto and putting it into practice yourself. Users of your mods are customers!
You can also leverage tools such as Trello or Notion to be more organized. These tools can help you:
- Break down large features into smaller tasks
- Track bugs and feature requests
- Manage release schedules
- Document design decisions
These tools and techniques can make your modding work more efficient and also provide practical, hands-on experience with professional project management practices.
Professional writing #
Some people in the modding scene may write documentation, but it's often not of the highest quality. Being able to express your ideas with clarity and specificity is important in a professional context, even if you're not going to be a software engineer.
I cannot hope to recreate existing guidance on professional writing, so I will instead refer you to Google's technical writing courses which comprehensively covers this topic. While it is geared towards software engineers and engineering-adjacent roles, there is useful advice in it for everyone. Once you have the foundation, you can begin by providing detailed documentation of how what your mods do and how they work.
Many projects have poor documentation, and one especially low-hanging fruit way to contribute is to improve the documentation. If there's something that trips up newcomers and is difficult to explain, take the time to put yourself in a newbie's shoes and write a guide to help them navigate the troubled waters.
From personal experience, improving my writing skills was one of the most important factors in allowing me to progress at Ramp. Previously, I had never written down important things about my software, or ever committed software design down to paper. Having to learn this habit was tough, as prior to Ramp, I only did this during my college studies! Since then, I rediscovered my strong command of writing and embraced it.
Interacting with coworkers #
Professional relationships require respect and courtesy. While gaming communities often have casual or playful communication styles, workplace interactions require more care. A good rule of thumb: if your 13-year-old cousin would take offense at what you're about to say, it's probably not appropriate for work. Focus on building positive relationships with coworkers through clear, respectful communication. Even when you disagree with others, it's important to handle those gracefully and work towards an acceptable resolution - perhaps one party in the conversation simply lacks context on why the decision makes sense, for instance.
In addition, your coworkers may come from different backgrounds, and you should be sensitive and respectful of those differences. Those different backgrounds bring valuable perspectives to the table, and you'll be expected to work effectively with people of different backgrounds.
From my personal experience, this isn't difficult to do, but your old habits could take some time to shake off. Take advantage of free resources on workplace etiquette and communication. Many universities and online platforms offer professional skills courses. Once I found my bearings, though, I found it easy to establish good rapport with my coworkers, enough to the point where I am something of a "minor celebrity" at Ramp!
Having respect for workplace norms #
In most gaming contexts, there is little etiquette expected. This is absolutely not the case when you are working somewhere else!
Every workplace has its own culture and expectations. This includes:
- Meeting etiquette (being on time, coming prepared, actively listening)
- Communication channels (when to use email vs chat vs scheduling a meeting)
- Work hours and availability expectations
- Dress code and office behavior standards
- Using professional language and tone
The nice thing that you can practice doing at least some of these things while still being involved in the modding scene:
- Run a structured community meeting, if applicable
- Set up "office hours" to talk with anyone who needs help
- Utilize professional communication tools such as GitHub or Slack instead of Discord
- Have a consistent schedule for updates and communication
- Writing professional documentation and release notes
There are many free resources online that can help you understand these societal norms. Consider taking a professional skills course such as one on Coursera and researching typical professional dress codes.
Actually getting a job #
So far, everything that's been discussed so far has focused pn what you are expected to do in the workplace. But how do you actually get a job with a non-traditional background?
I will skip over the essentials of how to apply for a job, as this topic has been done to death by many others. Instead, I want to focus specifically on how people of non-traditional backgrounds can begin the process.
Generally speaking, you have three options:
- Ignoring your modding experience, going to college, getting internships, and then a full-time job after graduating. This works best if you're young.
- Make connections with others who can vouch for your ability.
- Being lucky enough to find an employer that independently values your experience, or is willing to take a chance on you.
I'm not going to cover the first option, simply because this is a well-trodden path. Instead, I'll talk about 2 and offer some advice that can help for 3. This isn't going to be a full guide on how to find a job, perform well in an interview, and understanding offers and whether or not to accept them, as this topic has been done to death by many others.
Building a resume #
There are many resources on how to format a resume, so I won't belabor the point here. However, translating your modding experience to software engineering can be difficult: perhaps poor documentation and record-keeping, working with particularly niche frameworks and languages, and the fact that a life of modding video games is a significant divergence from a typical software engineer's resume which would typically include a number of internships or student jobs prior to obtaining their first initial junior-level position.
Feel free to use my own resume, in particular my experiences with Tebex and Mineteria, as inspiration. Some key advice:
- Try to generalize your experiences. For instance, I took on a number of roles at Mineteria, but I mostly honed in on web development, experience with Java, and work with Kubernetes, as these are the skills most relevant to opportunities outside of the modding scene. If you don't have any direct experience with something an employer wants, discuss analogous, equivalent experiences in language a typical employer would understand.
- Focus on concrete accomplishments. I developed a Minecraft server proxy called Velocity. However, on a resume, instead of noting that I "developed a Minecraft server proxy", I would emphasize that I "built an extensible, high-performance reverse proxy capable of supporting X Minecraft players at a time." This highlights that Velocity is a proxy that just happens to speak the Minecraft protocol, which is a precise high-level description of what Velocity is.
- Emphasize the underlying accomplishments behind your work. Did you fix a particularly bad performance issue in a game you like? Did you use a profiler to examine why it was so bad? Congratulations, you have the unique skill of being able to diagnose and fix performance problems in applications.
- Be ready to explain your unusual background. I was very upfront about my experience being primarily with Minecraft when I interviewed at all my prospective employers! One employer even had someone on the call who quizzed me about certain things related to Minecraft and I provided the best answers I could. They actually extended me an offer, but I declined because Ramp offered me more money.
Networking #
Other developers you work with can be a valuable resource, especially if they are also going down this road. Some people who create mods may already have full-time jobs and can potentially serve as potential job leads by referring you. For instance, through working on a Minecraft component library, I was acquainted with a modder who was also a product manager at Cloudflare, and he referred me for a position working on Cloudflare Workers! This person was willing to vouch for my abilities and show how they apply to a context outside of Minecraft.
You can also pursue more traditional means of networking. Find local user groups for a programming language or technology that interests you. Many people who work professionally have a presence on LinkedIn. Connect with them and get inquisitive about their work!
Ultimately, your goal is to establish connections that help you now and in the future. This is all the more reason to be respectful of others and to embrace diversity.
Finding employers willing to take a bet on you #
This is much harder, since you'll need to start from the very bottom. For most positions, this is equivalent to applying to a job where it's not obvious that you meet the requirements for the job. Therefore, you'll need to start by looking at employers who may be more forgiving to candidates with less experience.
You may need to start with local employers, who will typically focus on basic CRUD applications along with taking on junior maintenance work, and typically pay less. You could also consider contract positions. While they may be less complex than modding projects, these roles provide crucial professional experience and help you build a track record. They're also opportunities to learn how businesses operate, which is valuable knowledge that's hard to get from modding alone.
Humble beginnings mark the career of a lot of software engineers. What matters is using these early positions to learn professional practices, build a network, and demonstrate reliability.
Tying it all together: my experience #
Getting my job #
My last job search was in October 2021. Of the roughly 20 companies I applied to (through recruiters, referrals, or job applications), the most successful leads involved referrals from people who I knew from the Minecraft scene that successfully made the transition to other employment. Of those, the furthest I got was with Ramp, for a few reasons:
- I was referred by a former Ramp employee whose referrals were generally quite successful there. I worked with this person on many projects from 2012 to 2016. This baseline level of trust between Ramp and this former employee, along with keeping this connection alive, was necessary just to get me in the door.
- Ramp likes to find "mispriced" talent: my background was unusual enough that curiosity and the desire to hire someone who could bring something unique to the table led them to seriously consider an obviously neurodivergent Minecraft modder with unusual expertise. This is a bet that has paid off for them: I am often the "Minecraft whiz" being discussed.
- I had strong computer science fundamentals from not only a largely completed college education, but also my prior experience with Minecraft. Ramp's interview process is a practical, and I was able to ace it with ease. I interviewed quite well and made a good impression upon the hiring team.
I chose to accept the Ramp offer as I believed the growth story (in terms of valuation and my career) was robust and that it would provide the best chance of success at establishing myself as credible with future employers.
My first year at Ramp #
At Ramp, I joined at a level that you might call "Software Engineer II" (internally, we call it IC4, being loosely based on Meta's similar ranking system). This reflected that I likely could deliver complete features on my own, unblock myself, and write production-quality code, and overall exhibit sound software engineering fundamentals. I entered this level having extensive "hard skills" experience outside of a formal context, and so progressing at Ramp required me to develop a number of soft skills that I had only partially begun to develop.
The projects I worked on at Ramp in my first year were representative of a newly-hired mid-level engineer at a rapidly-scaling fintech startup:
- Integrate personal bank account linking.
- Finish work on integrating a new bank partner for our payments platform.
- Add the necessary support for representing wires completing more quickly than the days-long timeframes we already supported (ACH and printed checks).
- The biggest project of all: successfully integrate support for international payments through a third-party provider, Wise.
The first three projects primarily dwelled upon my "hard skills": creating DB models, testing software, and getting code reviewed and approved by other engineers. The project scope and requirements were clearly defined, and the work primarily focused on hard skills and being an individual contributor at Ramp. I spent most of my time writing code compared to engaging in inter-team or cross-team collaboration.
The Wise integration was the most complex project of all, because the requirements were poorly scoped and I was expected to take on most of the work of designing the implementation. As part of that, I had to collaborate with other teams at Ramp (product and legal), with an external team (a solutions team in New York and an operations team located in Estonia, so quite the extreme time difference!), write clear documentation for engineers to review, and clearly and timely communicate with other stakeholders. Along the way, I learned a lot about the U.S. financial system, the complexities of integrating with a non-trivial API, and solve challenges that I knew other teams would face. In particular, the need to automatically extract KYC data to provide to other third-party providers prompted me to build a reusable solution that has since been leveraged by other teams. The successful delivery of this complex project was a significant consideration in my promotion to senior software engineer (IC5) in March 2023.
Conclusion #
Making the transition from game modding to professional software engineering won't be easy. You will need to learn new skills, adjust your expectations, and learn to navigate workplace dynamics. However, the fundamental skills you develop while modding - problem solving, coding, working with complex systems - can serve as an excellent foundation for a professional career.
My journey from Minecraft modding to fintech wasn't conventional, but it worked because I leveraged my existing technical skills while actively developing the professional skills I needed. The key is to be patient with yourself during the transition while remaining committed to growth and learning.
If you're currently in the modding scene and considering making the transition, start preparing by:
- Building a solid foundation in widely-used programming languages and tools
- Practicing professional communication
- Writing good, high-quality documentation
- Developing project management skills
- Building a network that can help you bridge the gap
- Being open to starting from humble beginnings
Most importantly, don't view your modding experience as something to hide or minimize - it's a unique part of your journey that provides a unique perspective. The right employer will recognize and value that experience, even if it takes time to find them.
The path forward might not be straightforward, but with dedication and the right approach, you can successfully transition from modding to a professional career in software engineering. Take me as an inspiring example of what you can accomplish!