Position: Staff Software Engineer (Storage Services, Scalability)
Company: Miro
Category: Java
Experience required: 5y
English level: upper

About the team
Storage Services is the team with a phenomenal impact on Miro's scaling and stability from the perspective of the database access layer. We do everything possible to ensure that our service is stable in the face of constant user growth including on-call and incident management. We support the mechanism of horizontal scaling, balance the load between the shards, and automate routine processes related to scaling and database management. We are responsible for implementation new type of data storage that meet strong requirement in terms of reliability, scalability, observability, compliance with GDPR and data residency requirements.

Each role at Miro is based at one of our physical hubs, and we look for talent that want to be part of these local, collaborative communities. Mironeers work in a hybrid model, with 3 days a week in office culture as our baseline.

Our Storage Services Team is a part of Stability & Scalability stream. To learn more about this stream please watch the video.

About the role
We are looking for a top-tier Staff software engineer with strong background in Java and data storage services like Postgres/MySQL/RDS, Redis/ElastiCashe, DynamoDB, S3, Redshift. We expect that you have experience of scaling your services with AWS managed database services and you know them as an architect. In this role, you’ll be leading the development for the more complex technical initiatives within Storage Services. Specifically, we are introducing scalable way of using database from microservices. You would be leading the solution design and implementation, working with the other engineers across the company to validate their design and requirements for database layer.

What you’ll do
Design and implement scalable and high-performing solutions
Identify synergies between software components and improve the efficiency of development and code maintenance
Design and provide solution on database layer for microservices including database access, data segregation, monitoring, privacy and security
Design and provide system components for database layer like automation resharding to manage load on shards, database scaling, backups and etc
Build PoC to choose new storage solutions and spread them across all Miro development teams
Review technical solutions from others development teams to ensure the usage of best practices of working with databases
Invest into the growth and development of other engineers, participate in onboarding and mentorship
Contribute to on-call and incident management process to ensure the highest SLA for shared storage services that team is responsible for
What you’ll need
10+ years of software engineering experience with at least 4 years in senior roleExperience building, launching and running mission-critical, high-performance, distributed, fault tolerant systems
Proved experience in building data management solutions with TBs data
Experience with SOA
Strong background in Java/Spring
Strong background in RDBMS, NoSQL, Document type databases
Experience with AWS managed data storage services (RDS, ElastiCache, DynamoDB, Redshift)
What's in it for you
Stock Option Grant
Medical Insurance coverage
Allowance to facilitate remote working during WFH period
Weekly remote team activities to keep the spirits high
Opportunity to work for a truly global multicultural team
Lunch, snacks and drinks provided when back in the office