عن الوظيفة
The Software Engineer works within a cross-functional product team responsible for solving customer and business problems through reliable mobile technology. Rather than focusing only on isolated development tasks, the role carries responsibility across discovery, technical design, implementation, testing, release, observability, and continuous improvement. Engineering practices emphasize small-batch delivery, short feedback loops, automated quality, and sustainable development.
The engineer is expected to understand both the technical complexity of services and the user problems behind them, helping the team make better product and architecture decisions while maintaining a consistently releasable codebase.Key ResponsibilitiesParticipate with Engineering, Product, and Data colleagues in continuous discovery of customer needs, business problems, and desired outcomes.Translate validated product requirements into maintainable mobile software solutions.
Design, develop, test, and release Flutter applications using Dart.Deliver product improvements in small batches according to established engineering standards.Take end-to-end ownership of assigned features, technical initiatives, and product areas.Evaluate application scalability, maintainability, complexity, and performance throughout the development lifecycle.Contribute to architectural decisions affecting mobile applications and supporting services.
Apply appropriate Flutter state management approaches based on application requirements.Use dependency injection patterns to maintain modular and testable application components.Create unit, widget, integration, and automated end-to-end tests.Maintain strong automated test coverage to support frequent and reliable releases.Work with Continuous Integration and Continuous Delivery pipelines to keep development branches in a releasable condition.
Use Test Driven Development practices where appropriate during implementation.Participate in pair programming, continuous refactoring, and simple design practices.Identify technical debt and improve existing code without unnecessarily increasing solution complexity.Collaborate with Product teams to understand user behavior and product priorities before selecting technical solutions.Work with Analytics and experimentation tools to support product measurement and A-B testing.
Contribute to mobile application instrumentation needed for product and technical insights.Maintain awareness of iOS and Android mobile development lifecycles.Work effectively around platform-specific requirements involving Kotlin, Java, Swift, Objective-C, and related native frameworks when necessary.Investigate mobile performance, stability, release, and integration issues across supported platforms.Review code and provide constructive technical feedback to engineering colleagues.
Mentor other engineers and share practical knowledge across the team.Help improve team development practices, engineering workflows, and delivery effectiveness.Challenge unnecessary technical processes and propose simpler approaches where they improve outcomes.Support a self-organized engineering environment built around collaboration and continuous improvement.Communicate technical decisions, limitations, risks, and trade-offs clearly to both technical and non-technical colleagues.
Take ownership of production quality and follow issues through resolution rather than limiting responsibility to code completion.Continuously explore emerging mobile technologies, development practices, and architectural approaches relevant to the product. The successful candidate should have at least 3 years of professional software engineering experience and a minimum of 1 year of practical Flutter development using Dart.
Strong knowledge of the Flutter ecosystem is required, including state management, dependency injection, unit testing, widget testing, and integration testing. Candidates should understand how to structure maintainable mobile applications while balancing delivery speed with long-term code quality. Experience working within Extreme Programming or similar engineering environments is highly valuable.
Familiarity with Test Driven Development, pair programming, simple design, continuous refactoring, Lean principles, Agile practices, and Continuous Delivery will support success in the role. Some understanding of native mobile application development is expected, including iOS and Android lifecycle concepts and technologies such as Kotlin, Java, Swift, Objective-C, and established platform frameworks.
The preferred engineer should be comfortable using automated testing, analytics, A-B experimentation, CI, and CD tools as part of everyday development rather than treating them as separate activities. Beyond technical capability, the role requires strong ownership, curiosity, empathy, communication, and willingness to challenge existing approaches constructively. Candidates should be comfortable receiving frequent feedback, mentoring colleagu
مصدر الوظيفة: صفحة التوظيف الرسمية لصاحب العمل.