Hey. I'm a software developer experienced in designing and building distributed systems. I've been working on a MMORPG that uses Elixir for the backend. This project has been done mostly out of self-interest and curiosity. Currently the game has some players and fans, with servers located across multiple regions.
Prior to this I was a backend developer at a financial services start-up that specialized in implementing payment solutions for non-profit companies. In this role I wore many different hats. I did Data Engineering work in the form of designing schemas and building PCI-compliant data pipelines for use in analytics (DynamoDB, AWS Lambda, AWS S3, AWS Athena). I also built out several integrations to different CRM + ERP platforms. Furthermore I was responsible for the company DevOps strategy and architected a multi-AWS account set-up + CI/CD pipeline for all company infrastructure deployments.
I'm open to any intermediate backend or fullstack developer roles. I have some interest in working within the games industry, so if you have any roles there, I would also be interested. Through my work on the MMORPG in elixir, I've gained considerable experience in designing and implementing AI-Actor architecture + Hierarchical Task Networks for autonomous agents. Technical interests include: low latency distributed systems, systems analysis, signal processing, and graphics programming.
In the case of Call of Duty: Black Ops 1. Thee matchmaking + leaderboards system was implemented by DemonWare (3rd party) in Erlang.
Erlang actually has good enough performance for many types of multiplayer games. Though you are correct that it may not cut it for fast paced twitch shooters. Well...I'm not exactly sure about that. You can offload lots of expensive physics computations to NIF's. In my game the most expensive computation is AI path-finding. Though this never occurs on the main simulation tick. Other processes run this on their own time.
The biggest hurdle to a game server written entire on the BEAM is the GC. GC pauses just take too much time, and when you need to get out (for example) 120 updates per second, you can't afford it. Even offloading stuff to C or C++ does not save you, because you either have to use the GC, do a copy, or both.
Game servers typically use very cheap memory allocation techniques like arenas and utilize DOD. It's not uncommon for a game server simulation to be just a bunch of arrays that you grow, never shrink, and then reset at the end of the game.
Good point. Yeah I guess it wouldn't cut it for any fast-paced twitch shooter. Especially with a 120 update per second deadline. A non-deterministic GC pause could have disastorous effects, especially in a tense shootout. I don't know much about GC theory but the GC in BEAM is per process and heap-based? I'm not sure exactly what that entails, but can you not structure the main simulation process to take advantage of this fact?
I find myself interested in developing multi-player simulations with more flexible deadlines. My MMO runs at 10 ticks. And its not twitch-based. So the main simulation process can have pauses and it wouldn't have a big impact on gameplay. Though this has never occurred.
As long as: (tick process time) + (send update to clients) + (gc pause) < 100ms, everything is fine?. (My assumption).
Btw what does DOD mean? Is it Data on Demand? Since my game is persistent I can't reset arrays at some match end state. So I store things either in maps on the main server process or I store it in the dedicated client process state (can only be updated via server process).
I am currently doing this! Working on an MMO game server implemented in Elixir. It works AMAZING and you get so much extra observability and reliability features for FREE.
I don't know why its not more popular. Before I started the project, some people said that BeamVM would not cut it for performance. But this was not true. For many types of games, we are not doing expensive computation on each tick. Rather its just checking rules for interactions between clients and some quick AABB + visibility checks.
As someone obsessed with Networking and Networking Topology I am so so fascinated by analog telephone networks. Just the idea of long-distance connections being made via physical wires connecting at switches by human operators feels so raw. I can't even imagine such a thing. When I was younger analog telephone was being phased out. I still remember my dad having to go buy calling cards at convenience stores so he could make long distance calls back home. And then one day there were no more calling cards.
I can imagine lots of lessons learned from telephone networking helped shape ideas around computer network design.
There is no indication of being in a bubble when you're actually in one. Its only after the bubble pops do people recognize it in hindsight. Otherwise there would be no bubbles and we wouldn't see large institutions fall for this crap.
What is a credible indication? Who is credible? Its all subjective. Its possible to fool yourself endlessly when financial incentives are involved. The banks did it with mortgages.
Its not a good argument against him. I read his articles and he is absolutely correct about the state of things. Predicting the crash is a fools errand. I don't use that as a argument to discredit what he actually writes regarding the raw economics of the AI industry.
I say this as someone who has been holding NVDA stock since 2016 and can cash out for a large sum of money. To me its all theoretical money until I actually sell. I don't factor it into financial planning.
You don't see me being a cheerleader for NVDA. Even though I stand to gain a lot. I will still tell you that the current price is way too high and Jensen Huang has gotten high off his own supply and "celebrity status".
After all, we all can't buy NVDA stock and get rich off it. Is it truly possible for all 30,000+ NVDA employees to become multi-millionaires overnight? That's not how capitalism works.
I am all against bubbles and irrational valuations etc. but I think in this case the prospect of future growth was fully justified. There are never guarantees, but Nvidia's price went up 10x or more in three years and e.g. their PER stayed mostly flat. But their PER of 50 three years ago would be 5 today, which would be extremely undervalued. I would say the "market" got it correctly this time.
I don't care for personalities. You want to mark him as a grifter but is that just an emotional response? I have not bought anything from Ed, I don't subscribe to his newsletter, I don't know much about him beyond visiting his website every few weeks and reading the free articles. He does not sell me vitality pills or coffee mugs. The only soliciting he does is his paid sub stack.
But it goes both ways? Because AI promoters are also spreading FUD. That's how they make money. Because their livelihoods are tied to this technology and all the valuations. So is spreading FUD for you just a condition on whether or not you agree with the person?
If there is any FUD, it is feom other side. No one is scared after they read Zitron article, most are bored because they are dense to read.
But people are literally scared ai will destroy all the jobs after reading articles about how it will. Companies scared not to use ai whether it makes sense or not just to not miss out is where FUD is.
I'm hitting 2 years of unemployment in a month. Its somewhat intentional, the day after I became unemployed (I quit) I started to learn Elixir and began work on building a MMO-type game (this was unplanned). Why? Because I like distributed systems programming. I didn't expect to still be working on it 2 years later. Honestly there was no plan or expectation. I got sucked into this project and it was better than having to look for a job. Its fulfilling and intellectually stimulating. The game has public playtests and I have some interested players.
But now I'm hitting 2 years and the money is starting to dry up so I need to find work again. I always thought working on this type of project would be a win-win for finding work again, but it hasn't helped much. It may even be a hinderance. Employers/Recruiters don't take it seriously or see it as some exotic work experience. I try to tell them - Distributed Systems...the concepts are the same wherever you go. No dice. I'm on the younger side and have 3 years of professional experience at a payments startup doing backend + devops + AWS. Sometimes I wonder if I screwed myself out of the job market. I'm seen as a Junior Dev with a 2 year work experience gap.
I cope by staying in shape. I have a good routine and I even got into swimming over the past year! I think if it wasn't for these activities I would've fell into despair some time ago.
A tip about independent projects on a resume. Put yourself as an employee, a hired contractor, or just a technical co-founder. Don't mention that you're the solo or main founder, unless it's a far past project. I've learned the hard way that regardless of what they may say about looking for autonomous, free thinking, resourceful, self-starters, basically all the qualities of an entrepreneur, employers balk at the label. Some will reject a good profile if they don't feel that you'll be around for more than 2 years, even though many of their recent hires are gone shortly after a single year.
List what the technical challenges of the projects were, what its promoters expected, and how you addressed everything. Don't let entrepreneurial merits overshadow technical ones, especially if you're not after a position like product manager in a company that truly understands how to employ entrepreneurs.
Another way to think about it is that the perception that someone else took a risk on you seems more valuable to employers than you being crazy enough, audacious enough, or courageous enough to dare take on life.
My game is both "small" and "large" in scope at the same time. Its large in the sense that its a Multiplayer Online Game. But the scope of the gameplay is rather limited. I'm not trying to make a full-out MMORPG with all the content expected of one. And that was never my intention. Its an MMO in the sense that the server architecture can support a lot of players and AI units in the world.
Yet I feel like I get wrongly misjudged as a delusional person trying to make a full-out MMORPG. No my game doesn't have a focus on questing, professions, or theme-park areas and raids. People in this industry are too quick to Pidgeon-hole you into existing game genres when you may be trying to do something new entirely.
I have a playable demo, some interested players who provide feedback in discord, etc. The game mechanics started simple but have gotten more complex with each update. A lot of work is spent in improving the AI and making them behave "smartly". I pay for server hosting and manage the servers. Its just me. But it feels like I don't even get my resume looked at when I'm applying to jobs in the industry. Because I don't have any prior experience?
I'm finding that dedicating yourself to working on your own game can be a detriment to finding an actual job in the industry? It feels like employers are wary about your intentions and whether or not you will stick around.
Employers also don't seem to take home-grown experience seriously? Even if you know more about the niche side of things like networking, graphics, AI programming. If you don't have exact experience in whatever tools/framework they use (UE blueprints, Unity, etc), they think you won't be a good fit. Even though tools are just tools and concepts are more important.
>> dedicating yourself to working on your own game can be a detriment to finding an actual job in the industry
That's why I say to make small games that already exist. There's no need to even innovate, you're learning. As soon as it's "your game" the focus is elsewhere and the scope usually gets out of hand. Nothing wrong with showing an original idea, but is it finished and polished?
>> employers are wary about your intentions and whether or not you will stick around
I guess it depends on what the person is showing. If what they show is some big design for a game they want to make and some unfinished pieces of code relating to that that doesn't inspire the confidence that they can finish the work, that they can commit and see it to the end.
>> If you don't have exact experience in whatever tools/framework they use (UE blueprints, Unity, etc), they think you won't be a good fit.
I personally think that's a huge mistake the industry is doing. I have seen it and agree with you that those are tools, and they change often. Being (or only hiring) Unreal programmers will limit you
It is total quackery. When you zoom out in these discussions you begin to see how the AI yappers and their methodology is just modern-day alchemy with its own jargon and "esoteric" techniques.
See my comment here. These new context engineering techniques are a whole lot less quackery than the prompting techniques from last year: https://news.ycombinator.com/item?id=44428628
The quackery comes in the application of these techniques, promising that they "work" without ever really showing it. Of course what's suggested in that blog sounds rational -- they're just restating common project management practices.
What makes it quackery is there's no evidence to show that these "suggestions" actually work (and how well) when it comes to using LLMs. There's no measurement, no rigor, no analysis. Just suggestions and anecdotes: "Here's what we did and it worked great for us!" It's like the self-help section of the bookstore, but now we're (as an industry) passing it off as technical content.
Remote: Yes. Also open to hybrid and in-person
Willing to relocate: Yes.
Technologies: Elixir, C++, C, Node.js, Godot Game Engine, AWS
Résumé/CV: (resume): https://drive.google.com/file/d/1Zaa-fiZmRCSxHq30d-6mzguWUXj... (linkedin): https://www.linkedin.com/in/XXXXXX/ (available upon request)
Email: XXXXXXXXX (removed due to receiving spam)
Hey. I'm a software developer experienced in designing and building distributed systems. I've been working on a MMORPG that uses Elixir for the backend. This project has been done mostly out of self-interest and curiosity. Currently the game has some players and fans, with servers located across multiple regions.
Prior to this I was a backend developer at a financial services start-up that specialized in implementing payment solutions for non-profit companies. In this role I wore many different hats. I did Data Engineering work in the form of designing schemas and building PCI-compliant data pipelines for use in analytics (DynamoDB, AWS Lambda, AWS S3, AWS Athena). I also built out several integrations to different CRM + ERP platforms. Furthermore I was responsible for the company DevOps strategy and architected a multi-AWS account set-up + CI/CD pipeline for all company infrastructure deployments.
I'm open to any intermediate backend or fullstack developer roles. I have some interest in working within the games industry, so if you have any roles there, I would also be interested. Through my work on the MMORPG in elixir, I've gained considerable experience in designing and implementing AI-Actor architecture + Hierarchical Task Networks for autonomous agents. Technical interests include: low latency distributed systems, systems analysis, signal processing, and graphics programming.
reply