Sr Software Engineer Embedded Linux at Acacia Communications
Maynard, MA, US
    • Maynard, MA, US
      Acacia Communications is an optical networking technology company that empowers cloud and content providers to connect at the speed of light enabling them to meet the rapidly increasing consumer demands for data.


    You will be a key member of Acacia’s Software team responsible for embedded CPU code development to configure and manage our products.  You will interface with Hardware, ASIC, Optical, and DSP teams in the engineering organization to architect the system software, develop algorithms, contribute to code development, and participate in system bring up and debug.

    Essential Responsibilities:

    • Design, implement and unit test robust control loop algorithms
    • Contribute and collaborate on good design practices in a multi-processor/multithreaded architecture
    • Contribute and collaborate with Optics/DSP/HW engineering teams to develop efficient compact algorithms for embedded CPUs
    • Support system bring up and debug in the lab
    • Interface with product engineering and other cross-functional teams as required
    • Strong oral and written communication skills


    Minimum Qualifications, Experience, Skills, Education and Certifications:

    • BS or MS (preferred) in Electrical, Electronics or Computer Engineering with 7+ years of experience in the communication industry
    • Proficiency in C and C++
    • Significant experience in complex embedded firmware development (both control and data path) in communication industry
    • Proficiency with RTOS and embedded CPUs and microcontrollers (ARM®, Intel)
    • Significant experience with Linux kernel and device-driver development for embedded systems
    • Familiar with I2C, SPI, MDIO, USB, PCIe interfaces
    • Experience with scripting language(Python, Bash)
    • Experience in network programming (sockets, TCP, UDP, HTTP)
    • Experience with a revision control system (CVS, Perforce™, GIT)
    • Hands-on laboratory experience is critical and required for this position
    • Excellent verbal and written communication skills


    Highly Desired Skills:

    • Experience with developing/debugging software state machines
    • Experience working within a team environment developing complex control plane code in a multi-processor/multithreaded environment
    • Experience defining system level API in the communication industry is highly desirable
    • Working knowledge of Yocto build system to create embedded Linux distributions
    • Hands-on experience with contributing to the Linux kernel
    • Experience with collaborative code review tools (such as Jira Crucible®)
    • Ability to read schematics and use common lab equipment (logic analyzers, oscilloscopes)



    Physical Requirements:

    • None


    All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, or veteran status.