Position: Python Developer
Company: Ciklum
Experience required: 3y
English level: upper

Project description:

   Client is an algo-trading company in the sports betting industry. The goal is to build a state of the art pricing engine for the sports betting industry, based on big data and machine learning techniques.
   The two founders of the company are highly experienced professionals from the financial markets high-frequency trading space, and we are currently in the process of applying our methodologies to sports betting.
   Client has created and deployed some profitable trading algorithms that are placing live trades. The task is to continue and improve them, as well as expand the business connections necessary to expand into additional markets and higher stakes.
   Client is constantly incorporating new data sources to augment our algorithms with, as well as forming new connections to trading platforms where they can further deploy them.
   Project activities with the client include:
   Integrating the API of various data vendors and trading platforms into our system.
    Design a smart centralized data storage system that will enable us to cross-reference various points of information about a team, a league and a specific match.
    Write a back-office system that will keep track of our profit and loss, coming from different sources, as well as create reports and dashboards.
    Create a robust back-testing system that will mimic real-world conditions in simulation.

Responsibilities
Back-end development to meet customer’s business needs and implement components according to modern software development environment
Taking part in the decision-making process in application code design, solution development, 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 3 years
Strong knowledge in Computer Science, Computing Theory:
Paradigm & Principles (OOP, SOLID)
Database theory (RDBMS)
Code testing practices
Algorithms
Data structures
Design Patterns
Understanding of network interactions:
Protocols
Conventions (e.g. REST, RPC)
Authentication and authorization flows
Standards and practices (e.g. oAuth, JWT)
Strong knowledge and experience in Python (more than 2 years)
Practical commercial experience with:
REST API development
Web application frameworks (e.g. Flask, Falcon, Django, Web2py, aiohttp, Tornado) (more than 1 year)
Testing frameworks (e.g. e.g. pyTest, unittest)
ORM (e.g. SQLAlchemy) (more than 1 year)
RDBMS (e.g PostgreSQL, MySQL/MariaDB, MS SQL) (more than 1 year)
Web Servers
Version control systems (GIT)
Docker
Continuous Integration tools (e.g. Gitlab Pipeline, Jenkins, TeamCity, Bamboo)
Builders
Experience with:
Agile software processes and technologies
Code Review process
Refactoring process
Upper-Intermediate English

Desirable
Knowledge in:
TDD, BDD
Architectural, Enterprise Patterns
Security patterns, Common attacks types (OWASP)
Deployment patterns

Experience with:
Troubleshooting, profiling and debugging applications
Microservices
Practical commercial experience with:
Key-value storages (e.g. Redis, Memcached)
Messaging systems (e.g. RabbitMQ, Apache Kafka, Active MQ, AWS SQS, Azure Service Bus, Google Pub/Sub)
Cloud computing platforms (e.g. AWS, Google Cloud Platform, Microsoft Azure)
Serverless architecture
Integration with 3rd party solutions
NoSQL (e.g. MongoDB, ElasticSearch, CouchDB)
Search Engines (e.g. ElasticSearch, Azure Search, Apache Solr)
Quality tools (e.g. SonarQube)
Personal skills
Good team player, motivated to develop and solve complex tasks
Strong communication and problem-solving skills
Self-motivated, self-disciplined and result-oriented
Willing to improve professional knowledge

What's in it for you
Career growth opportunities
Realization of your innovative ideas in building new solutions and services
Possibility to propose solutions on a project
Friendly collaborative teams and enjoyable working environment
Professional skills development and training programs
Variety of knowledge sharing, training and self-development opportunities
Learn different business domains
Constant flow of new projects
Dynamic and challenging tasks
Projects from scratch
Continuous self-improvement
State of the art, cool, centrally located offices with warm atmosphere which creates really good working conditions
Long-term employment with 20 working-days paid vacation and other social benefits