Engineering @ Shape Games
Software engineering is the main department in Shape Games and the vast majority of team members are working in this area to build our products. Our products are very connected and together we refer to them as The Platform.
Our products are also highly customisable because our clients have different requirements, e.g. because they operate in different regulatory environments and they use different data providers. In general we manage this requirement for customisability by adopting a very modular approach. Every small part of The Platform is an independant module that can be configured and used when needed. That is true for both the backend and frontend components.
The engineering organisation reflects the modular approach of the platform. We are divided in 6 independent engineering teams that each own a number of modules and applications.
iOS Development
With 14 experienced iOS developers in the engineering department there is a tremendous amount of accumulated experience in this domain. We have strong belief that the best user experience can only be achieved using native technologies from Apple. We fully embrace the Swift programming language and we follow the Swift Evolution closely and take advantage of any new features that we can see providing value.
Our modular architecture has so far resulted in more than 50 swift packages that can be combined to create highly customisable sportsbetting apps (we use Swift Package Manager for dependency management).
We use many exciting technologies including Reactive Programming with the framework ReactiveKit. Recently we have been quite excited about the introduction of concepts like AsyncStream in Swift.
Android Development
The knowledge-sharing culture among the 16 android developers is particularly strong. Several of the team members have been working with the platform since the early days of Android and together they know almost every corner of the SDK and the Kotlin programming language.
Some of the technologies we are big fans of currently are coroutines, Jetpack, and Jetpack Compose.
Backend Development
Our backend system is composed by a number of independent services written in the Kotlin programming language. The 12 engineers currently working on the backend systems go a long way to write modular and reusable code that can handle the test of reality.
When it comes to deploying we firmly believe that everything must be automated and triggered when a PR is merged. That also goes for setting up new infrastructure so we make heavy use of AWS CDK/CloudFormation to achieve that. The infrastructure team is very passionate about AWS best practices and we use many of the services including Fargate, RDS for Postgres, Kinesis, etc. Connect with us if you are also interested in these technologies.
Frontend Web Development
The 9 members of the web team have a big passion for the open web as a platform. Once per week the team spends an afternoon on building some experimental tools they think can benefit the team or the entire organisation.
The technologies used for frontend web development are ever changing but some keywords that have been around with us for a while include TypeScript, React, and Next.js.