These robots are complex hardware products integrated together with the help of appropriately designed software.
Variousmodules of software include process management, video streaming, video processing, mission planner and control,configuration manager, artificial intelligence, backend systems, web application, user interfaces, supporting utilities, embedded system (device) manager, communication manager, cockpit and report generator.
All the modules work together in tandem to give the robotic platform its desired functionality. Further, development of software for robotic applications is a multi-disciplinary activity which involves close coordination with other departments.
As a Senior Software Engineer in Planys you should be able to understand the requirements for each module, be thorough with the existing codebase and perform development as per the existing policies.
You must analyse the requirements and lead a team of engineers towards achieving the desired targets.
You need to have an ability to foresee the importance of emerging technologies in the software industry and integrate necessary innovations into the existing platforms of Planys Technologies
. A typical day in this role should include the following job responsibilities -
- Architect, design, modify and maintain various components of our system software framework
- Spearhead research and development initiatives
- Conceptualize and implement features with sound software engineering principles
- Write software to use/control/tweak embedded hardware platforms e.g. cameras, embedded micro-controllers, input devices, wireless devices, analog/digital signal generating devices
- Design and develop module specific system test-suite to ensure quality of deliverables
- Conduct extensive testing of the ROV in controlled and real-world situations
- Fix the issues which are faced during field trials and document those for future reference
- Communicate and coordinate with various stakeholders while ensuring adoption of latest frameworks and tools within our software ecosystem
- Design, enhance and maintain a continuous integration and continuous development (CI/CD) pipeline
- Take active participation in code reviews to ensure adherence to programming best practices
- Lead a team of passionate and driven engineers and help deliver quality software within stipulated time-frame
- Linux and Linux kernel-based software development
- Proficient in object-oriented concepts of C++ and advanced concepts in C
- Sound foundation in Data Structures & Algorithms, Operating System (OS) and Computer Networking
- Scripting knowledge (python, shell scripting etc.)
- Experience with multi-threading, debugger, memory-leak detection tools, IPC mechanisms
- Hands on experience working FFMpeg and/or OpenCV
- Experience with project, code documentation and project management platforms such as JIRA, Zoho etc
- Must be an optimistic and effective team player
- Strong understanding of software development fundamentals and best-practices
- Excellent communication skills - both oral and written in English
- Strong background in an Agile software development environment
- Highly motivated and should be a self-starter
- Proven analytical and problem-solving abilities
- Ability to effectively prioritize and execute tasks in a high-pressure environment
- Experience with CI/CD platforms using Docker, Jenkins etc.
- Prior working experience on software development for robotic platforms will be an added advantage
- Bonus points if you are an open-source contributor having an online portfolio to showcase
Skills Levels Required:
- Advance level (Needs Minimal Supervision) -SQL/NoSQL, Business Etiquette, Google Suite, Time Management
- Expert Level (Can Handle Independently) -C / C++, LINUX, Scripting, Computer Networking, Operating Systems, Data Structure.