Roles and Responsibilities Software development at Planys comprises development of applications for robotic solutions made by Planys for its clients. These robots are complex hardware products integrated together with the help of appropriately designed software.
Various modules of software include process management, video streaming, video processing, mission planner and control, configuration manager, artificial intelligence, web application backend systems, user interfaces, supporting scripts, embedded system (device) manager, communication manager, cockpit and report generator. All the modules work togetherin 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 Software Engineer/Developer in Planys you need to understand the requirements of each module, understand theexisting codebase and perform development as per the existing policies. You must analyse the requirements and lead a teamof co-developers towards achieving the desired targets. You need to have an ability to foresee the importance of emergingtechnologies of the software industry and integrate the necessary innovations into the existing products of PlanysTechnologies. 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 microcontrollers, inputdevices, 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 toolswithin 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
Recommended Skills:
- Extensive knowledge of artificial intelligence and machine learning frameworks
- Working experience with Image/Video processing using Computer Vision toolbox (e.g. YOLO, SSD etc)
- In depth knowledge in some/all of the tools (Tensorflow, Keras, Pytorch, Darknet) will be a great plus
- Linux and Linux kernel-based software development
- Proficient in object-oriented concepts of Python and C++
- Superior knowledge and hands on experience in data structures, algorithms and design patterns
- Experience with code, documentation and project management platforms such as BitBucket, Doxygen, JIRA
- Experience in image enhancement tools like OpenCV, PIL, scikit-image is recommended
- You must be a very effective team player, highly optimistic and demonstrate a healthy team spirit,
- Strong understanding of software development fundamentals and best-practices
- Working proficiency and excellent communication skills in verbal and written English
- Strong background in an agile software development environment
- Highly self-motivated and directed
- Proven analytical and problem-solving abilities
- Ability to effectively prioritize and execute tasks in a high-pressure environment
Skill Levels Required:
- Advance level (Needs Minimal Supervision) -C / C++, LINUX,SQL/NoSQL, Business Etiquette, Google Suite, Time Management
- Expert Level (Can Handle Independently) -Python, OpenCV, FFMpeg, GStreamer, Tensorflow, Darknet, CNN, Scikit-Image or others, Data Structure,