Position: Software Architect
Company: BETER
Category: Lead
Experience: 5y
English level: intermediate

Продуктова компанія **BETER** шукає **Software Architect** для утримання рівня технічних рішень на висоті. Якщо тобі подобається вирішувати комплексні задачі по проектуванню, шукати та впроваджувати сучасні методи та інструменти розробки, а також надихати розробників на технічну досконалість - ця вакансія для тебе.

**Для позиції важливо:**

- Досвід роботи як Software Architect або подібна позиція протягом не менше 4 років;
- Мінімум 10 років практичного досвіду розробки програмного забезпечення;
- Великий досвід у написанні програмного забезпечення з використанням стеку .NET;
- 4 роки професійного досвіду роботи над комерційними проектами з типами архітектури SOA та/або Microservices;
- Практичний досвід розробки асинхронних систем із розподіленою обробкою повідомлень;
- Глибоке розуміння принципів проектування програмних систем та великий багаж патернів;
- Практичний досвід з розробки систем обробки даних у реальному часі;
- Досвід роботи з Kubernetes в проді;
- Значний досвід використання інструментів для збору системних метрик, моніторингу та логування додатків в умовах горизонтального масштабування;
- Комунікативні навички, особливо в перевірці коду, обговоренні рефакторингу, командному наставництві та ефективній міжкомандній комунікації;
- Практичний досвід розробки та впровадження інтеграцій зі сторонніми сервісами\системами;
- Глибокі навички з аналізу проблем та їх перетворення на задачі;
- Практичний досвід у підготовці та презентації технічних дизайнів;
- Досвід із документуванням архітектури (HLD, C4, UML тощо);
- Чітке уявлення про нефункціональні вимоги до програмного забезпечення та програмного коду, такі як продуктивність, зручність обслуговування та зручність використання тощо;
- Вища технічна освіта по напрямку computer science.

**Буде плюсом:**

- Досвід роботи з AWS;
- Розуміння принципів побудови інфраструктури та процесів DevOps;
- Постійний пошук відповідей на питання “чому” та “як зробити краще”, та в той же час критичне мислення для розуміння коли раціонально це “краще” зробити;
- Навчання в математичних/технічних ліцеях;

**Чим прийдеться займатися?**

- Проектування, розробка, впровадження та підтримка архітектурних рішень на основі вимог бізнесу;
- Архітектурне ревью, допомога з розробкою, фасилітація технічних рішень в командах;
- Аналіз наявних та майбутніх продуктів за для виявлення потенційних місць редизайну архітектури;
- Забезпечення дотримання стандартів розробки, забезпечення якості коду;
- Робота з технічним боргом — ідентифікація, допомога командам в плануванні;
- R&D технічних рішень при вирішенні певних задач для впровадження у стек компанії;
- Проектування та підтримка технічної документації;
- Тісна взаємодія з PO, BA та командами розробки для досягнення продуктових цілей;
- Менторство розробників та сприяння розвитку технічних компетенцій в командах;

**З чим і як працюють команди?**

- Декілька технологічних стеків: .net core, php, node.js, python;
- Це все пакується в Docker та живе в AWS (поки на окремих хостах, міграція в сторону Kubernetes в самому розпалі);
- MySQL, PostgreSQL, MongoDb для зберігання оперативних даних; - - S3 для архівів;
- ELK для логів;
- Victoria Metrics для метрик;
- Redis для кешування;
- Kafka для транспортування повідомлень;
- GitLab для репо та CI/CD в Docker на spot-інстансах, Nexus для образів;
- Команди розробки кросс-функціональні та сконцентровані на своїх цілях, DevOps сфокусовані на інфраструктурі та стандартизації DevOps-практик: збірки, розгортання, моніторинга та трасування;
- Мінімум бюрократії, можливість легко комунікувати з усіма рівнями менеджменту;
- Намагаємось приймати рішення швидко, без місяців обговорень, якщо людина проаналізувала ризики та альтернативні варіанти, розуміє суть своєї пропозиції.