If you like to work hard, thrive on solving stimulating problems, and want to join an industry-leading team of ASIC and FPGA specialists, we want to hear from you

Why work with us?
We are a well-respected company with a highly skilled team
We care about our employees and offer them competitive compensation
We work with interesting companies on challenging projects
We’re looking to expand our world-class team
Embedded Software Designer – Machine Learning and ADAS

Duties and Responsibilities

The Embedded Software Designer will interact with hardware and system groups to work on the latest technology. They will have the following responsibilities:

  • Specification and development of embedded software for use in Linux or RTOS environments and standalone products
  • Design and implementation of embedded software for SOC-based hardware controlor end-user applications in Automotive or other Machine Vision and Deep Learning applications

Requirements

This position requires a dynamic embedded software designer who is a fast learner and is eager to apply their skills working with the latest SOC or system technology:

  • A minimum of an Bachelor’s Degree in Computer Science, Computer or Electrical Engineering, Master’s preferred
  • A minimum of 3 years of relevant experience
  • Experience developing complex C++ applications required. Perl or Python also preferred
  • Experience with embedded development in a Linux or RTOS environment
  • Experience with complex algorithms and data structures
  • Experience with optimizing performance of embedded software
  • Experience with modern ARM embedded processors, GPU/SIMD processor programming preferred
  • Experience with standard interfaces e.g. Ethernet, PCIe, SPI, I2C, GPIO, CAN preferred
  • Work or Master’s research/project experience in one or more of the following:
    • Graphics, video processing, codecs, cameras, GPUs
    • Computer vision, machine learning
    • Advanced Driver’s Assistance System (ADAS)
Software Designer - Automotive (Multiple Jobs)

Duties and Responsibilities

The Software Designer will be a part of the connected car platform team developing product releases through the entire lifecycle. They will have the following responsibilities:

  • Deliver state of the art software solutions for cloud connected in-vehicle modules communicating over the CAN/Ethernet network
  • Work in an Agile environment implementing, testing and maintaining features in C/C++
  • Innovate and contribute to process improvement

Requirements

This position requires a dynamic embedded software designer who is a fast learner and is eager to apply their skills working with the latest in-car system technology:

  • A minimum of an undergraduate degree in Computer Science, Computer or Electrical Engineering or an equivalent combination of skills and experience
  • A minimum of 3-5 years of relevant experience
  • Experience developing complex OO C++ applications required (minimum 3 years).
  • Embedded software development experience through entire development lifecycle
  • Strong computer science foundation in algorithms, data structures, memory management
  • Advanced troubleshooting and problem solving skills
  • Strong verbal and written communication skills
  • Self-driven, self-motivated plus able to work in a multi-site team environment
  • Proactive and keen to learn new tools and technology
  • Working knowledge and experience in one or more of the following areas preferred:
    • Embedded development on embedded Linux or QNX
    • CAN-based vehicle development, AUTOSAR, automotive diagnostics protocols, Google Protobuf
    • Enhanced multi-threading and IPC knowledge
    • Build systems (Jenkins), revision control (GitHub) and defect tracking (JIRA)
Software Designer – Networking

Duties and Responsibilities

The Networking Software Designer will interact with hardware and system groups to work on the latest technology. They will have the following responsibilities:

  • Specification and development in embedded Linux or VxWorks environments
  • Design, coding, testing and maintenance in C/C++
  • Development of L2/L3 networking control plane software for optical transport equipment

Requirements

This position requires a dynamic software designer who is a fast learner and is eager to apply their skills working with the latest software and system technology:

  • A minimum of an undergraduate degree in Computer Science, Computer or Electrical Engineering or an equivalent combination of skills and experience
  • A minimum of 8-10 years of relevant experience
  • Experience developing complex C++ applications required.
  • Experience with embedded development in embedded Linux or VxWorks environment
  • Experience with complex algorithms and data structures
  • Experience with optimizing performance of embedded software
  • Experience with L2/L3 networking control plane and routing software development for optical transport equipment, switches or routers
  • Experience in several of the following areas:
    • Protocols: IP: BGP, IS-IS, OSPF; MPLS: LDP, RSVP-TE, BGP-LU
    • Networking applications: Segment routing, seamless MPLS, L2 VPN, L3 VPN
Embedded Software Designer

Duties and Responsibilities

The Embedded Software Designer will interact with the hardware group to work on the latest SOC or FPGA technology. In addition, they will have the following responsibilities:

  • Specification and development of embedded software for use in Linux or RTOS environments and standalone products
  • Design and implementation of software to control SOC or FPGA hardware solutions

Requirements

This position requires a dynamic embedded software designer who is a fast learner and is eager to apply their skills working with the latest SOC or FPGA technology:

  • A minimum of an undergraduate degree in Computer Science, Computer or Electrical Engineering or the equivalent combination of skills and experience
  • A minimum of 5 years of relevant experience
  • Experience with C/C++ required, Python, Perl or TCL preferred
  • Experience with embedded software development in a Linux or RTOS (e.g. VxWorks) environment including multi-threading and IPC
  • Experience in low level HAL, driver development, register interface programming of networking SOCs, ASICs and FPGAs
  • Experience with micro-controllers and embedded processors such as ARM
  • Experience porting/maintaining BSPs preferred
  • Experience designing and bringing up BOOTROMs preferred,
  • Experience with general algorithms, data structures and memory management
  • Experience with standard devices e.g. Ethernet, PCIe, SPI, I2C, USB, GPIO and memory architectures  DDR/SDRAM/DMA
  • Wired networking experience on optical transport, switch or router platforms preferred
ASIC/FPGA Verification Specialist
Duties and Responsibilities

The ASIC/FPGA Specialist will work in an exciting team environment and will have the following responsibilities:

  • Priming the verification activities for a block or an entire chip.
  • Architecting the verification environment using OVM and writing the associated documentation.
  • Participating in the test case writing activity.
  • Using constrained random verification approaches when possible.
  • Using direct test cases to support lab bring-up.
  • Performing code coverage and functional coverage

Requirements

  • A minimum of 8 years of relevant experience in ASIC/FPGA Verification.
  • Familiarity with System Verilog, OVM/UVM, Verilog (mainly), VHDL, and scripting languages.
  • Familiarity with SONET, OTN, Ethernet, PCIe.
  • Familiarity with constrained verification techniques, assertions and functional coverage.
  • Excellent communication skills.

 

ASIC/FPGA Designer
Duties and Responsibilities

The ASIC/FPGA Designer will work in an exciting team environment and will have the following responsibilities:

  • Understanding high-level requirements and translating them into a detailed design specification documents.
  • Writing RTL (mainly Verilog or System Verilog), run block-level simulation, FPGA backend or ASIC synthesis, DFT insertion, timing closure.
  • Performing lab bring-up, product integration and support.
  • Interfacing with the verification team, hardware team and support team.

Requirements

  • A minimum of 6 years of relevant experience in the ASIC/FPGA design field
  • Strong RTL coding skills
  • Strong scripting skills
  • Familiar with SONET, OTN, Ethernet, PCIe
  • Excellent ability to work in a team
  • Experience with System Verilog would be an asset
  • Experience with SoC design would be an asset
  • Software background would be an asset