
A modern platform that helps companies manage, automate, and monitor their donation-matching programs.
It allows organisations to track contributions, ensure transparency, verify donations, generate reports, and provide employees with a seamless experience when participating in matching initiatives.We are now expanding the platform and building new backend services on top of a scalable, secure, cloud-native architecture. If you enjoy working with clean architecture, cloud infrastructure, and impactful social-good products - this project is for you.
Your responsibilities will include:
• Leading the development and maintenance of cross-platform mobile applications for iOS and Android using Flutter;
• Collaborating closely with UI/UX designers, backend developers, and product stakeholders to deliver features end-to-end;
• Designing and maintaining scalable architecture, writing clean, maintainable, and efficient Dart code following advanced best practices;
• Integrating complex RESTful APIs, third-party services, and SDKs (e.g., Firebase, authentication providers, payment services);
• Driving and participating in code reviews, architectural discussions, and technical decision-making;
• Profiling, debugging, and optimizing performance across a wide range of devices;
• Setting up and improving CI/CD workflows, automated build processes, and deployment pipelines;
• Preparing and submitting builds to the App Store and Google Play, ensuring compliance with platform requirements;
• Mentoring mid-level developers, supporting feature design, and improving team code quality;
• Writing and maintaining unit, widget, and integration tests to ensure code reliability.
What we expect from you:• 3+ years of experience with Flutter and Dart in production;
• Upper-Intermediate+ English level;
• Deep understanding and practical experience with BLoC, Cubit, dependency injection, and layered architecture;
• Strong experience working with RESTful APIs, JSON serialization, and advanced API integration patterns;
• Confident experience with navigation packages such as auto_route or go_router, including nested and guarded flows;
• Proven experience delivering mobile applications from concept to release on both the App Store and Google Play;
• Strong knowledge of app performance optimization, memory management, and rendering behavior;
• Hands-on experience with Firebase services (Auth, Messaging, Analytics, Crashlytics) and other third-party SDK integrations;
• Experience integrating payment services and handling secure transactional flows;
• Experience working with WebView-based flows, JavaScript handlers, and hybrid navigation scenarios;
• Confident experience working with device capabilities: permissions, camera, file storage, contact access, and platform-specific APIs;
• Strong understanding of deep linking, referral flows, and dynamic navigation through external links;
• Experience working with CI/CD systems, automated testing, code generation, and build pipelines;
• Ability to conduct thorough code reviews, lead architectural improvements, and mentor other developers;
• A strong sense of ownership, ability to work independently, and readiness to communicate directly with stakeholders.
We offer:
• Work in a Top-employee company (according to DOU 2025);
• Projects that will challenge and inspire you - both professionally and personally (and bring our win closer );
• A team of creative, empathetic, and proactive people who love what they do;
• Flexible schedule and full-time workload - we value results, not clocks or locations;
• A cozy and modern office in the city center (Chykalenka str) with generator & battery backup, and the freedom to work from home when needed;
• No bureaucracy. Just people who care and give feedback; • Equal pay policy;
• Trial period (usually ~2 months — but it’s up to you how fast you fly through it );
• Events, hangouts, online fun, and good vibes.
window.addEventListener('DOMContentLoaded', (event) => { // Находим все кнопки "Податься" const applyButtons = document.querySelectorAll('.apply-button'); // Замените на ваш класс кнопки // Находим скрытое поле в форме для вакансии const jobInput = document.querySelector('#job-title-input'); // Замените на ID вашего input applyButtons.forEach(button => { button.addEventListener('click', function(e) { // Получаем название вакансии из атрибута data-job-title const jobTitle = this.getAttribute('data-job-title'); // Устанавливаем значение в скрытое поле формы if (jobInput) { jobInput.value = jobTitle; } }); }); });