We are looking for a talented software developer to join our small development team. Due to the small size of the team, this position would give a large diversity in the programming roles and key tasks will include:
- Designing software features to meet customer’s needs.
- Integrating new features into the current software package.
- Renewable Energy data analysis and simulation.
- Data visualisation.
- Development of cross-platform GUI
- Asynchronous and distributed server development (written in Python orientated around Asyncio, and Dask).
- Other areas might include API design, web development, performance/testing, deployment/packaging, and cluster orchestration.
You will be joining a small team of developers helping to contribute features, and architect software/infrastructure decisions to best serve the products requirements.
You will be contributing to code-bases with an emphasis on asynchronous and distributed computation, giving the opportunity to learn a variety of modern tools for parallel/distributed computation, cross-platform GUI development, continuous integration, and deployment.
You will contribute to the development of our internal software in preparation for public launch and play a key role in the design.
Required Personal skills and qualifications
- A passion & enthusiasm for renewable energy and for new technology research.
- BSC in computer science or equivalent (or alternatively, related disciplines such as applied maths, engineering, physics or other similar qualification with sufficiently strong emphasis on programming).
- Proficient in Python
- Familiarity with C/C++
- Interest in data analysis
- Ability to write clean readable maintainable code
- Familiarity with cloud computing/Amazon Web Services/general distributed computing
- Familiarity with Linux operating system (application is cross-platform: win/mac/Linux)
- Applicants must have (and be able to prove) the right to work in the UK
Desirable Personal skills and qualifications:
- Masters degree level or above qualification is desirable.
- Knowledge/experience of Deployment
- Expert/Advanced level Python
- Proven and demonstrable skills in a relevant programming role