Embedded Software Engineer - San Jose, United States - Bayone

    Default job background
    Description

    Responsibilities:


    Are you a passionate and hands-on embedded Linux SW developer? If yes, we have this great opportunity for you to work on Rivian's state-of-the-art EV chargers and energy systems The well qualified candidate will be responsible for the specification, design, implementation and testing of various embedded software components for Rivian's DC charging/energy systems.

    The SW runs in embedded Linux OS on embedded HW platforms. Typical components involve PWM, A/D, D/A, sensors, CAN/Ethernet, low latency discrete board-to-board communication, timer applications, gRPC, Dbus, etc. The candidate is responsible for all aspects of embedded SW engineering from requirements, coding, to validation. This position requires a solid understanding of multi-core embedded processor/controller architecture and peripherals.


    The tasks include but not limited to:

    • Design, build and maintain embedded Linux components and interface/device drivers for embedded SW applications.
    • Embedded SW architecture design and algorithm packaging/coding.
    • Create elegant/efficient software components and bullet-proof API/interfaces for real time workloads
    • Develop software component testing methodologies and implementations to ensure maturity/stability.
    • Work on hardware bench to guarantee software operation and debug system problems.
    • Solve real-time signal/data processing problems.
    • Document requirements, software design and test procedures/results.

    Qualifications:


    • Hands-on skills and enthusiasm in embedded SW programming using C++/C, Python.
    • Experience with embedded Linux SW development is highly desired.
    • Understanding of basic Linux OS, kernel operation and build tools.
    • Comfortable to work in Linux terminal and use scripting language such as Shell/Python/Perl.
    • Knowledge of HW peripherals such as Ethernet, CAN, I2C, SPI, Uart, USB.
    • Experience with collaboration tools such as Jira, Jama, SharePoint.
    • Experience with embedded debugging tools such as Jtag, PLS/UAD, Lauterbach.
    • Proficiency in version control software such as Git.
    • Good team player with excellent verbal/written communications skills.
    • Self-motivated, schedule driven, active/positive, eager to learn and explore.
    • Ownership and leadership to drive the solution of complex problems across multiple teams and domains.
    • Enjoy a fast paced dynamic environment (quick turn around time, modification of schedule to meet new needs).
    • A college degree in an applicable engineering field.