Are you the kind of person who loves the prospect of unboxing a new piece of hardware? Plugging it in, hooking up the JTAG and flashing that first demo image and seeing it run? Do you have a wall of JTAG connectors ready to go for just this purpose?

Do you know how to configure a linker script to put all of your software bits in just the right places? What about that tricky flash configuration or setting up the dynamic memory controllers so that you can make the most of all the hardware resources and not just the things that the board vendors gave you with the BSP?

Do you favour small systems for small tasks and big ones for big tasks? Use Linux when you need an interactive interface but FreeRTOS when you just need to provide a bit of motor or servo control?

Crank is looking for an embedded system developer who has experience working with embedded real-time executives like FreeRTOS, MQX or UCOSII/III to help expand our range of supported rendering platforms. 


Some of the things that you will be involved with:

  • Setting up and configuring new hardware platforms (often pre-release) to run Storyboard's graphics engine as they make their way from silicon vendors like NXP, STMicroelectronics, Microchip, and TI.
  • Optimizing the Storyboard Engine for the capabilities unique to each embedded hardware platform. Specialized blitters, tuned assembly, and hardware display layer support are things we dive into.
  • Engaging with customers to provide expertise and guidance during their product hardware selection and customization. Customers start with evaluation hardware and evolve to create their own platforms, so our guidance matters to them.
  • Develop new software extensions for Storyboard's graphic engine to make it a leaner and more portable technology. We strive for constant improvement! 


These are the skills we're looking for:
 

  • Experience working with embedded hardware platforms such as STMF7, Renesas RZ, or NXP's i.MX RT, specifically configuring flash and memory configurations to meet program constraints. We are looking for between 3-5 years of battle scars. 
  • C/C++ software development experience. You will be working with our engine software and helping to design and architect new pieces of it. Understanding the ramifications of how a structure is laid out in memory is important.
  • Experience with embedded development toolchains such as IAR, Kinetis Design Studio, Keil, or cross compiling with GCC.
  • Passion for graphics and understanding of LCD and display interfaces. If you have written display or touch interface drivers yourself, that's what we're looking for!
  • Friendly, engaging, and excited about making things better. We are customer driven and often have deep technical discussions with them. Being pleasant to work with and be around is table stakes.

If this sounds interesting to you, then let's have further discussion!  Send your resume to: careers@cranksoftware.com