ProfilePrint is an AI-driven ingredient quality platform powered by a patented digital food identity-as-a-service (IDaaS) technology. ProfilePrint synthesises complex molecular data of ingredient samples into digital fingerprints, rapidly predicting its identity and quality, helping agribusinesses to buy and sell better.
We’re looking for a software engineering intern to join our engineering team. This is a dynamic opportunity in a startup with growth and learning opportunities. You will be a part of the Software Engineering team and collaborate closely with teammates from the rest of the technology and product stack. The apprenticeship will last from 3-6 months.
Culture
Our team culture is centered on trust. The key pillars are active communication, ownership, responsibility, and mutual support. We value attitude over experience. Be ready for a fast-paced startup environment where ownership and action drive impact. We work hard, play harder, and believe that innovation thrives in an atmosphere of trust and fun.
Skills
We value skills over qualifications. The skills we are looking for in this role are:
Essential
- Soft skills to work in a high-speed, multi-disciplinary team
- Coding ability in common languages like Python and JavaScript
- Knowledge of databases & operating systems like MySQL and Ubuntu
- Knowledge of cloud infrastructure like AWS
Preferred
- Knowledge of IOT and Arduino interfacing in a web application context
Avantage
- Interest in machine learning & artificial intelligence
- English-Mandarin bilingual proficiency as the role involves frequent communication with our team members in China.
Expectations
Our product straddles the device, SaaS platform, and AI application layers. Development and operational tasks are shared amongst the team. Our current organizing approach focuses on maintaining maximum flexibility. This is the most suitable approach for us, as it enables high-speed innovation. Be prepared to work on tasks across all the technical layers and domains. You can expect to be given clear priorities and to be working on only one major task at a time. This approach applies to all members of the team, including the leaders.
Working Conditions
This is an in-person role based in Singapore. We practice a hybrid working style, with a mix of in-person and off-site work. There is no minimum number of in-person days per week. Each person and team decides their schedule. Every member will be assessed by the impact that she/he ships, not by the time spent on work. The only guiding principle for being present is that, as humans, authentic in-person interaction is necessary to create the culture of trust that we deem foundational, so we require all teammates to invest in this.
Responsibilities
You are responsible for ensuring seamless communication between an Arduino-based device (ESP32) and a web application. Users should be able to control the device and retrieve data from it using their browser. This means that the communication protocol must support bi-directional data flow between the ESP32 and the web app.
The device contains the following parts:
- ESP32 running Arduino code
- Integration Sphere (for light)
- Spectrometer
- Stepper Motor
Given that the device in question houses a spectrometer, there are certain limitations that we must abide by, including the protocol with which to control the spectrometer from within the device. The main communication between the device and the browser has already been established, but your responsibilities will include the following:
Understand the main functions of the device and how to interface with them via the browser
- Familiarize yourself with how the ESP32 interacts with the integration sphere, spectrometer, and stepper motor.
- Review the existing codebase for the communication protocol to understand how data is being exchanged.
- Ensure that the browser can correctly send and receive data from the device.
Improve connection stability between the device and the browser
- Optimize the handling of connection drops and reconnections.
- Identify potential issues in the current setup.
Improve the data transfer rate between the device and the browser
- Optimize how the ESP32 processes and transmits data (e.g., using efficient serialization like JSON or binary formats).
- Improve buffering and handling of large data packets, especially for spectrometer readings.
Related Job Searches:
- Company:
ProfilePrint Pte. Ltd. - Designation:
Software Engineering Intern - Profession:
Engineering - Industry:
Artificial Intelligence / Smart Automation - Location:
Bishan