Senior Software Application Engineer
Oceaneering
Chandigarh, India
1d ago

Position Summary

The Application Software Engineer will primarily perform the role of software developer that involves design and development of Application Software, APIs, Plugin Modules, Micro Services and User Interfaces for Guided Vehicles (AGVs), Remotely Operated Vehicles / Vessels (ROVs), Autonomous Mobile Robots (AMRs), System Simulators and Data Processing Systems.

He / she will be additionally responsible for backend application software development for integrating machine learning platforms such as PyTorch, TensorFlow, etc and Robotic Operating System (ROS) for Oceaneering’s next generation systems

Duties & Responsibilities

ESSENTIAL

  • Preform Software Requirements Analysis and prepare Software Requirements Specifications (SRS)
  • Coordinate with internal team members to validate the SRS and prioritize feature requirements
  • Design and develop clean software code for producing efficient executables, reusable libraries, and standalone plugins, primarily using Python, that include internal deliverables and customer project deliverables
  • Develop unit tests, preform troubleshooting, and prepare design documents on software products
  • Design and develop device emulators through software that mimic real device protocols
  • Work with the Software Managers and Testers for the quality assurance of software products
  • Iteratively develop proof-of-concepts, and demos to fine-tune technologies to practical, state of the art systems
  • Perform multiple tasks in cross-functional teams under agile methodology with a strong sense of self-direction
  • Review work carried out by other developers including documentation
  • Contribute and assist in creation of functional processes, and work towards an efficient system integration as well as continuous improvement
  • Share regular updates about work
  • NON-ESSENTIAL

  • Develop an awareness of modern software development technologies, protocols, frameworks and tools
  • Cultivate and disseminate knowledge of fault tolerant software design standards and best practices
  • Prepare reports and presentations on the status of the design and development process for discussion with management and / or team members
  • Direct research on emerging products and standards in support of planning and development efforts
  • Train, manage and provide guidance to junior staff
  • Perform all other duties as requested, directed or assigned
  • Supervisory Responsibilities

  • This position has NO direct supervisory responsibilities.
  • Reporting Relationship

  • This person will be reporting to a Software Manager in the New Product Development group.
  • REQUIRED

  • Bachelor’s degree in Computer Science / Artificial Intelligence (or related field)
  • Six or more years of past experience in developing effective and scalable Python codes
  • Hands-on experience in fine tuning Python code to ensure low-latency, high availability and reusability
  • Sound knowledge in working with inter process communication and protocols such as TCP / IP and UDP
  • Must be able to incorporate various data storage solutions and UI components
  • Strong understanding of data structures, multi-threading and computer science fundamentals
  • In-depth knowledge of relational databases (e.g. PostgreSQL, MySQL)
  • Hands on experience in software engineering best practices such as design patterns, code reviews, unit / integration testing and familiarity with various software test tools and source control tools (e.g. GitLab, SVN)
  • Competent and proficient understanding of Operating Systems such as Linux and Windows
  • Must have good problem-solving skills and attention to detail
  • Must be able to learn, understand, and apply new technologies
  • Strong background in mathematics and statistics
  • DESIRED

  • Master’s degree in Computer Science / Artificial Intelligence (or related field)
  • Knowledge of Python based Machine Learning platforms is highly desirable
  • Experience in Object Oriented Programming in C++ is highly desirable
  • Knowledge of Robotic Operating System (ROS 2) is highly desirable
  • Hands on NoSQL database experience (e.g. MongoDB) is highly desirable
  • Hands on Time Series database experience (e.g. InfluxDB) would be an advantage
  • Exposure to MATLAB / SIMULINK and / or any other simulation tool would be an advantage
  • Good knowledge of Django or similar Python frameworks would be an advantage
  • Familiarity with front-end technologies, such as Angular would be an advantage
  • Hands on experience with Virtual Machines and Dockers would be an advantage
  • Knowledge, Skills, Abilities, and Other Characteristics

  • Ability to analyze situations accurately, utilizing a variety of analytical techniques in order to make well informed decisions
  • Ability to effectively prioritize and execute tasks in a high-pressure environment
  • Skill to gather, analyze and interpret data
  • Ability to determine and meet customer needs
  • Ensures that others involved in a project / effort are kept informed about developments and plans
  • Knowledge of communication styles and techniques
  • Ability to establish and maintain cooperative working relationships
  • Skill to prioritize workflow in a changing work environment
  • Knowledge of applicable data privacy practices and laws
  • Strong analytical and problem solving skills.
  • Working Conditions

    This position is considered OFFICE WORK which is characterized as follows.

  • Almost exclusively indoors during the day and occasionally at night
  • Occasional exposure to airborne dust in the workplace
  • Work surface is stable (flat)
  • Physical Activity / Requirements

    The physical demands described here are representative of those that must be met by an employee to successfully perform the essential functions of this job.

    Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.

    This position is considered LIGHT work.

    CONSTANT

  • Lift up to 20 pounds
  • Climbing, stooping, kneeling, squatting, and reaching
  • Lift up to 10 pounds
  • Standing
  • Repetitive movements of arms and hands
  • Sit with back supported
  • Report this job
    checkmark

    Thank you for reporting this job!

    Your feedback will help us improve the quality of our services.

    Apply
    My Email
    By clicking on "Continue", I give neuvoo consent to process my data and to send me email alerts, as detailed in neuvoo's Privacy Policy . I may withdraw my consent or unsubscribe at any time.
    Continue
    Application form