Тебе будет особенно легко вписаться в команду, если у тебя есть:
- Опыт работы в роли разработчика бекенда от 5 лет;
- Понимание особенностей и опыт построения высоконагруженных архитектур:
- Понимание сил, которые влияют на архитектуру системы
- Знание паттернов микросервисной архитектуры
- Другими словами, для тебя не должно быть ничего нового на
What are microservices?- Навыки построения мониторинга, понимание какие метрики работы системы являются ключевыми
- Опыт оптимизации производительности сервисов; опыт поиска и анализа узких мест
- Понимание принципов работы асинхронного IO; что такое мультиплексирование; что такое event loop
- Понимание работы JVM, уверенное знание Java и готовность писать на Kotlin
- Опыт работы с PostgreSQL:
- Понимание внутренней архитектуры базы
- Понимание способов внутренней организации данных - таблиц, индексов, shared buffer, etc
- Базовое знание SQL (joins, aggregate functions)
- Опыт работы хотя бы с одной распределенной базой (MongoDB, Cassandra, YDB или др.);
- Опыт работы с Kafka (понимание внутреннего устройства и логики работы, умение это объяснить); Теоретические знания о том, как управлять отказоустойчивостью и надёжностью
- Умение работать с функциональными и нефункциональными требованиями; Умение работать без системного аналитика, умение самостоятельно делать функциональные требования
- Опыт разработки по гибким методологиям (Scrum, Kanban)
- Самостоятельность и проактивность
Будет плюсом:- Опыт использования Kubernetes (ты в состоянии задеплоить сервис и понимаешь как его масштабировать)
- Понимание подхода RESTful и его разницы с RPC (понимание разных протоколов межсервисного взаимодействия)
- Опыт использования Cloud-провайдеров (AWS / Yandex.Cloud / пр.)