Write software that interfaces directly with hardware components.
Develop applications capable of controlling and monitoring physical devices.
Test software functionality and participate in hardware-software integration testing.
Debug problems occurring across the software and hardware boundary.
Maintain existing software codebases and applications.
Optimize application performance and reliability.
Implement new features according to product and system requirements.
Work closely with System Engineers and Hardware Engineers.
Collaborate with Product Managers to understand requirements and define specifications.
Help solve complex system-level engineering problems.
Learn and apply new technologies, tools, and engineering practices.
Gain exposure to IoT platforms and cloud connectivity.
Contribute throughout the software development lifecycle.
Participate in testing, debugging, maintenance, and continuous improvement.
Skills & Eligibility
Education: Bachelor’s degree in Computer Science, Software Engineering, Electronics & Communication, or a related field.
Accepted Qualifications: B.Tech, BE, MCA, M.Sc, or equivalent.
Experience: 0–2 years of professional software development experience.
Project Experience: Strong academic, internship, or personal software projects can be relevant.
Primary Languages: Proficiency in at least one of Kotlin, Swift, PHP, or Flutter.
Software Engineering: Understanding of data structures, algorithms, object-oriented programming, and software engineering principles.
Problem Solving: Strong analytical and debugging skills.
Hardware Interest: Genuine interest in understanding how software commands and communicates with physical devices.
IoT: Knowledge of sensors, actuators, MQTT, Bluetooth/BLE, Wi-Fi, or related IoT technologies is advantageous.
Programming: Familiarity with C++, C#, or Python is beneficial.
Version Control: Experience with Git and collaborative development workflows is preferred.
Hardware Interfaces: Understanding of UART, I2C, SPI, or serial communication is advantageous.
Development Practices: Familiarity with code reviews and Agile methodologies is beneficial.
Communication: Strong written and verbal communication skills.
💡 Pro Tip: C++ is listed as an advantageous programming language for this role. If you want to strengthen your C++ fundamentals before applying or interviewing, check out Beginning C++ Programming.
One of the most important differences between this Software Engineer position and a conventional application-development role is the emphasis on IoT and hardware interaction.
Candidates interested in this position should understand the basic architecture of an IoT system. A typical connected product can include physical sensors or actuators, an embedded controller, communication protocols, application software, cloud connectivity, and a user-facing application.
The job description specifically mentions technologies and concepts such as:
Sensors and actuators
Bluetooth and BLE
Wi-Fi connectivity
IoT platforms
Cloud connectivity
Hardware-software integration
Candidates do not necessarily need professional experience in all of these areas. However, having a college project involving an ESP32, Arduino, Raspberry Pi, Bluetooth device, smart-home system, sensor network, or another connected device can make your application more relevant.
Note: This job is posted on external sites. Joblit shares the listing for convenience and does not take responsibility for third-party content.