Duration:Part time (~10 hrs/week), May-August 2018
Job Location: Remote
Software Engineer/Developer Intern
Energy Action Partners (EAP), a nonprofit organization with offices in Boston and Kuala Lumpur, has developed a software tool for collaborative design of renewable energy microgrids, called the The Minigrid Game. The Game is a multi-user, networked, simulation game that is used by rural communities and microgrid developers to jointly determine key design parameters for a microgrid and to build local management capacity.
The Waterloo Institute for Sustainable Energy (WISE) is seeking a Software Engineer/Developer who will collaborate with Energy Action Partners to support the ongoing development of new features and enhancements to their software. The Software Engineer/Developer intern will be responsible for managing the interchange of data between the server and users, and will develop server-side logic, definition and maintenance of the central database, thus ensuring high performance and responsiveness to requests from the front-end. You will also be responsible for integrating basic front-end elements, building containers for the application and providing users with deployment instructions.
This is a remote position. The successful candidate will communicate with the EAP project manager via skype/email/phone. Occasional communication with WISE to provide updates on the project is required. It is intended that the successful candidate be based in Waterloo to meet with WISE staff in person, however this is not a requirement.
Hourly pay will be determined according to the UW Co-op hourly earnings information chart.
The position is part of a new collaboration between WISE and EAP as part of the Affordable Energy for Humanity initiative.
● Participate in the ongoing development of new software features to The Minigrid Game.
● Recommend improvements to both the technology and business functionality of The Minigrid Game tool and process as a product.
● Create and manage full-stack documentation, including data model (i.e. ERD and DFD).
● Design the database and develop APIs for technical implementation.
● Enable remote deployment of the software (e.g. using containers).
● Develop and design user-facing features and integrate elements into server-side logic.
● Ensure best practices are employed throughout the process.
● Optimize and test code for speed and scalability.
● Reports to the Project Manager.
● Proficient knowledge of back-end programming language, Python.
● Exposure to code versioning tools (i.e. Git).
● Exposure to web development framework MVC model (i.e. Tornado or Django).
● Excellent written and oral communications skills, with fluency in English required.
● Highly organized with strong attention to detail.
● Good understanding of server-side CSS pre-processors, such as LESS and SASS.
● Good understanding of asynchronous request handling, partial page updates and AJAX.
● Experience troubleshooting and resolving cross-browser compatibility issues.
● Basic knowledge of charting/graphing library (i.e. chart.js).
● Basic knowledge of protobuf.js.
● Experience with Docker containers.
● Experience deploying applications both locally and through cloud services (i.e. AWS).
WISE manages an international internship program for UW co-op students to work in the clean energy sector in the developing world. As such, there may be opportunities for the successful candidate to secure a future full-time co-op position as part of this program, including potentially at EAP in Kuala Lumpur, Malaysia. WISE will assist the successful candidate in networking within the clean energy sector if so desired.
Details about the internship program:
Interested in applying?
Applications (including cover letter, resume and unofficial grade report) should be sent via email to the following people:
Scott Kennedy (Energy Action Partners): firstname.lastname@example.org
Nigel Moore (Waterloo Institute for Sustainable Energy): email@example.com
Interviews will be conducted via skype with Mr. Kennedy.
The position will be open to apply to until it is filled.