Senior Software Engineer (Python, Rust)
Summary
Build and maintain high-performance backend services in Rust and Python (FastAPI) for an edtech platform, designing microservices and improving system reliability.
Our mission
Constructor’s mission is to enable all educational organisations to provide high-quality digital education to 10x people with 10x efficiency.
With strong expertise in machine intelligence and data science, Constructor’s all-in-one platform for education and research addresses today’s pressing educational challenges: access inequality, tech clutter, and low engagement of students.
Please send your resume in English only.
The type of contract is a full-time legal agreement in Bulgaria, Serbia, and Turkey, not a B2B contract.
Duties and Responsibilities:
- Design and implement backend services in Rust within a microservices architecture.
- Maintain and evolve existing Python services (FastAPI) where it's the right tool for the job.
- Write maintainable, testable, and performant code; participate in code reviews and raise the engineering bar across the team.
- Work with QA and DevOps to improve reliability, observability, and performance of our services.
- Contribute to architectural decisions: choosing the right language for each problem, inter-service communication patterns, and data modeling.
Qualifications and Experience:
- 5+ years of professional backend development experience.
- Solid production experience with Rust (minimum of 3 years).
- Strong Python: FastAPI or similar modern frameworks, asynchronous programming (asyncio), and type-driven development (mypy, pydantic).
- Deep understanding of microservices and communication patterns: sync/async, event-driven, message brokers (Kafka / RabbitMQ / NATS), gRPC/REST.
- Working-level PostgreSQL: indexes, transactions, isolation levels, locking, query plans.
- SOLID, dependency injection, and clean architecture — applied in practice, not just in theory.
- Working knowledge of k8s, containers, networking, and CI/CD.
- English B2 or higher.
Nice to Have but not Obligatory:
- Experience migrating Python services to Rust under real load (with measurements and clear motivation).
- Exposure to vector databases (e.g., Qdrant).
- Experience integrating with LLM APIs (OpenAI, Anthropic).
- Familiarity with LangChain / LangGraph and RAG
What We Offer
- 💻 Choice of work equipment (e.g., laptop, monitor, etc.)
- 🇬🇧 English classes (iTalki – $130 monthly)
- ⏰ Flexible schedule (we usually work between 09:00/10:00 and 18:00/19:00)
- 👶 Newborn bonus (€500 per child)
- 🧠 Patent remuneration
- 🌴 Paid leave
- 🧑💻 Remote work in locations without our offices
- Hybrid work in locations with offices (2 days in-office, 3 days remote)
Constructor fosters equal opportunity for people of all backgrounds and identities. We are led by a gender-balanced board committed to building a diverse and inclusive organisation where everyone can become their best self. We do not discriminate based on age, disability, gender identity, sexual orientation, ethnicity, race, religion or belief, parental and family status, or other protected characteristics. We welcome applications from women, men and non-binary candidates of all ethnicities and socio-economic backgrounds. We encourage people belonging to underrepresented groups to apply.
Skills
As published by greenhouse · 8 questions
Basics
First Name, Last Name, Email, Phone, Resume/CV, Cover Letter
Short answers (3)
- Where are you currently based? (City, Country)
- Please provide a link to your LinkedIn profile
- If you were referred by an employee or heard about us via an event (e.g. career fair, conference), please specify the source (name of the person or event) optional
Pick from a list (5)
- Are you legally authorized to work in the country where this position is based?
- Do you require visa sponsorship now or in the future to work in this country?
- What is your level of English?
- What are your salary expectations in EUR (gross per month)?
- How did you hear about this opportunity? Please select one option.