Unity In Scotland

Unity in Scotland
Unity Life
Published in
10 min readNov 9, 2021

Unity is a truly global company — we currently operate in more than 50 locations around the world, and every day we interact with colleagues across our locations as we work together to deliver for our customers.

At Unity in Scotland, we are rapidly growing a group of teams that are working together on a set of complementary features as part of the Unity Gaming Services platform. The teams in Scotland are based primarily in our Edinburgh and Dundee offices. Our Edinburgh location has recently become a hiring hub, meaning we will see more teams and projects coming to Scotland soon, which is very exciting.

Unity Gaming Services is a new platform we are developing to make it easier for developers and studios to build and run live games. We provide a package of tools and services that developers can leverage to solve common problems, allowing them to focus on making the best games possible. For example, if a developer needs to add an economy to their game that they manage on the fly, they can simply drop in our economy solution and avoid the effort and risk of building it from scratch themselves.

In this blog post, some of our amazing employees share their experiences of working at Unity Scotland.

Emma & Aperture

Aperture logo

I’m Emma, a Frontend Engineer working within the Aperture team. You might think, ‘why is the team called Aperture?’ Well our team are the custodians of a service that is known internally as Portal. So, in keeping with the video game theme, we took our name from the Portal game series where Aperture Science created the classic portal gun.

The team is made up of a mix of Full Stack, Backend and Frontend Engineers. For the last year we’ve been working on the maintenance and migration of the deltaDNA analytics product into the Unity Dashboard platform. This is so that we can give our users a more unified experience across all the Unity service offerings.

We use all sorts of things in our tech stack, from Java, Kotlin and Scala for our backend to Backbone and React for our frontend. As we have been working with a stack we are looking to migrate users off, some of our challenges have been balancing maintenance and improvements with fast migration choices. deltaDNA still has a heavy user base, so all our decisions have had to be backwards compatible, non-breaking changes. However, since we have a lot of very active users, we are able to get user feedback on what we ship. I’ve personally found this to be a very rewarding experience.

It’s also been pretty exciting for our team to come up with interesting migration strategies, such as building new kotlin microservices and transitioning some of the functionality out of our monolithic system. There is nothing so satisfying as deleting old code. The next phase for our team is to start building new features for the Unity Dashboard, centred around “Game Health”.

Keir & Mesa

Mesa logo

I’m Keir! A Senior Software Engineer working within the Mesa team. At the time we chose our name we were working very closely with the Aperture team and decided to take inspiration from their Portal / Half Life theme. We decided to name our team after another fictional organization from those games — Black Mesa.

Mesa works primarily on backend services, as well as managing ingestion pipelines for incoming data. Most of our services are written in Kotlin/Java and deployed into Kubernetes. The main challenges our team faces relates to de-coupled scalable microservice architecture.

Keir from the Mesa team
Keir from the Mesa team

Our most recent work with Push Notifications requires large amounts of Push Notifications to be scheduled ahead of time, as well as using metrics and cohorts to evaluate which of a game’s millions of players should receive a notification for a campaign. At each step in the stack, the services are able to freely scale horizontally, removing bottlenecks and ensuring Push Notifications are sent on time.

One of the most exciting parts about being on the Mesa team is that the team is very self-reflective, and we are always looking for better ways to achieve our goals in terms of technology used, our approach, and ultimately delivering value to our customers. We iterate frequently on parts of our services that could be improved, increasing maintainability and engineering health.

One of Unity’s values is “Best Ideas Win”, and in Mesa I think we really live this value day to day. It’s always exciting to hear everyone’s thoughts and ideas and it is really valuable to bring our different backgrounds and experiences to solve problems the team is tackling.

Our team has now created two complex decoupled microservice systems, and I’m looking forward to seeing how we can apply all our learnings onto the next one.

The Mesa Team at a recent lunch meetup on The Meadows in Edinburgh
The Mesa Team at a recent lunch meetup on The Meadows in Edinburgh

Tim & Innerspace

Tim from Innerspace
Tim from Innerspace

Hello! I’m Tim, an engineer on the Innerspace SDK team. Our team is responsible for building and maintaining several of the SDKs for different services in Unity Gaming Services — at last count we looked after 9 different packages!

One of the great things about this team is we get to work with lots of the other teams in Edinburgh and beyond, working with them to build the best ways to get their products into the hands of users. Many of our SDKs have just been released into open beta, so be sure to go and try them out!

All this means we have a lot of variety in our work — both in challenges and technologies used. These days we mostly work in the Unity ecosystem with C# and Unity Package Manager, but there’s also some platform native SDKs and plugins, written in Objective-C/Swift and Java/Kotlin, that we need to maintain.

We also need to manage how our packages interact with each other and those of other teams in the wider Unity organisation. Every day is a different challenge!

There’s lots of exciting things lined up for the future too, and new challenges to face, and I can’t wait to see what we get to build next.

Innerspace team meetup

Chris & Jetpac

Jetpac box art

I’m Chris; I am a senior software engineer on the Jetpac team here in Edinburgh. Our team name comes from the 1983 ZX-Spectrum game with the same name. Jetpac is responsible for the core set of analytics features that we offer as part of the Unity Gaming Services Analytics product that our team recently released. We couldn’t be happier to have reached this exciting milestone.

This release has been a considerable amount of work to take the benefits of the existing Unity Analytics product and combine that with all the things that deltaDNA did well to release something which will allow our users to level up their in-game analytics. We are super excited about what’s coming next for Unity Analytics, and we can’t wait to show you all the fantastic (and useful) features we will be bringing soon.

Now onto the code. Like Mesa and Aperture, we work primarily in Java/Kotlin on our backend microservices deployed using Kubernetes and all of our frontend is created using React. Like many modern large organisations, we operate on an internal open-source model. This allows anybody to read and contribute to any other team’s code. We can share code across many different products, which means our customers benefit from having the combined experience of all the engineers working on this product. As individuals, we get to learn and enjoy the benefit of this shared knowledge increasing our own skillset.

Kal & Banasco

Kal from the Banasco team
Kal from the Banasco team

Hey! I’m Kal and I’m one of the Software Engineers in the Banasco team. Our team is spread between both the Edinburgh and the Dundee offices though we have members that are based in other cities. We are the product of two teams that used to work on former ChilliConnect products — Banana Pepper and Tabasco. Since then we have joined forces (hence, ‘Banasco’) and we now work on a subsection of the Unity Gaming Services.

We made the move to Kanban very early on as we needed the flexibility to quickly move between streams of work as we were building up new services. Our Kanbanana board contains work for two products — Cloud Save and Cloud Code. The former offers users the ability to save persistent player data in the cloud, which enables them to keep track of game progress or support cross-platform play. The latter offers serverless compute and the ability for game developers to write server-authoritative code. It also acts as the glue between services in the Unity Gaming Services platform enhancing their usefulness via interoperability.

Our product backends are written primarily in Go and deployed using Kubernetes, while our front end is written in React. We also write a lot of Terraform code and Helm charts and we never deploy infrastructure manually. Infrastructure as Code is only one of the many engineering best practices that we try to follow. From the very beginning of a new feature, we tend to spike, discuss and write down the learnings in the form of Architecture Decision Records (ADRs). We write a lot of unit and integration tests for each piece of code, and also plug in end-to-end tests into our CI/CD pipelines.

Our devops tooling ensures that we write secure and high-quality code, while our daily regression testing ensures that users always receive the best experience. Our metrics, dashboards and alerts allow us to monitor the health of our service and enable us to quickly identify and resolve issues. We often like to dedicate some time to learning and personal development before we dive into a new tech stack.

Banasco logo

Working on our team can be very rewarding, as we’re never short on complex and engaging engineering tasks. We frequently collaborate with other teams in the organization, and we often share knowledge and experience with tools and technologies. We have an exciting roadmap ahead of us as we work on supporting more customers and expanding our products.

Members of Banasco at dinner and drinks recently
Members of Banasco at dinner and drinks recently

Miklos & Jalapeño

I’m Miklos, an intern full-stack software engineer on the Jalapeño team. We work on the Economy part of Unity Gaming Services. The goal of Economy is to allow developers to easily create and integrate an in-game Economy, which can be managed from the Cloud without the need to release a new version of the game. Our economy consists of 4 types of items at the moment, the first two are currency and inventory items. Instances of these can be owned by the players and conversion between them can be done by the third item: virtual purchase. The fourth item is for converting real world money to in game currencies and/or items through the Apple or Google payment systems.

Our team has 9 members at the moment of which 3 are originally from ChilliConnect (ChilliConnect is a company that Unity acquired in 2019). Jalapeño has been working on migrating the economy part of the software into Unity Gaming Services.

I joined three months ago, when we were getting ready for our open beta release. Although I haven’t experienced the joy of following the product from its inception to its release, it was still interesting to join later and I’ve enjoyed working with the senior developers on the team. Pairing with more experienced people boosted my knowledge significantly more than working with other students on a university project.

Now that our product is in open beta, our team started focusing on developing new features and reducing our technological debt. We decide what feature to work on next in collaboration with the Product Management team, which does research about the market and interacts with customers to better understand their needs. The back-end for our new features will be written in Kotlin and Go, and we’re planning to migrate pieces of the predominantly PHP codebase from ChilliConnect to these languages. This is a good opportunity for me as I was planning to learn Kotlin for a few years now but haven’t had the chance to do so.

I’m really excited about starting on a new feature from scratch. Being part of a professional team is also a fantastic experience and I would advise any student to get an internship while studying as soon as possible.

Want to work with us?

Take a look at our career openings to see what roles are currently available in Edinburgh and Dundee.

Depending on the role that you’re applying for, you can find lots of relevant videos, blog posts and other online content to help you prepare. And make sure you cover these basics:

We hope you’ve enjoyed this blog post, and that you’ve learnt some interesting information about the teams that Unity has in Scotland and are as excited about the work happening in Unity Gaming Services as we are!

Stay tuned for more Unity Scotland posts, as we reveal more about life in Unity Scotland and share more technical posts about the interesting problems the teams are solving.

--

--