View Our Website View All Jobs

Embedded SW Developer

Duties


We are looking for an embedded software developer who will work with a group of compute silicon architects and embedded processor/system designer. This candidate will bring hands-on development experience to the team and support the architects in customizing new silicon compute platforms. Software implementation is mostly in C/C++, on bare-metal or RTOS.  The candidate is expected to contribute in exploring various optimization options and instruction-set architectures using platform specific intrinsic instructions and/or extensions in SW development. SW applications include but not limited to machine-learning, digital signal processing, image/audio processing, compression, and security.

Hiring Manager note:

"I'd like someone who is strong in coding (C/C++), but knowledge of modern architecture DSP/CPU/GPU compute chips. When I interview I look for strong coding skills (C/C++), but I also probe to see if the candidate has the required HW background. However, we are flexible to find someone with strong coding to relax the HW requirement".

Important info to know:

What are the top non-negotiable skills needed to be successful in this role?

  • C/C++ and general problem solving skills, signal processing, computer vision, image processing background is highly desired but not required.

Are there any specific certification or educational background required for this role? Is this position open to someone that has the skill set and not a college degree?

  • Yes and No, at least BS is needed for this role, but if the candidate has a strong resume with 10+ years of experience in reputable companies, he/she will be considered.

 

Skills


  • Work with and support silicon and embedded system architects
  • Port/reimplement existing research codes to various types of target compute platforms, RTOS, or bare-metal
  • Write low-level assembly or use target specific libraries in porting high-level compute codes to a new platform
  • Convert multi-thread codes to single or vise-versa
  • Performance profiling on CPU/DSP/Specialized HW virtual platforms, simulators, or emulators
  • Write new benchmark codes for KPI and performance analysis
  • Create performance verification test wrappers and profiling test-cases, by isolating compute kernels and applying real-world stimulus 
  • Add instrumentation codes, reporting and needed scripts for profiling and runtime statistics gathering

 

Education


 

  • Bachelor's or master degree in EE, CS or related fields
  • Knowledge of C++ and OOP
  • Knowledge of STL libraries and pthreads
  • Familiar with compute C++ libraries: Boost, Eigen, OpenCV, …
  • Prior experience with coding on DSPs, vector co-processors, or higher-end compute micro-controllers
  • Familiar with profiling tools: VStudio and GProf
  • Familiar with serialization/deserialization libraries for C++
  • Comfortable with reading others code, tracing them, and code refactoring
Read More

Apply for this position

Required*
Apply with Indeed
We've received your resume. Click here to update it.
Attach resume as .pdf, .doc, .docx, .odt, .txt, or .rtf (limit 5MB) or Paste resume

Paste your resume here or Attach resume file