Position: Senior Python Developer
Company: Ciklum
Category: Python
Experience required: 5y
English level: upper

**Project description:**

Headquartered in New York City, VAST Data is simplifying the data center and redefining how organizations interact with data with its Universal Storage concept. They are looking for innovative, talented and hard-working people to join their fast-growing team.

You will work in an environment where collaborating on ideas, questioning assumptions and rethinking the nature of the problem is as fundamental as the air they breathe. Where you thrive on finding new ways to move forward. Where you are challenged to reject incremental gains in favor of finding bold paths that can altogether change the nature of computing. Imagine the vast difference this would make.

**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
-Strong Linux knowledge (more than 3 years)
-Excellent knowledge in Computing Theory:
Paradigm & Principles (OOP, SOLID, DDD, TDD, BDD)
Database theory (RDBMS, NoSQL)
Code testing practices
Algorithms
Data structures
Architectural, Enterprise and Design Patterns
-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 Python (more than 5 years):
Strong Multiprocessing, Threading and AIO knowledge
Low-level network knowing (e.g. socket, TCP / UDP)
-Practical commercial experience with:
Web application frameworks (e.g. Flask, Falcon, Django, aiohttp) (more than 3 year)
PyTest frameworks (more than 3 years)
RDBMS (e.g PostgreSQL, MySQL/MariaDB, MS SQL) (more than 2 year)
Key-value storages (e.g. Redis, Memcached)
Messaging systems (e.g. RabbitMQ, Apache Kafka, Active MQ, AWS SQS)
GIT Version control system
Cloud computing platforms AWS or GoogleCloud Platform
Docker
Continuous Integration tools (e.g. Gitlab Pipeline, Jenkins)
-Experience with:
Troubleshooting, profiling and debugging applications
Creation software architecture and design of complex applications
Agile software processes and technologies
Code Review process
Refactoring process
-Fluent or Upper-Intermediate English

**Desirable**

-Certifications on:
Python
Cloud computing platforms (AWS, GoogleCloud Platform)
-Ability to lead feature development, take full ownership of tasks from A-Z and deliver independently with minimum supervision
-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)
Quality tools (e.g. SonarQube, Radon)

**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