BSP/Embedded Engine Developer
Crank Software – Ottawa, ON
Seniority Level: Medium - High
Employment Type: Full-time
Job Function: Developer
Location: Ottawa, Canada
Job Post: BSP/Embedded Engine Developer
Do you know what the acronym BSP stands for? Have you ever had to write your own serial driver to save your own sanity working with embedded hardware? You don’t stop the processor often ... but when you do you use a JTAG to do it? Have you ever turned off the data or instruction cache to debug a memory coherency issue?
If any of this makes sense to you, then you should think about coming to work at Crank Software where our job is to make hard things easy for our customers when it comes to embedded graphical user interface development!
Crank’s Storyboard Engine is the backbone in addressing this challenge. The Engine runs on embedded hardware with a plugin interface that lets us scale footprint and functionality right from small memory constrained system to large OpenGL multi-core platforms. We optimize down and then we drive performance up. It’s a constant shift that never gets boring because there is always some new piece of hardware with new functionality.
Crank is looking for board support package and deep embedded software developers who are particularly excited about optimizing and enhancing the performance of our embedded engine. We don’t create hardware, but we work with an awful lot of it and we need people who are comfortable working with the raw metal of a system … configuring an operating system environment that’s ready to run Storyboard.
- Develop in C in an embedded environment (FreeRTOS, MQX, ThreadX, Linux, QNX)
- Setting up operating environments to be compatible for Storyboard Engine
- Tweaking BSP (Board Support) packages from silicon vendors ie NXP, STM, Renesas
- Configuring memory maps, display registers, LCD and touch drivers
- Collaborate with team members to identify and resolve product issues
- Creating sanity frameworks for Storyboard bring up
- Resolving board and platform specific issues in a generic way
Improve product quality with new automated test scenarios
- Identify product deficiencies and areas of improvement
- Enhance product test code coverage
- Participate in regulatory compliance test and development activities
- Source code control, track bugs, perform continuous integration and code analysis..
- Post-secondary degree in Computer Science, Engineering, Mathematics or other related discipline and/or diploma in a related field and/or equivalent in a combination of years of experience and education.
- Software development experience at a product level in C
- Experience with embedded software tools ie IAR, GCC, MCUXpresso, STMCube
- Familiar with board support package development process for embedded OS’s
- Embedded C library configuration experience: open/read/write, malloc/free
- Comfortable using embedded testing, automation and profiling tools
- Real-time executive: FreeRTOS/MQX/ThreadX or similar experience
- Effective oral and written communication skills
- Collaborative team player with a knack for solving problems
- An impressive work ethic and a rocking attitude that goes with it!
Nice to Have:
- Familiarity with LCD, display and input drivers and configurations
- Device driver, serial in particular, authoring experience
- Proficiency in multiple programming environments and languages
The most successful candidates are going to have a mix of background and experience:
- Full competency in C and a deep understanding of the C language toolchain
- Pre-processor, Compiler, Linker and C library configurations
- Software development experience at a product level
- Source code control, bug tracking, continuous integration, code analysis
- Enjoy challenges of putting big things into small spaces
- Do you pack your car like Tetris when you go on vacation?
- Interest in user experience, user interfaces, graphic design or rendering technologies
We’re looking for good people who love to code graphics and user interfaces .. plain and simple.
If you are one of those people and you want to work somewhere great, then you should definitely reach out and get to know who we are and what we’re all about!
Personal and professional attributes:
- Energy and enthusiasm
- If Eeyore is your soulmate then you’re not going to be happy here
- Critical thinking
- Great things come from a healthy debate and people with opinions to share are always welcome here. Big challenges mean doing things differently
- Team attitude
- We write code alone, but we work as a team to make it the best code possible from idea generation to infrastructure support we are unified in our goal
- Desire to learn
- Failure is an opportunity to do better. We fail frequently and we’re more successful because we learn from it and get better! Does that work for you?
Well, ask Crank’s employees! They were recently ranked as one of Ottawa’s top 10 employers at the 2018-19 Employee’s Choice Awards.
Perks of working at Crank
- Competitive compensation plan including a comprehensive benefits program
- Annual health and wellness allowance
- Continuous professional development allowance
- Brand new innovative workspace
- Work-life balance
- Fun social atmosphere
Interested? Send your resume to firstname.lastname@example.org and reference "BSP - Embedded Software Developer" in the subject line.
Crank Software is an Equal Opportunity Employer and Prohibits Discrimination and Harassment of Any Kind.
Crank Software is committed to the principle of equal employment opportunity for all employees and to providing employees with a work environment free of discrimination and harassment. Crank Software will provide reasonable accommodation to employees who have protected disabilities consistent with local law.