Product Software Developer
Crank Software – Ottawa, ON
Seniority Level: Medium
Employment Type: Full-time
Job Function: Developer
Location: Ottawa, Canada
Job Post: Product Software Developer
Are you a C and/or Java Developer and a Python scripting artist? Do you look at problems around you and immediately start reflecting on what kind of data structure would serve to best organize that data? Do you like to make hard things easy?
Crank’s challenge is to build an interactive user interface design tool for embedded developers who aren’t really embedded developers but rather creative individuals who don’t want to know about the limits or constraints of resource constrained embedded systems - we tackle little bits of this challenge every single day!
We use Java to build the Storyboard Designer environment on top of Eclipse. This isn’t the stodgy kind of java you find on back-end servers, this is fun Java with 3D models, custom graphics, external JNI communication, performance and data analysis and yes ... we do have some standard UI items like buttons and menus too.
Want to get a bit more low level? We’ve got C - a - plenty in Storyboard Engine. 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.
The product has an integrated Lua script engine. Our continuous integration build, test, analyze and report process is written using Python. We script because it is the right tool for this job of moving fast and continually improving.
- Produce Java (Storyboard Designer) and C (Storyboard Engine) based software
- Develop new product functionality based on customer feedback
- Enhance user experience with better design time workflows
- Support new rendering features end to end, from Engine to Designer
- Create new design analysis tools for embedded deployments
- Collaborate with team members to identify and resolve product issues
- Resolve rendering differences in cross platform environments
- Profile and optimize Designer and Engine performance
- Address product deficiencies and shortcomings
- 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.
- Code graphics and user interfaces
- Post-secondary degree in Computer Science, Software 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.
- An acceptable level of Software development experience at a product level in either C or Java.
- Linux/QNX development experience
- Experience in graphics rendering and layouts for UI and UX design patterns
- Keen eye for detail and usability
- Experience with 2D and 3D application tools such as Photoshop or Illustrator
- 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:
- Experience in Lua
- Experience working with and interfacing with embedded systems
- Prior experience with UI frameworks including Storyboard, Qt, XWindows, or Java
- Comfortable with OS, editor and tools to be immediately productive
The most successful candidates are going to have a mix of background and experience:
- A full competency in one of C or Java
- 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-2019 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 "Storyboard Product 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.