Sr. Mobile Software Engineer
San Diego, CA, United States
Seeking a talented and motivated Embedded Software Engineer with expertise in Linux/Android frameworks. The candidate will have opportunities to prototype, develop and support commercialization of SW solutions for cutting edge mobile use cases.
Software development would involve integrating on-device AI models, and making changes to across the android stack ranging from Android application layer, Java services, native daemons and the Kernel.
Preferred Qualifications:
At least 2 years of experience working with embedded Linux and/or Android.
Prior experience with on-device AI runtimes like TFLite, ExecuTorch and Qualcomm AI stack is a big plus.
Experience in multithreaded programming, networking, device driver development, Android SDK, NDK and framework.
2-5 years of industry experience developing embedded SW using C/C++, Java
Solid understanding of object oriented programming and data structures
Familiarity with python for AI/ML related tasks.
Familiarity with ARM processors, ARM Assembly, Mobile SoC architecture - subsystems, hypervisor/virtualization, security, memory, storage, buses, peripherals, power, thermals.
Debugging skills, experience with Linux kernel debug tools and JTAG
Working experience in board bring up and analyzing crash dumps.
Experience using git for development; patch/tree management.
·Strong written and verbal communication skills
Principal Duties and Responsibilities:
• Applies Software knowledge and experience to design, develop, create, modify, and validate embedded and cloud edge software, applications, and/or specialized utility programs.
• Analyzes user needs and software requirements to design and customize software for optimal operational efficiency.
• Designs and implements software modules for products and systems.
• Participates in the design, coding for large features, unit testing, significant debugging fixes, and integration efforts to ensure projects are completed to specifications and schedules.
• Performs code reviews and regression tests as well as triages and fixes issues to ensure the quality of code.
• Collaborates with others inside project team to accomplish project objectives.
• Writes technical documentation for Software projects.
Level of Responsibility:
• Works under supervision.
• Decision-making may affect work beyond immediate work group.
• Requires verbal and written communication skills to convey information. May require basic negotiation, influence, tact, etc.
• Tasks do not have defined steps; planning, problem-solving, and prioritization must occur to complete the tasks effectively.