We are helping our partner company expand their team and are looking for a highly skilled Software Engineer to join the development of a large-scale SaaS platform. In this role, you will be responsible for designing and implementing architectural solutions to ensure high performance and efficiency of a platform focused on retargeting advertising campaigns and analytics.
Required Skills and Experience: * 7+ years of experience in backend development in total; * 5+ years of experience with Go development; capable of building and maintaining high-load backend systems; * Experience with Linux (Debian / Ubuntu); * Solid understanding of Docker and container orchestration systems (k8s, swarm); * Experience with PostgreSQL; * Experience with In-memory storage (Redis, Aerospike); * Experience with distributed systems and high-load services; * Experience with Microservices (API, patterns, background processing); * Experience in developing REST, GraphQL, gRPC API; * Solid understanding of KISS, DRY, SOLID principles and design patterns; * Practical experience with event-driven development patterns; * Experience with Ansible and CI/CD tools like Gitlab CI; * Experience with monitoring and logging tools and performance tunning; * Fast learner with a strong desire to continually acquire new knowledge;
Nice to have: * Experience with ClickHouse; * Experience with designing GraphQL and gRPC API; * Experience with message brokers like RabbitMQ, Apache Kafka, NATs; * Experience with scripting languages like Python, Bash; * Experience with Node.js development;
Responsibilities: * Build high-load (500k+ RPS) distributed system using Golang and Node.js; * Design and implement backend features from conception through to deployment; * Analyze system performance metrics and bottlenecks to fine-tune services for maximum efficiency; * Work closely with team to deliver high-quality features and resolve issues; * Review code and provide feedback to ensure best practices (e.g., style guidelines, accuracy, testability, and efficiency); * Define and implement testing strategies, including unit testing, integration testing, and performance testing, to ensure the reliability of the system; * Stay updated on the latest technologies and tools relevant to the project, and big data processing, making informed decisions on technology adoption * Be a part of the critical path in a fast-growing project’s development and delivery processes.