Rambus

  • SMTS II - Embedded Software Engineer

    Job Locations US-CA-San Francisco
    Job ID
    2018-6357
    Category
    Engineering
  • Overview

     

    Cryptography Research is hiring a Principal Software Engineer with deep expertise in embedded systems to join our world class technology team in our San Francisco office.

     

    You will work closely with hardware, software and security architects and engineers to architect, design, implement and ship crypto related embedded software for resource constrained environments.

     

    Candidate must be experienced with standard software development processes, methodologies, and tools and must have a track record of very high technical competence that includes strong coding skills and individual technical accomplishments.

     

    This position involves work on a wide range of projects related to all areas of embedded system development, including driver development, application development, and development of internal software tools used for testing and verification of hardware and software. Cryptography/security experience is not required, but an ability and interest in learning is essential.

    Responsibilities

     

     

     

    • Architect, design, implement and ship embedded security solutions
    • Analysis of architecture requirements and authoring of specifications for large embedded software solutions
    • Design of APIs and interface documents for both internal and external customers
    • Development of device drivers for CRI hardware and related systems.
    • Development of applications targeting smart cards, security cores and hardware security modules (HSMs)
    • Development of unit test frameworks
    • Mentoring of junior developers and reviewing their work
    • Initiating and conducting code reviews
    • Working with technical writers to document software architecture and design
    • Specification and development of SQA tests, test harnesses and test sequences needed to ensure high quality code development
    • Collaborating with Rambus engineers, partners, and customers to integrate RambusI hardware and software into larger systems, including system-on-chip and server environments.
    • Provide engineering support of products at customers or in the field
    • Collaboration with Rambus engineering and IT to ensure smooth and reliable operation of software and systems for fulfilling business objectives and processes.

    Qualifications

    Required Skills/Experience

     

    • BS in computer science, computer engineering, electrical engineering, or related degree preferred; but substantial, outstanding work experience may substitute in some cases
    • Ten or more years of significant, relevant experience as a software engineer working on embedded systems
    • Expert-level skills in C, including C development in resource-constrained embedded environments
    • Experience with C++ and UNIX/Linux system programming
    • Experience with at least one scripting language such as Python
    • Significant experience with programming and debugging of embedded systems, including low-level programming tasks such as direct programming/interfacing of HW features, HW driver implementation and other tasks that go beyond working only at the application layer within an embedded system
    • Bare metal experience
    • Experience with one or more RTOS
    • Significant device driver development for several of the following interface types: USB, I2C, SPI, UART, JTAG, GPIO, PCIE
    • Software development experience with ARM or similar embedded processor cores
    • Knowledge of cross-development environments and source code control for embedded software development
    • Experience in system level software (RTOS, test application) development and debugging in embedded environment
    • Experience taking projects from initial architecture through shipping
    • Agile/SCRUM

     

     

    Desirable Skills/Experience

     

    • Experience with hardware bring-up and troubleshooting
    • Experience in Board Support Package (BSP) development for HW platforms based on Embedded Cores like ARM, MIPS
    • Experience with Xilinx and Altera FPGA and CPLD programming and debugging
    • Java, Android, including JNI
    • Security/Crypto experience

    Options

    Sorry the Share function is not working properly at this moment. Please refresh the page and try again later.
    Share on your newsfeed