Position: Senior/Principal Software Engineer
Company: Preply
Category: Lead
Experience required: 5y
English level: upper

We are currently looking for a **Senior/Principal Software Engineer** to join our Back-end Architecture team at Platform tribe.

At Preply we believe that clean code and good architecture helps business in such rapid growth, where we experience several times year over year traffic increase . We’re very pragmatic here and always try to justify our architecture decisions with business needs. And we’re looking for a hero who will put on the first place understanding and satisfying business needs and on the 2nd shiny technologies. Currently our infrastructure consists of Core Application that serve most of business logic and around 12 services that complement it with additional functionality. We use GraphQL API to communicate between FE & BE and Kafka for asynchronous communication between services.

This role at Preply combines **software development, business and communication skills** to guarantee quality and effectiveness of architecture.
If you measure good architecture in time-to-market & application stability you’ll find yourself in a great company at Preply

You’ll be responsible for the evolution of our GraphQL API design, define and adopt best practices in application design and cross application communication. You’ll be able to get an extensive expertise in high loaded systems as well as hone your skills in communication with business and developers to drive meaningful changes in the organisation.

We work in small teams, thus you will be able to influence system design and contribute a lot in the company's growth, also we promote self-direction to work on meaningful projects, while we also strive to create an environment that provides the support and mentorship needed to learn and grow.

We release our product 50-60 times per day by leveraging modern technologies like Kubernetes (Skaffold+Helm), Docker and top-notch CI/CD processes. We have diverse technical challenges (sometimes we write about them on our Engineering Blog) that will allow you to develop your skills across the stack. 

**You’ll be responsible for:**
• Together with SRE team you’ll be responsible for Preply uptime record.
• Evolving architecture to make it more fault tolerant.
• Measure and decrease time-to-market.
• Together with Security team, make Preply more secure.
• GraphQL API design.
• Django application architecture.
• Define standards for cross service communication and implement it.
• Optimise performance of an application.

**What we are looking for:**
• Experience with GraphQL API design.
• Solid experience with Django or another Python framework.
• Experience with application monitoring and debugging.
• Strong SQL knowledge.
• Experience with PostgreSQL (or another relational database).
• Strong experience with Docker.

**Would be an advantage:**
• Experience working with Elasticsearch, Redis, RabbitMQ, Kafka, Memcached.
• Experience with k8s, helm, terraform.
• Experience with Microservice design patterns.
• Understanding of the DDD concepts.
• Experience to present and advocate solutions.
• DataDog.

**What we offer:**
• An opportunity for personal and professional growth, supported by high functioning teams, stellar investors and the exciting challenges that come with joining a company at the start of its growth trajectory.
• Easy-to-reach location, brand new office in Kooperative.
• An environment free of bureaucracy and corporate constraints; a culture where your opinion is highly valued and appreciated.
• An open, collaborative, dynamic and international culture.
• A monthly allowance for self-development on Preply.com.
• A competitive financial package, with generous leave allowance and health insurance.