Cellula Robotics is an innovative engineering company that specializes in automated and tele-robotic systems, primarily for the offshore and subsea market. Our solutions are designed, built, and tested in-house by a skilled team of engineers, technicians and support staff in Burnaby, British Columbia.
About the role
As a key member of Cellula's engineering team, our Software Developers are entrusted with owning complex software design and implementation tasks. They excel at generating technical content efficiently, championing organizational processes, and fostering a positive team culture while providing mentorship and oversight to junior engineers. With expertise in multiple software languages, analytical proficiency, and a proactive approach to problem-solving, they drive product improvements, ensure quality standards, and serve as a catalyst for innovation and excellence within the engineering team. For this role we expect 7+ years of relevant industry experience.
Expectations:
Technical
- Design: Takes ownership of more complex systems and assumes the role of project engineer on major projects.
- Content: Independently generate clear, concise engineering deliverables AND review and approve content from more junior team members.
- Analysis: can independently identify the optimal analytical approach and complete analysis processes for all but the most complex problems. Review and approve analyses conducted by junior team members.
- Requirements: can synthesize requirements and translate into design outputs and review and approve requirements generated by junior team members.
- Specialization: Serves as a Subject Matter Expert in one or more technical areas.
- Breadth: Demonstrates comfort in independently tackling challenging problems within their area of expertise, while seeking guidance as needed in areas of less competency.
Productivity
- Output: Generates content efficiently and provides guidance to junior team members to improve throughput, elevating overall team performance and productivity.
- Focus: Efficiently manages time and prioritizes tasks in alignment with company goals, juggling multiple projects effectively and providing guidance to junior team members in task prioritization.
- Ownership: Takes ownership of complex tasks without requiring oversight, leading by example, and providing guidance to junior team members.
- Professional development: Actively engages in maintaining professional development plans, upskilling in weaker technical areas, guiding junior team members, and providing informal training.
Organizational Impact
- Process: Acts as a champion for organizational processes, ensuring adherence among junior team members, suggesting improvements, and driving change initiatives with thorough documentation and verification.
- Product: Actively suggests & implements improvements to company products, demonstrating a proactive approach to enhancing product quality and performance.
- Quality: Champions quality processes, follows QMS procedures, recommends and implements improvements, and sets an example for junior team members.
- Health and safety: Adheres to health, safety, and environmental rules and procedures, reporting near misses, and promoting a culture of safety within the team.
Soft Skills
- Communication: Independently generates technical content for various documents and tools, articulating design decisions clearly both verbally and in writing. Approves work from junior team members and provides constructive feedback. Communicates with senior management including progress, issues and recommendations.
- Attitude: Embodies the organization's values and mission, fostering a positive attitude among team members and serving as a role model for junior engineers. Challenges are welcomed, and nothing is impossible.
- Teamwork: Collaborates effectively with colleagues, raising and resolving issues or conflicts with senior team members, and facilitating conflict resolution among junior team members.
- Mentorship: Accepts mentorship from senior team members and provides mentorship to juniors, fostering growth and development within the team.
Role specific responsibilities:
- Specification: define requirements for software functionality and behaviors.
- Design: design software architecture, algorithms, and user and device interfaces to support autonomous operation and mission execution.
- Analysis: analyze software performance, reliability, and scalability through testing and simulation.
- Implementation: develop, integrate, and manage software for in-water autonomous operation, mission planning, and human-machine interaction.
- Testing: define and conduct software testing, including unit testing, integration testing, and validation against simulated and real-world scenarios.
- Operations: monitoring software performance, reliability, security, and implementing updates & patches as needed.
- Support: provide technical support for software applications, including bug fixes, feature enhancements, and operator training.
- Design, implement, and manage:
- Software architecture: The overall software architecture, e.g. the library structures, the operating system and middleware interfaces, the modular breakdown of software entities and message-passing between software modules.
- User interfaces: that allow operators to interact with software applications, including graphical user interfaces (GUIs), command-line interfaces (CLIs), and application programming interfaces (APIs).
- Databases: to store and retrieve data efficiently for software applications.
- Networking and distributed systems: for communication between software components running on different computers or devices.
- Software Configuration and Quality Management: the development methods and tools for configuration management and quality control.
- Security and Privacy: to protect software applications and data from unauthorized access, manipulation, or disclosure.
Required Qualifications, Skills, and Experience
- Degree in related field.
- Minimum 7 years working experience.
- Working experience developing software for hardware applications.
- Proficient with: Real-time Linux, ROS2, Simulink, C++, Python, development and target environments.
- Working experience implementing real-time software.
- Excellent communication skills, both written and verbal.
- Software configuration management.
- Technical documentation: specifications, requirements, test plans/reports, operator manuals etc.
- Ability to manage multiple complex technical projects simultaneously.
- Proven ability to create design schedules and lead teams to meet deadlines.
- Demonstrated ability to lead and mentor more junior team members.
- Analytical, thorough, resourceful, and detail oriented.
- Team and customer service focused.
- Self-motivated, hardworking, flexible.
Desirable Skills & Experience
- Experience in the subsea industry.
- Experience with unmanned underwater vehicle system design.
- Experience operating and piloting unmanned underwater vehicles.
- Robotic systems design experience.
- Firmware development experience.
- Experience working with and interfacing to subsea sensors e.g. sonar, cameras, lidar.
- GPU programming experience.
- Cyber Security experience.
- Experience with NI LabVIEW, Simulink.
- Registered P.Eng. with EGBC.
- ISO9001 quality control.
Reports to: Director of Engineering
Position type: Full time
Location: Burnaby, British Columbia