Software Engineering Intern
GridBlock has an exciting opportunity for a Software Engineering Intern to take part in our Summer Internship Program. If you’re passionate about sustainability and eager to be part of a company that’s on a journey to transform the world’s infrastructure, this may be the internship for you!
The Software Engineering Intern is a vital member of Endeavour’s GridBlock team, working directly with the firmware team, and responsible for designing, implementing, and documenting a robust system that will see extensive during high power testing and field operations. In this position you will be part of the research & development group to develop a scalable and reliable framework for sending and retrieving critical data from GridBlock’s advanced power converters.
Because of our dedication to efficiency and maintaining smooth operations, GridBlock is highly selective about the people we bring on board—our work depends on it. Therefore, the Software Engineering Intern must be agile and comfortable in a rapidly changing environment. The right person should be professional, trustworthy with confidential information, highly organized, self-motivated, and able to work equally as well independently as with a team.
Reports to:
Director, Engineering
Key Responsibilities
- Develop a software framework to gather and display critical live data and internal logs from GridBlock’s advanced power converters.
- This framework will be a core part of testing, improving, and diagnosing faults in GridBlock products.
- The framework needs to be scalable and robust enough to deploy across thousands of units in the field. It needs to work on local and remote networks, and must efficiently handle the large amounts of data generated by 24/7 operation.
- Reliability is a key goal. This software will be the first indication of potential problems during high power testing. - Work with the GridBlock firmware team to integrate with existing logging and data collection methods.
- Document and test software
- Document the software and protocols you implement for future use by other engineers.
- Implement unit testing for any firmware you develop to ensure proper functionality and compliance with certification requirements.
Education and Experience
- Currently pursuing a Bachelor’s degree in Computer Science, Computer Engineering, or a related field (required).
Specific Skills / Abilities
- Strong knowledge of network protocols such as TCP/IP, HTTP, MODBUS, WebSocket, and FTP.
- Strong programming skills in C/C++, JavaScript, and Python.
- Knowledge of multiprocessor embedded systems and real time operating systems.
- Experience working with the Linux command line and Linux servers.
- Experience with databases and data visualization tools such as InfluxDB and Grafana.