About KATIM
KATIM is a leader in the development of innovative secure communication products and solutions for governments and businesses. As part of the Space & Cyber Technologies cluster at EDGE, one of the world s leading advanced technology groups, KATIM delivers trust in a world where cyber risks are a constant threat, and fulfills the increasing demand for advanced cyber capabilities by delivering robust, secure, end-to-end solutions centered on four core business units: Networks, Ultra Secure Mobile Devices, Applications, and Satellite Communications. Our talented team of cross-functional experts continually takes on new challenges. We work with the energy of a start-up yet the discipline of a large business to make solutions and products work for our customers at scale.
In this role you will be responsible for software design, implementation, testing, debugging, and deployment of security-focused products and apps. We believe in short feedback loops, well-designed and documented APIs, test-driven development, and automation whenever possible.
The successful candidate will join a talented team of experienced software engineers, working on challenging projects and mentoring and setting examples for the entire engineering community to elevate KATIM team's culture and effectiveness.
Key Responsibilities
- Design, code, test, and maintain software solutions that meet or exceed customer expectations.
- Collaborate with cross-functional teams to define, design, and ship new features.
- Contribute to the architectural decisions for software projects, ensuring scalability, maintainability, and performance.
- Collaborate with architects to design solutions that align with overall system architecture.
- Conduct and participate in code reviews to maintain code quality and ensure adherence to coding standards.
- Implement and advocate for best practices in software development and testing.
- Analyze and troubleshoot complex software issues, providing effective solutions.
- Collaborate with the team to identify and address technical challenges.
- Work closely with product managers, UX/UI designers, and other stakeholders to understand and refine software requirements.
- Collaborate with cross-functional teams to integrate software components seamlessly.
- Provide technical leadership and guidance to the development team.
- Mentor junior engineers, fostering a culture of knowledge sharing and continuous learning.
- Create and maintain technical documentation, including design documents, API documentation, and release notes.
- Ensure documentation is up-to-date and accessible to the development team.
- Identify and address performance bottlenecks in the software.
- Optimize code and algorithms for efficiency and scalability.
- Collaborate with cross-functional teams to solve complex problems and deliver high-quality software solutions.
- Work proactively to address challenges and find innovative solutions.
- Participate in Agile/Scrum development processes, including sprint planning, backlog grooming, and retrospective meetings.
- Contribute to the continuous improvement of development processes and methodologies.
Education and Minimum Qualification
- BS in Computer Science, Computer Engineering, Mathematics, or related field, or equivalent experience in industry / Masters preferred.
- Minimum 7+ years of experience.
- 5+ years of professional experience developing publicly available mobile and desktop apps (Android, iOS, macOS, Windows).
- 2+ years of experience in Flutter and Dart.
- 1+ years of experience in Rust.
- Experience with writing Flutter Unit/widget/integration tests.
- Experience with Concurrency Isolates Dart experience.
- Experience with state management approaches (BLoC, Provider, etc).
- Participated in the release of at least 2 publicly available apps to Google Play / Apple App Store from feature inception to launch using automated tooling like Jenkins, Gradle, Fastlane, Pods.
- Solid understanding and experience in software development best practices and secure coding.
Key Skills
- Common software architectural practices and principles (MVC, MVP, MVVM, Clean, SOLID).
- Knack for creating readable, well-crafted, maintainable code and documentation.
- Proficient in writing modular, testable, tested, performant Dart code using best practices such as TDD, focusing on automated end-to-end quality.
- Proficient with Dart (Flutter).
- Familiarity with Rust.
- Extra points for experience in design and development of C/C++ SDKs.
- Knowledge of the mobile landscape, architecture, trends, and emerging technologies used in creating performant, resilient, and robust mobile apps (Android, iOS).
- Proficient application knowledge and strong development experience involving cryptographic algorithms/protocols.
- Proficiency with CI and CD tools and techniques to keep the development branch always in a releasable state.
- Strong written and verbal communication skills, including the ability to sell complex topics with members of management at all levels.
- Familiarity with development and configuration tools (Git, Jira, Jenkins, etc.).
- Self-motivated and driven; takes ownership of personal and team goals.