Position: Middle/Senior Golang Developer
Company: ciklum.com
Category: Golang
Experience required: 3y
English level: upper

We are a leading global product engineering and digital services company that unites 4000+ seasoned professionals globally on various projects in healthcare, fintech, travel, sportswear, entertainment, and security. Ciklum delivers high-impact technology solutions to Fortune 500 and fast-growing organizations worldwide. 

About the role:
As a Senior Golang Developer, become a part of a cross-functional development team working for the OneFootball. 

About the client:
OneFootball’s goal is to fuel the world’s football obsession. OneFootball is the streaming platform for the new generation of football fans. It is the only app with a fully personalised home stream for non-stop news of your favourite club and the only company to offer single live football matches in-app on a free and pay-per-view basis.

Reaching 85m football fans worldwide every month
The best rated sports app in the world, based on millions of App Store and Google Play review
Web, embedded and native apps
12 languages
Safe for all users and piracy free
Watch pay-per-view live video matches (e.g. sky 2nd BL in DE) or free-to-air matches
Statistics and live scores of 200+ leagues and competitions worldwide
Operate a 24-hour newsroom - breaking news, highlight clips, live streaming, transfer rumours and features
OneFootball network: 300 independent content creators, clubs, federations and broadcasters, 100k+ pieces of content per month
Headquarters in Berlin, regional offices in London, Singapore and more
~300 employees

Responsibilities:
Back-end development to meet customer’s business needs and implement components according to modern software development environment (cloud-based platforms, microservice architecture, etc.)
Taking part in the decision-making process in design application architecture, solution development, architecture and code review
Develop and review feature design documents and provide inputs/update to specifications for the solution
Design and implement a set of various types of tests (unit, integration, functional, etc)
Proactive position in solution development, processes improvements
Working in an international distributed team in an Agile environment
Communicate with PMs, engineers, Architects, QA and other colleagues and stakeholders
Delivering the product roadmap and plannings
To use high coding standards, software best practices and write highly testable, automatable and performant code over the whole SDLC

Requirements:
Experience in software development for more than 5 years
Excellent knowledge in Computer Science, Computing Theory:
Paradigm & Principles (OOP, SOLID)
Database theory (RDBMS, NoSQL)
Code testing practices
Data structures
Architectural, Enterprise and Design Patterns
Monitoring, alerting approaches
Common attacks types (OWASP)
Understanding of network interactions:
protocols
conventions (e.g. REST, RPC)
authentication and authorization flows
standards and practices (e.g. oAuth, JWT)
Excellent knowledge and experience in Golang (more than 5 years)
Practical commercial experience with:
REST API development
Web application frameworks, Testing frameworks, ORM
RDBMS (e.g MySQL, PostgreSQL)
Key-value storages (e.g. Redis, Memcached)
Messaging systems (e.g. RabbitMQ, Apache Kafka, Google Pub/Sub)
Version control systems (GIT)
Docker
Continuous Integration tools (e.g. Gitlab Pipeline, Jenkins, TeamCity, Bamboo)
Builders

Experience with:
Troubleshooting, profiling and debugging applications
Creation software architecture and design of complex applications, platforms, microservices solutions
Agile software processes and technologies
Code Review process
Refactoring process
Fluent or Upper-Intermediate English

You can:
Perform a broad range of complex technical or professional activities, in a variety of contexts. Investigate, define, and resolve complex issues
Able to work in distributed cross-functional teams effectively
Influence customers and team members on the project level
May supervise others or make decisions which impact the work assigned to individuals or phases of projects
Plan, schedule, and monitor own work (and of others where applicable) competently
Have learning agility (readiness for challenge and being open to change)

Desirable:
Experience in software development for more than 8 years
Certifications on:
Cloud computing platforms (AWS, GCP, Microsoft Azure)
Understanding of orchestration and containerisation (e.g. Kubernetes, Swarm)
Knowledge in Deployment patterns
Practical commercial experience with:
NoSQL (e.g. MongoDB, ElasticSearch, CouchDB)
Experience with Search Engines (e.g. ElasticSearch, Azure Search, Apache Solr)
Provisioning tools (e.g. Terraform, Ansible)
Quality tools (e.g. SonarQube)
Cloud computing platforms (AWS, GCP, Azure)
Experience with web architecture at scale (20krpm and above)
Practical commercial experience with microservices or SOA architectures
Experience with NoSQL data backends (Redis, MongoDB, ElasticSearch)
Experience solving logistical problems with software

What's in it for you?
Close cooperation with the client
A constant flow of new projects
Dynamic and challenging tasks
Ability to influence project technologies
Projects from scratch
Team of professionals: learn from colleagues and gain recognition of your skills
European management style
Continuous self-improvement