Mobile Applications Software Engineer (Flutter)
Every day, first responders around the world record thousands of hours of videos and collect other critical digital evidence - essential for transparency, accountability, and ultimately, making the world a safer place. Managing this amount of digital evidence, including documentation and tagging is a tedious and time-consuming task. This is where our applications steps in, streamlining this process and allowing first responders to focus more on their primary mission.
Our team is working on cross-platform applications (Android, iOS and Windows) that extend functionalities of the newest Motorola body-worn cameras and in-car video systems with features like categorization, tagging and review of the footage that allows users to perform evidentiary tasks on the go. By contributing to and complementing our Digital Evidence Management Systems (DEMS), it enables our customers, ranging from law enforcement agencies through government agencies to retailers, to have a resilient evidentiary platform that enables transparency and accountability.
Your responsibilities will include design, development, testing, maintenance and improvements of the software running on both mobiles (Android and iOS) and desktop PCs (Windows).
Key Responsibilities:
Full-cycle software development, encompassing coding, unit, and integration testing, as well as code reviews.
Participation in the analysis of new feature requirements and design proposals.
Collaboration with cross-functional teams, including QA and UI/UX.
Continuous improvement of the development and testing environment.
Support in defect analysis and troubleshooting customer-reported issues.
Key Technologies Used:
Dart/Flutter: Primary language and framework for the application and tests.
Kotlin (with some Java) & Swift: Used for the mobile application's native components.
.net/C#: Powers a component in the desktop/Windows application variant.
Development Environment & Tools:
GitHub: Utilized for code repositories, CI/CD, and code reviews.
AI Tools: We leverage tools like Cursor and Copilot.
Equipment: Development is done on Macbooks, involving daily work with various cameras and prototype hardware.
Basic Requirements
Bachelor’s degree in Engineering, Computer Science or a related technical discipline, or equivalent experience.
At least 3+ years of documented mobile apps programming experience
Experience and proficiency in at least one of Swift/Java/Kotlin/Dart languages
Experience and practical knowledge of cross-platform frameworks - ideally Flutter - and willingness to continue that journey
Solid, practical knowledge of design patterns, data structures, algorithms and software design
Knowledge of software engineering best practices including build environments, automated testing and CI/CD
Practical experience with Unix-based CLI/shell tools
Good knowledge of git tooling
Knowledge of software testing methodologies and the testing life cycle
English language skills at level allowing efficient communication
Bonus points for:
Knowledge of C#/.net/JavaScript
Expert skills in one the native stacks (Android/iOS/Windows)
Understanding HTTP and RESTful designs (familiarity with OpenAPI is an extra plus)
Knowledge of digital imaging/photography and audio/video coding
Familiarity with basic networking concepts (TCP/IP, DHCP etc.)
Experience with WiFi and Bluetooth protocols
Knowledge of SSL/TLS protocols, certificates, mutual authentication etc.
Knowledge of Gradle build tooling
Experience automating manual build and delivery pipelines
Prior experience automating end-to-end integration testing for mobile applications
Experience with cloud platforms such as AWS, GCP and Azure
Mobile Applications Software Engineer (Flutter)
Mobile Applications Software Engineer (Flutter)