Overview
An internship as a Software Developer in Mumbai, supporting software development for scientific and laboratory instruments under the guidance of senior engineers.
What you'll do
- Develop and maintain software components using Python under the guidance of senior engineers.
- Write clean, structured, and maintainable Python code.
- Work with existing Python codebases and implement small enhancements and fixes.
- Develop scripts and utilities to support engineering and testing activities.
- Learn and apply object-oriented programming and basic software design principles.
- Support integration of software with hardware, firmware, and instrument components.
- Develop and test basic device-control and instrument workflow functionality.
- Support troubleshooting of communication between software components and instruments.
- Assist engineers in implementing and testing software features.
- Work with basic REST APIs and service interfaces.
- Gain practical experience with HTTP, JSON, REST, WebSocket, and TCP/IP.
- Support development and testing of software-to-software and software-to-device communication.
- Work in Linux and embedded Linux environments.
- Gain hands-on experience with SSH, processes, services, logs, networking, and system configuration.
- Support software deployment and configuration on embedded platforms such as Raspberry Pi.
- Assist in troubleshooting Linux and system-level issues.
- Develop and execute unit, integration, and functional tests.
- Support automated testing and regression testing activities.
- Create Python-based test scripts and utilities.
- Analyse test results and document failures.
- Work with SQA engineers to reproduce, investigate, and track software defects.
- Analyse application logs, exceptions, and test failures.
- Assist in identifying root causes of software issues.
- Reproduce software and system-level defects.
- Support engineers in troubleshooting hardware/software interface issues.
- Work with basic Python libraries such as NumPy, Pandas, and Matplotlib.
- Support data processing, analysis, visualization, and engineering test activities.
- Learn and use Git-based development workflows, including branches, commits, pull requests, and code reviews.
- Follow software development standards and documentation practices.
- Gain exposure to CI/CD, automated builds, dependency management, and software release processes.
- Document software changes, test results, issues, and troubleshooting steps.
- Participate in code reviews and technical discussions.
- Work closely with Software, Firmware, Systems, and SQA teams.
- Learn engineering processes used for development and verification of scientific instruments.
What you'll need
- Bachelor's degree or pursuing a degree in Computer Science, Information Technology, Electronics, Electrical Engineering, or related discipline.
- Good programming knowledge in Python.
- Basic understanding of object-oriented programming.
- Basic understanding of software development and debugging.
- Good problem-solving and analytical skills.
- Basic knowledge of Linux.
- Basic understanding of Git.
- Basic understanding of HTTP, JSON, and APIs.
- Willingness to work on both software and hardware/software integration.
- Good communication and documentation skills.
- Strong willingness to learn and work on real engineering problems.
Nice to have
- Academic or personal project experience using Python.
- Exposure to Django or other Python frameworks.
- Basic knowledge of REST APIs, WebSocket, or TCP/IP.
- Experience with NumPy, Pandas, or Matplotlib.
- Exposure to Linux/Raspberry Pi or embedded systems.
- Experience with Python-based test automation.
- Exposure to unit testing or pytest.
- Basic understanding of databases or SQL.
- Exposure to CI/CD tools.
- Familiarity with Agile/Scrum development practices.
- Academic project involving instrumentation, electronics, sensors, laboratory equipment, or device integration.
Details
- Location: Mumbai.
- Employment type: Internship.
Read the full description and apply on the company’s own careers page.