Position: Software Architect
Company: SBTech
Experience required: 5y
English level: upper

If you like continuous improvement, working close to business, guide teams with a dedicated mission, the concept of taking agile principles and methods to its limit by making use of new techniques and programs – then this is the perfect opportunity for you.

As an Architect in our team:

You will be working closely with development Teams in Retail business domain.

Responsible for the design and implementation of modern Retail gaming services to deliver high quality and scalable products and solutions in multiple jurisdictions for various B2B operators

Dive into the latest technologies all over the market
Make a choice in development and implementation strategies
SBTech is a global Industry-leading provider of turnkey online gaming solutions, which powers the most successful online gaming operators around the globe.

Here, at SBTech, we allow you to create your own career. Opportunities are only limited by your ability, motivation and imagination. We pride ourselves on our fun and flexible working environment and in our commitment to developing our employees. We simply believe in hiring the best people and providing them with the best tools.

Retail unit consists of 5 scrum product development and a testing automation team led by R&D manager. As an architect you’ll be reporting to R&D manager. We expect you will provide architectural guidance to the teams on all stages of SDLC, closely collaborating with developers, Product, QA and Delivery managers.

Responsibilities

Guide and mentor development teams to deliver high quality technology solutions. Interacting with internal and external technical leaders to develop innovative gaming services that meet market needs; availability, performance, security and scalability
Research development technologies and apply towards future platform developments
Design architecture solutions, document workflows, diagrams helping to define platform features/functionality
Drive continuous architecture improvements of existing and new solutions in collaboration with multiple development teams in distributed environment
Initiate and drive architecture improvements considering business roadmap, best industry practices and teams’ feedback
Facilitate injection of best engineering practices (TDD, test automation etc) for most efficient development process
Hands on coding capabilities, developing and implementing complicated solutions
Assisting in debugging complicated production faults and ensuring system stability
What’s your stack and tools?

For the current moment, we use:

(!) please note that we are also happy to meet Java/Scala specialists. There is no strong binding to the programming language, but much attention is paid to high-level design.

Recently we started adopting F# as our main language, trying to get max from the type system. Usually, we use a mix of OOP/FP – “pure/impure sandwich” approach with some elements of CQRS.
For testing, we mostly rely on Integration and for some cases, we use Property-Based testing(FsCheck). For load testing we use NBomber.
For handling concurrency and data streaming pipelines, we use TPL DataFlow.
Microservices: ASP.NET Core/Docker/K8/On-Prem/Google Cloud
Messaging: Apache Kafka
DB: Redis, ElasticSearch
CI/CD: Jenkins
Front﻿: Electron/React
REQUIREMENTS
﻿First of all, we’re looking for a real teammate — we want you to communicate, share your vision, bring in your own ideas. We also want you to listen and hear other points of view, be able to look with another person’s eyes.

From a technical perspective, we expect you to know how to build distributed systems, design robust pull/push API. For the current moment, we are building a data streaming system for thousands of terminals spread around the world with different characteristics: not always stable internet connection, a low memory/low CPU, etc. We need to provide data delivery guarantees and fast desktop offline experience. Also, we care about traffic size and near-realtime updates processing. You will be responsible for the overall architecture: API design, domain modeling, POC of the new technologies.Skills which we are looking for:Must have

Distributed System Design
DDD
NoSQLNice to have
OSS contribution
Functional programming
CQRS
Actor Model
General

5+ years of experience with software development in complicated web/client/server environment; at least 2 years focus in an architecture role
Strong experience in building highly scalable solutions
Ability to understand complex business logic; dive into complex code and debug software web-based systems
Fluent English
Good communication and presentation skills
Desirable

Experience in following domains: Retail, monitoring systems, IoT, hardware integration, security, payment systems
WHY JOIN OUR DREAM TEAM?
﻿Here we’re working really hard (yet not burning-out-hard), but also learning and developing fast (like Usain-Bolt-fast). We are looking for smart and focused people who represent the team spirit and are trustworthy allies in achieving great results. The business environment provokes us to be dynamic and innovative and that’s exactly what we are. We offer great career opportunities – you simply must seize them.

THE COMPANY OFFERS EXCELLENT BENEFITS
Being a part of an international team focused on excellence in product development
Competitive remuneration
Comprehensive health insurance + gym
Team building and fun activities
High end modern office facilities
Dynamic and friendly work environment
Open and transparent communication
Long term career growth opportunities
Professional growth, extra education opportunities and cross-locations knowledge sharing
English classes