I just finished my contract position at Electronic Arts. It was supposed to only be for a year, but my team liked my work a lot and found a way to extend my contract by another three months. This is my post mortem reflection on working at EA.
I worked on the UI team as a remote worker on the west coast. Our core team was located in Orlando, Florida but we had team members spread all over the world. We had a hand full of people from Romania, a few people from other parts of Europe, some people from Canada, Las Vegas, LA, and a few other places. It was truly a geographically distributed team. It was a mixed blessing. Most of the team meetings needed to be coordinated around time zones, particularly times which could accommodate west coast time and eastern european time zones. That often meant I had to be awake and ready for stand ups at 8am local time, or even 7am in some cases. I have to admit, I'm a night owl, so usually I would wake up for those meetings with five hours of sleep. I don't know about you, but when I am tired, I have to fight off brain fog and try to sound coherent. Sometimes coffee helps, but I found what worked best is to write up a paragraph or two the night before on what I needed to say, and then I would just read my paragraph out loud to the zoom call. It worked particularly well when I needed to be precise with my descriptions on technical stuff. Most of the time, you could pretty much guarantee that someone somewhere in the world was awake and working. So, for a night owl like me, if I needed to run something by someone, I could reach out to someone on slack in Romania. Or, during the day, I could reach out to someone in Florida. This accessibility was pretty awesome.
The team I worked with at EA was awesome. Everyone was super helpful and supportive of each other, and if you needed help, the responsiveness was usually within minutes. It has arguably been the best team I've had the pleasure of working with in my whole career. When I started my contract, they put me through an on-boarding process and assigned me an on-boarding buddy. The on-boarding process to get your environments setup and running, to find the learning documentation, tutorial videos, and just general undocumented technical knowledge, is all a lot to tackle. The on-boarding buddy is there to help guide you along and keep you from getting blocked. What they don't tell you is that your on-boarding buddy is someone who never goes away, so if you ever get lost, confused, stuck, or blocked on anything, you can reach out at any time and get help. On boarding buddy not online or available? Ask anyone else on the team and you get the same enthusiastic support. I don't know if this culture was unique to the team I was on or if its widespread all throughout EA, but it will be the high bar I measure all future work teams against. I'm a bit sad that I don't get to continue working with such great people.
On the technical side, the staff was full of super smart people too. I often felt that I was the least smart person on the team and that I had a lot to learn from everyone else. It would be tempting to fall into the cognitive trap of imposter syndrome with such a vast array of talent, but I had to remind myself that I too brought my own unique gifts, talents and experience to the team. We had one guy in Romania who was an absolute wizard at HLSL and working close to bare metal on the GPU. He had render doc mastered, knew how to squeeze every fraction of a millisecond of performance out of the GPU, and pretty much was a rendering performance god. Another guy in Romania was also a similar god of low level architecture and implementation of the rendering and sim update sections of the engine. He was also one of the most helpful people on the team (not to diminish everyone else's helpfulness). A lot of the time, engineers would talk and I would hear english words being spoken, but it all sounded like technical gibberish to anyone who wasn't deeply immersed in the particular area. “Runtime data bindings”, “Imperative Render”, “Dynamic state stream”, “Flux capacitor hyper vane tuning”, etc. Trying to keep up with the terminology is tough, especially when people invent new terminology to describe the thing they invented. I can say without any doubt, the engineers working at EA are world class smart. If I was going to complain about anything though, I'd say that sometimes the engineers are too smart for their own good and they'll get in their own way by introducing unnecessary complexity or over engineering things. It's something I try to avoid as well by following the principle of Occam's Razor and the idiom “Let's keep it simple for now, we can always add complexity later”. The trend of over engineering and over complicating things seemed to be a recurring problem for the Frostbite engine (in my humble ape brain opinion). It wasn't overtly obvious, but the problem of over complication presented itself in subtle ways – workflows were more complicated than they needed to be, too much clutter, some weird code hacks, etc. On my end, I did my best to fight this by constantly asking myself “Is this as simple as it can be? Can I remove anything further to simplify this? Does the workflow make sense for a newbie to the system and their expectations?”
I came from a background of working within Unreal Engine 4. When I first started, I thought Unreal Engine was the best game engine in the world (I still do). I couldn't understand why EA would still want to use their own in-house game engine (Frostbite) when Unreal Engine exists and has such generous terms of use and state of the art tech. I initially thought Frostbite was inferior to Unreal Engine, that it was a generation behind in tech, and why would EA continue spending tens of millions to continue funding the further development of Frostbite when they could just use the superior Unreal Engine, pay a 5% royalty, and save tens of millions in engineering costs? Was there anything that Frostbite did better than Unreal Engine? Or, was I just biased to favor Unreal because of my many years of experience in it and I was just generally inexperienced and ignorant about the capabilities of Frostbite? I decided I didn't know enough about Frostbite to make an informed assessment and that I should give it a fair shake. Now, having worked on Frostbite for 15 months, I think both engines are pretty comparable. There are some features in Frostbite which are super awesome and Unreal wishes they could have – like, you can have your game runtime up and running and you can live-edit the code and scene and see the changes happen live in your runtime. There is a lot of other state of the art tech within Frostbite which no other engine has, and I honestly think it puts Frostbite on parity with Unreal Engine. If Frostbite could make their workflows more streamlined and their editor UI less cluttered, it would give Unreal Engine a run for its money. But, let's assume that Frostbite is a little behind Unreal Engine in state of the art tech, and ask the big question “Why would EA want to continue using Frostbite instead of switching over to Unreal Engine?”
I think there's a handful of factors at play here:
1. Frostbite is a legacy engine coming from DICE and the Battlefield franchise. It existed before Unreal Engine 4 was available, so game teams at EA were already invested in using Frostbite for their next launch titles. You almost NEVER switch game engines in the middle of a project.
2. Game developers at EA are very experienced with using Frostbite. Learning a new game engine would have significant ramp up time for a team to get equally proficient. That's a pretty significant cost to the business.
3. EA leadership has invested tens of millions into developing Frostbite. Frostbite is well entrenched. Switching to a different engine would throw all of that investment away.
4. EA doesn't tell their game teams what engines to use, the game teams choose a game engine for themselves. Some teams at EA actually use Unreal Engine! EA will continue supporting Frostbite as long as game teams are using it.
5. Game teams using Frostbite have access to the Frostbite engineering teams. Do they need an engine feature currently not supported by frostbite? Then ask the engine teams to implement that feature (this happened several times on our team). The game engine engineers are there to support the game developers. Using a different engine could mean that dedicated engineering support isn't as responsive, but it could also mean less engineering support is required since an engine is already feature complete.
6. Some of the Frostbite tech is better than anything else publicly available on the market. It's a competitive advantage.
But….. Frostbite is closed source and not publicly available. That means any engine features or supported capabilities need to be developed in-house. Want VR support? You're going to need to build that API yourself and add compatibility with all the hardware devices yourself rather than having a third party help you develop support for their hardware platform. It's kind of a double edged sword.
Overall, I thoroughly enjoyed working at Electronic Arts. They're a great company. I'm sure some people have strong feelings about EA in one way or another, but I can say my experience with them has been overwhelmingly positive. At the end of my contract, my EA manager notified me of a full time opening on the team and suggested that I should apply for it. Me and one other guy applied. I think the other guy was already a full time employee working on another game team and had about 3 years of in-house experience. Between me and him, it was a very close competition, but EA ultimately ended up favoring the candidate with more in house experience. While it's disappointing to me personally, objectively I would have made the same decision and went with the other guy. Thus ends my time at EA.
For now, I am unemployed and looking for what's next in my career. I am leaning towards full time employment rather than more contract work. The uncertainty of my future is surprisingly anxiety inducing.
Thanks for sharing such detailed thoughts. I'm really happy to got such a wonderful experience and I hope you find someone as fulfilling soon!