Cellebrite is a company focused on enhancing digital investigations to protect and save lives. They are seeking an Android Firmware Engineer to port and maintain virtual Android devices, while engaging in various development processes including coding, debugging, and testing.
Responsibilities:
- Port AOSP, build it, debug it
- Work on custom peripherals or drivers
- Hands on code implementation / debugging / development and testing of virtual Android devices
- Create and write top-notch quality code; create and maintain that working software
- Tune code for optimal resource utilization, reliability, performance and energy efficiency
- Participate in the design, development and testing of our software platform as a member of the timing products solutions team
- Write and execute Test Cases based on templates and best practices
- Ensure that the latest versions of Android are ported to work on our hypervisor
- Architect and design new code
- Work with members of our hardware modeling team to ensure Android-related hardware chipsets work correctly with our hypervisor
- Maintain and implement automated test environment and regression tests
- Provide inputs to the documentation team and review technical documents as required
- Interact with product owner, development teams and stakeholders to develop a strong understanding of the product requirements
- Evaluate and validate embedded design alternatives to create optimum system designs
- Collaborate effectively with different functional teams spread across multiple locations
- Work closely with verification and validation (test) team to ensure full test coverage, and quick closure of reported firmware defects
- Develop scalable solutions that adhere to performance specifications and align with customer needs
Requirements:
- Bachelor's Degree in Computer Engineering, Web Development, Computer Science or equivalent experience
- Deep understanding of Android architecture, system frameworks, HAL, and services
- Experience with Android debugging tools and techniques
- Experience with AOSP (or one its derivatives), syncing it, building it, debugging it, and modifying it
- Deep understanding of microprocessor and microcontroller fundamentals, basic electronics, algorithms, and design patterns
- Experience with the Java, C++, and C programming languages
- Experience with at least one script programming language (shell, python, etc.)
- Experience with software version control using Git
- Strong familiarity with Android debugging tools and techniques
- Experience with Android audio, Wi-Fi, and Bluetooth framework architecture
- Experience with the Google Compatibility Test Suite (CTS) certification and issue debugging
- Experience with implementing Android HALs for custom peripherals
- Experience with BSPs and Linux device driver development
- Experience with SELinux
- Experience with reverse engineering and dynamic instrumentation tools such as Frida