Principle Embedded Software Engineer - Surrey, United Kingdom - Maestro Technologies, Inc.

    Maestro Technologies, Inc.
    Maestro Technologies, Inc. Surrey, United Kingdom

    2 weeks ago

    Default job background
    Description

    Job Description

    • Participate in the full life cycle of telecoms product development, from specification and design through implementation, testing and support.
    • Provide technical leadership in software development for embedded systems in a Linux environment, perform design integration and testing.
    • Work with real-time operating systems or develop software that operates in real-time environments, ensuring that critical tasks are executed within specified time constraints.
    • Optimize software performance and memory usage to meet the resource constraints of embedded systems, ensuring efficient utilization of hardware resources.
    • Collaborate with Firmware and Hardware engineers to ensure that projects are delivered on time.
    • Coordinate design review activities to ensure that designs meet their requirements.
    • Create and maintain comprehensive documentation for the embedded software, including design specifications, coding standards, and user manuals.
    • Stay updated on emerging technologies, tools and best practices in embedded software development.

    Candidate requirements

    • Bachelor's or master's degree in computer engineering, electronics or related fields.
    • Over 8 years' proven Industrial experience in embedded software design within the telecommunication sector.
    • Strong Software Engineering skills including design, programming using C, scripting (Python, perl).
    • Very strong Linux experience.
    • Must have a deep understanding of digital circuits, Microcontrollers, Microprocessors and FPGAs.
    • Strong experience in developing and testing communication protocols (I2C, SPI, Ethernet, UART).
    • Good knowledge on ARM drivers and low-level device interface design and development.
    • Ability to work collaboratively and build and maintain relationships with team members.
    • Experience developing embedded Linux on ARM processors.
    • Experience with source control e.g. Git, SVN, CVS
    • Excellent debugging skills using debugging and testing tools: JTAG, Oscilloscope, Logic analysers.
    • Excellent verbal and written communication skills.