Senior JS Backend Developer
Tech Stack
Job Description
MEKO poszukuje doświadczonego i ambitnego programisty backendowego, który pomoże nam w dalszym rozwoju wspólnego API GraphQL dla całej grupy.
Główny nacisk zostanie położony na migrację funkcji, które są obecnie częścią naszego rozwiązania do rezerwacji do samodzielnych jednostek, a także na udostępnienie funkcji stycznych związanych z zakupami, produktami, pojazdami i umowami.
Będziesz pracować przede wszystkim z kolegami w Szwecji i Polsce.
Idealny kandydat będzie posiadał wszechstronne połączenie wiedzy technicznej i nastawienia zorientowanego na biznes.
Niezbędne elementy:JavaScript i TypeScript – Silna biegłość jest niezbędna zarówno do tworzenia frontendu, jak i backendu.Node.js/Express - Podstawowa wiedza na temat tworzenia usług zaplecza i interfejsów API, ponieważ Express jest główną częścią stosu.
Powinien:GraphQL (Apollo Server) - Duże doświadczenie w budowaniu i odpytywaniu interfejsów API GraphQL przy użyciu Apollo Server.Testing & Testing Frameworks (Jest/Vitest) – Znajomość testów jednostkowych i integracyjnych z wykorzystaniem frameworków; najlepiej Jest lub Vitest.Interfejsy API REST — wiedza na temat projektowania, kompilowania i korzystania z usług RESTful.Bazy danych, SQL/NoSQL, np.
Postgress, ORM i Mongo – zrozumienie, jak integrować się z relacyjnymi bazami danych i korzystać z nich; najlepiej bazy danych postgres i noSQL, takie jak MongoDbPotoki CI/CD — znajomość konfigurowania i obsługi potoków CI/CD w celu automatyzacji wdrażania; najlepiej Azure DevOps.Chmura, np.
Azure – biegłość w wdrażaniu infrastruktury na chmurze; najlepiej Azure.IaC, np.
Terraform – Biegłość w zarządzaniu infrastrukturą; najlepiej Terraform.Konteneryzacja za pomocą Dockera – Doświadczenie z Dockerem, szczególnie w przypadku programowania lokalnego i wdrożeń kontenerowych.
Warto mieć:Apollo Federation/Gateway – Doświadczenie z Apollo Gateway i sfederowanym GraphQL dla architektur usług na dużą skalę.Zaawansowane funkcje GraphQL - Zrozumienie zaawansowanych pojęć GraphQL, takich jak przetwarzanie wsadowe i buforowanie w celu optymalizacji wydajności.Rejestrowanie i monitorowanie (np. Pino/Prometheus) — znajomość narzędzi do rejestrowania (np. Pino do rejestrowania żądań) i systemów monitorowania (np. Prometheus lub Azure Monitor) dla aplikacji produkcyjnych.Linting & Formatting (ESLint/Prettier) – Znajomość korzystania z narzędzi takich jak ESLint i Prettier w celu zapewnienia jakości i spójności kodu.Struktura monorepo - Doświadczenie w pracy w monorepo jest niezbędne do zarządzania dużymi bazami kodu z wieloma pakietami i współdzielonymi zależnościami.Ograniczanie szybkości i ograniczanie przepustowości — znajomość technik interfejsów API ograniczania szybkości i ograniczania przepustowości, szczególnie w środowiskach o dużym natężeniu ruchu.Subskrypcje GraphQL – Komunikacja w czasie rzeczywistym z subskrypcjami GraphQL, szczególnie w przypadku funkcji takich jak aktualizacje na żywo, może być cenna na dłuższą metę.Uwierzytelnianie OAuth2/JWT – Doświadczenie w zakresie mechanizmów uwierzytelniania i autoryzacji, zwłaszcza OAuth2 i JWT, ma kluczowe znaczenie dla bezpiecznych interfejsów API.
Warto mieć:Azure Cosmos DB (MongoDB API) — doświadczenie z usługą Cosmos DB, zwłaszcza z interfejsem API bazy danych MongoDB, ze względu na jego złożoność i konkretne przypadki użycia w magazynie danych NoSQL.Azure Key Vaults — znajomość zarządzania wpisami tajnymi aplikacji i zabezpieczania ich przy użyciu usługi Azure Key Vaults.Kontrola dostępu oparta na rolach (RBAC) platformy Azure — zrozumienie kontroli dostępu opartej na rolach platformy Azure jest niezbędne do zabezpieczenia dostępu do zasobów, szczególnie w aplikacjach w skali przedsiębiorstwa.Terraform Modules/Terragrunt – Znajomość modułów Terraform wielokrotnego użytku oraz Terragrunt do zarządzania infrastrukturą w sposób modułowy i skalowalny.Tożsamość obciążenia platformy Azure — zarządzanie tożsamością obciążenia platformy Azure jest ważne, ale można się go nauczyć w trakcie.Azure Redis — doświadczenie z usługą Redis na potrzeby buforowania; Jest stosunkowo łatwy do odebrania.Azure Kubernetes Service (AKS) — doświadczenie z usługą AKS na potrzeby aranżacji kontenerów, ponieważ jest to typowy wybór do wdrażania mikrousług.