Software Developer, Junior

Engineering · Full-time · Burnaby, CA

Job description

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 accepting mentorship and oversight from senior engineers. With experience 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 1+ years of relevant industry experience.  

Expectations:

Technical

  • Design: able to apply first principles and engineering best practice to solve problems with regular input from senior team members.
  • Content: generates technical documents, work instructions, and BOMs with minimal input from senior team members.
  • Analysis: conducts simple analyses with input from senior team members.
  • Requirements: translates requirements into design outputs with minimal input from senior team members.
  • Specialization: minimal expectations. Focus on beginning to specialize in one or more area of CRLs products.
  • Breadth: beginning to gain knowledge in multiple areas of CRLs products. Open to design problems outside of comfort zone.

Productivity

  • Output: when encountering challenges, synthesizes, and presents solutions to senior team members, and seeks feedback.
  • Focus: takes direction from more senior engineers but is self-driven. Manages time efficiently. If unsure of what to work on seeks guidance from team leads.
  • Ownership: takes ownership of assigned tasks and ensures they are followed through to completion. Requires minimal follow up from senior team members.
  • Professional development: Learns quickly. Clearly articulates the limits of their capabilities and upskills with the input and guidance of the senior team.

Organizational Impact

  • Process: raises suggestions to senior team members re potential improvements to processes or tools.
  • Product: raises suggestions to senior team members re potential improvements to products.
  • Quality: champions quality process, learns and follows QMS procedures.
  • Health and safety: learns and follows HSE rules and procedures. Reports hazards or near misses.

Soft Skills

  • Communication: with regular input from senior team members, generates content for technical documents, procedures, work instructions, and/or product documentation. Clearly articulates design decisions & outputs through design documents and internal tools. Communicates clearly in person and digitally.

  • Attitude: embodies CRL's code of conduct and mission statement and has a generally positive attitude.

  • Teamwork: gets along with others and raises issues or conflicts to senior team members.

  • Mentorship: accepts mentorship from more senior team members.

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 device interfaces, in-water autonomous operation, mission planning, and human-machine interaction.
  • Testing: plan and conduct software testing, including unit & integration testing, and validation against simulated and real-world scenarios.
  • Operations: monitoring software performance, reliability, security, and implementing updates and patches as needed.
  • Support: provide technical support for software applications, including bug fixes, feature enhancements, and operator training.
  • Design, implementation, management:
    • Software architecture: learn and use 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: to 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: supports 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 1 year working experience.
  • Working experience developing software for hardware applications including device interfaces (sensors & actuators).
  • Proficient with one or more of: Real-time Linux, ROS2, C++, Python, development and target environments.
  • Working experience implementing real-time software.
  • Excellent communication skills, both written and verbal.
  • Technical documentation: specifications, requirements, test plans/reports, operator manuals etc.
  • Software configuration management.
  • Ability to work on multiple technical projects simultaneously.
  • Demonstrated ability to work in team environments.
  • 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.
  • Experience working with subsea sensors such as sonar, cameras, lidar, etc.
  • Robotic systems design experience.
  • Firmware development experience.
  • Experience with NI LabVIEW or Simulink.
  • Registered EIT with EGBC.
  • ISO9001 quality control.

Reports to: Director of Engineering

Position type: Full time

Location: Burnaby, British Columbia


Org chart

This job is not in the org chart


Teams

This job is not in any teams