Position: Senior NodeJS Software Engineer (Gambling domain)
Company: Sigma Software Group
Category: Node.js
Experience: 5y
English level: upper

Ми шукаємо кваліфікованого та досвідченого старшого розробника Node.js, який приєднається до нашої команди в ігровій індустрії. На посаді старшого розробника Node.js ти будеш відповідати за проєктування та розробку високопродуктивних та масштабованих рішень, які відповідають потребам наших клієнтів та замовників. 

Наш клієнт - американський стартап, який з нуля розробляє платформу соціального казино (безкоштовні ігри, ігри для розваг). Сучасна слот-гра в буде створена для запуску в браузері на комп'ютерах та мобільних пристроях. Виділена команда розробників знаходиться в Україні, робочий графік базується на українському часовому поясі.  

Як старший інженер-програміст, ти будеш тісно співпрацювати з системним архітектором та командою розробників клієнта, брати активну участь у технічних обговореннях та проєктуванні системи, працювати над ігровим бекендом та інтеграцією. 

Обов'язки
- Проєктувати та впроваджувати великі або складні частини програмного забезпечення  
- Тестувати власний код, перевіряти головні сценарії, виключні та критичні ситуації перед тим, як змінювати статус розробки завдання на "Виконано" 
- Під час проєктування та реалізації частин програмного забезпечення дотримуватися найкращих інженерних практик, передбачених SDLC та інструкціями компанії  
- Брати участь у сесіях з роз'яснення вимог, ставити питання щодо вхідних даних та вимог призначених завдань у готовому до відправки вигляді, де це необхідно  
- Проводити експертну оцінку дизайну та коду з фахівцями старшого рівня, бути проактивним та робити запити на рецензування
- Брати участь у сесіях з оцінки та планування  
- Заохочувати  дотримання принципів чистого коду та  хорошого дизайну, таких як: повторне використання коду, модульність та розширюваність, а також навчати інших цих принципів 
- Де можливо, брати на себе відповідальність в якості функціонал-лідера або функціонал-відповідального за забезпечення реалізації функціоналу протягом всього циклу, від запиту вимог, реалізації та тестування розробниками до забезпечення виправлення всіх дефектів для всіх стеків та команд 
- Активно та постійно працювати над саморозвитком та самоосвітою, робити висновки з отриманого досвіду для подальшого просування на позицію Principal 
- Підвищувати свою кваліфікацію в межах області (областей) експертизи на різних навчальних курсах, семінарах та/або інших освітніх заходах 
- Брати участь у конференц-зв'язках та особистих зустрічах із замовником 

Вимоги
- Досвід роботи в Gaming/iGaming/Gambling не менше 2 років   
- Знання JS, TypeScript    
- Знання NodeJS, NestJS, HTTP/HTTPS, Websockets, TypeORM   
- Знання баз даних PostgreSQL та Redis, архітектури мікросервісів, сервісів без статусу та принципів горизонтального масштабування  
- Знання Docker є обов'язковим, бажано знайомство з інфраструктурою AWS   
- Глибоке розуміння основ CS, структур даних та алгоритмів  
- Глибоке розуміння SDLC та фаз розробки продукту  
- Здатність створити правильну структуру проєкту з нуля  
- Вміння володіти, керувати та розвивати продукти самостійно 
- Написання високоякісного коду, який є модульним, функціональним та таким, що підлягає тестуванню  
- Знання та вміння впроваджувати та виконувати процес рецензування коду  
- Здатність впроваджувати найкращі практики програмування  
- Володіння англійською мовою на рівні Upper-Intermediate   
- Пряме спілкування з клієнтами та визначення вимог  

Буде перевагою:  
- Досвід побудови процесів безперервної інтеграції, використання систем CI/CD та автоматизованого тестування   
- Сертифікати AWS associate  
- Розвинене вміння вирішення проблем 
- Вміння ефективно спілкуватися з колегами
- Досвід наставництва 

We are seeking a highly skilled and experienced Senior Node.js Software Developer to join our team in the Gaming industry. As a Senior Node.js Developer, you will be responsible for designing and developing high-performance and scalable solutions that meet the needs of our clients and customers.  

Our client is an American startup developing a social casino platform (free games, games for fun) from scratch. A modern style slots game will be built to run in the browser on desktop and mobile devices. The dedicated Game Development Team is in Ukraine, working schedule is based on the Ukrainian time zone. 

As a Senior Software Engineer, you will closely cooperate with the System Architect and Client's Dev team, actively participate in technical discussions and system design, work on games backend and integration implementation. 

Responsibilities
- Design and implement considerably large or complex portions of software 
- Dev-test own code, check key scenarios, corner and edge cases prior to changing task development status to Done 
- When designing and implementing portions of software, follow best engineering practices required by company SDLC and guidelines 
- Participate in requirements clarification sessions, raise questions about assigned task inputs and requirements, in ready-to-send form, where necessary 
- Peer-review design and code with senior level specialists, be proactive and request reviews instead of waiting for somebody to enforce it 
- Participate in estimation and planning sessions 
- Promote clean code and good design principles such as code reuse, modularity and extensibility and mentor others in these principles 
- Where applicable, take responsibility as feature-leader or feature-responsible for ensuring feature delivery through the whole cycle, from requirements solicitation, through implementation and dev testing, to ensuring all defects are corrected cross stack and cross team 
- Actively and permanently work on self-development and self-education, making lessons learned for further advancement to Principal position 
- Improve your qualification within the area(s) of expertise at various training courses, seminars and/or other educational organizations 
- Participate in conference calls and face-to-face meetings with the Customer 

Requirements 
- Experience in Gaming/iGaming/Gambling at least 2 years 
- Knowledge of JS, TypeScript 
- Knowledge of NodeJS, NestJS, HTTP/HTTPS, Websockets, TypeORM 
- Knowledge of PostgreSQL and Redis databases, Microservice architecture, stateless services, and horizontal scaling principles 
- Solid Docker knowledge is required, AWS infrastructure is desirable 
- Solid understanding of CS fundamentals, data structures, and algorithms 
- Solid understanding of SDLC and product development phases 
- Ability to set up a proper project structure from scratch 
- Should be able to own, drive and evolve products independently 
- Ability to write high-quality code that is modular, functional and testable 
- Knowledge and ability to implement and perform code review process 
- Ability to establish the best coding practices 
- Upper-Intermediate level of English 
- Direct client communication and requirement elicitation 

Would be a plus: 
- Experience with building continuous integration pipelines, using CI/CD systems and automated testing 
- AWS associate certificates 
- Strong problem-solving skills 
- Ability to communicate effectively with colleagues 
- Mentoring experience