What are the responsibilities and job description for the Product Software Integration and Test Engineer position at ThunderSoft?
Assignment Duration: 12 months (extension subject to performance and overall fit)
Job Summary:
As a Product Software Engineer , this role requires working on Product Software development and testing tasks for various programs (e.g. Smartphones ( Linux, Android OS etc.), Computing devices (e.g. Laptops, Servers) , Automotive Infotainment & ADAS systems ,and other consumer & Industrial IoT products). You will work and collaborate with various other Engineering teams e.g. Software, Systems , Hardware, Architecture and Test teams for delivering end to end product software solution for such programs.
JOB DESCRIPTION:
- Modem protocol layer ( 5g call flows for layer 1 , RF etc.) debugging using OTA logs is a hard requirement.
- Requirements: Specific skills needed to be successful in this role, what % of the day will the candidate be using a specific skill (ex: 50% of the job is scripting in python, 10% C )
- Debugging & Failure Analysis : >50% of daily tasks.
- On-target debugging : >50% of effort goes in debugging failures with new SW builds.
- Log analysis : to root cause failure ( Functional failure, or stability issues or performance analysis).
- Developing new Test cases and automation scripts to automate manual tasks (e.g. automation of a test case to run this on multiple test stations and capturing logs for failure cases from each station).
- Things to target: Schools, prior companies, specific programs, titles
- Experience with tools (e.g. QXDM, Qprofiler, xPCAT, etc.) for debugging Modem & Linux OS issues (logcat, journal, dmesg).
- 5G Modem development, test and debug experience (UE or Network)
- Linux OS (e.g. Android, Yocto , Ubuntu, RHEL) based embedded device experience.
- 5G O-RAN (Open RAN): Understanding of Architecture, Procedures and Use Cases
- Anything to avoid: Skills that won’t be a match, prior experience, certain company sizes, etc.
- Pure Full stack /Enterprise Application Developers SW experience (without any embedded experience) can be avoided.
- Distributed systems, and DevOps Specialists
- Data engineering, BI analysts
- VLSI / ASIC Design Engineers
- Hardware-Focused Engineers whose work is concentrated on board design, circuit design, PCB validation, signal integrity, power systems, silicon characterization
Software Integration Tasks :
- Integrate software components and configurations to meet product specifications.
- Maintain and enhance automation for continuous integration systems.
- Resolve build failures, resolve any software interface dependencies.
- Create and maintain build scripts to optimize the build generation process.
- Manage software configuration using version control system ( e.g. Perforce or GIT or Github etc.)
- Announce and release new software baselines.
Product Software Sanity Testing:
- Sanity test the incremental builds to catch any regression issues due to new integration tasks. This testing happens on-target devices, simulators and reference platforms.
- Debug any sanity test failures. This requires understanding of common on-target debugging tools such as JTAG, ADB , simulators, log analysis etc.
- Create scripts to automate the test scenarios and process logs.
- Create test plans to cover test coverage for new features being enabled through software integration cycles.
- Collaborate for design and code-reviews with other technical & business team members.
Minimum Qualifications:
- Bachelor's or Masters degree in Electrical & Computer Engineering, Computer Science, or related field.
- Minimum 2 yrs of experience working with embedded system development environments.
Top 5 Required Skills:
1. Embedded SW development for ARM & x86 based systems
2. Work experience with Linux based operating systems such as Android, Yocto, Ubuntu, RHEL etc.
3. Familiarity with Mobile communication devices , e.g. smart phone debugging & failure analysis of Software issues.
4. On-target debugging using JTAG or other similar debugging tools.
5. QXDM or similar diagnostic tool experience to debug device failures using on-device and serial logs from device ( running Linux OS).
Technologies:
- C programming
- JTAG Debugging
- Linux OS based SW development ( e.g. Android, QNX, Yocto , RHEL)
- Device log analysis
- Wireless communication standards (e.g. 5G, 4G etc.)
Preferred Qualifications:
- Experience with Linux based operating system based SW development ( RHEL, Ubuntu, Yocto) .
- Knowledge of different debugging tool such as TRACE32,OpenOCD,etc for compute and IoT projects.
- Experience with Software development, debugging and testing with ARM64 or x86 based product development for Linux based OS.
- Experience with using open source software, enablement of such software for different hardware platforms by collaborating with software & hardware teams.
Salary : $45 - $57