Position: Lead Python Software Engineer
Company: Global IT Support
Experience required: 5y
English level: upper

**About the client:**
The company has more than 1500 team members serving over 5,000 clients on five continents, and we’re growing and changing rapidly. We are a fantastic company to work for — with great benefits, growth opportunities, and a terrific internal culture — and we truly believe that it’s people who make us thrive. Every day, we are transforming ourselves into a better partner for our customers, a better employer for our colleagues, and a better investment for our owners. We are growing fast and are always looking for new talented people to be part of the journey.

**Requirements:**
Bachelor of Computer Science (BSc), Engineering, or equivalent qualification;
Good knowledge of modern image processing techniques;
Excellent knowledge of data processing systems and scalability;
Modern web application development including RESTful web service development, databases, and operating systems;
In-depth experience of the software development lifecycle and code repositories such as git, including branching and merging flows;
Python, AWS, GCP, MySQL, Postgres, Airflow, Kafka (preferred);
Linux toolchain;
Knowledge of Golang would be a plus.

**Responsibilities:**
Leading a cross-functional team to develop software components that deliver value to stakeholders;
Line-managing other software engineers across the flat-structure org;
Bringing technical direction and vision to the delivery of the product, participating in Discovery and keeping engineering standards in place;
Specifying and designing software to meet defined requirements by following agreed design standards and principles;
Working with a team to deliver outcomes through software development;
Identifying, creating, and applying software development and security standards and processes;
Planning and designing software applications, components, interfaces, and related characteristics (including security);
Estimating time and effort required for software development;
Constructing, amending, and verifying software components;
Applying test-driven development and ensuring appropriate test coverage;
Using peer review techniques — such as pair programming;
Documenting software components;
Understanding and obtaining agreement to the value of the software components to be developed;
Selecting appropriate development methods and life cycles;
Applying recovery techniques to ensure the software being developed is not lost;
Implementing appropriate change control to software development practices;
Using design concepts and patterns to develop software design and providing the basis for software construction and verification;
Adopting and adapting software design models, tools, and techniques based on the context of the work;
Resolving operational problems with software and fixing bugs.

**We offer:**
Competitive work environment
Attractive salary at or above market rate
Full career development program
Flexible working schedule
Compensation for sick leaves and regular vacations
All expenses paid trips abroad
Unforgettable corporate events within a friendly team
Free English language school