The Role
We are seeking an experienced Python Developer with strong expertise in algorithm development, optimization modelling, and power system techno‑economic assessment.
The ideal candidate will have deep knowledge of Python’s core features, data analysis, web frameworks, and modern development practices.
Experience with mathematical optimization tools, containerization, and message‑queue technologies will be considered a significant advantage.
Your responsibilities:
Python Development & Software Engineering
Develop, optimize, and maintain software using core Python features including iterators/generators, exception handling, file handling, type hints, OOP, and data structure design.
Build scalable algorithms and write clean, maintainable, and well‑structured code.
Develop and maintain RESTful APIs using OpenAPI/Swagger, Connexion, or FastAPI.
Work with Python web frameworks such as Flask, Django, FastAPI, and Jinja2.
Data, Analytics & Databases
Perform data manipulation and analysis using tools like Pandas and NumPy.
Design, query, and maintain both relational databases (e.g., PostgreSQL) and NoSQL/document stores (e.g., MongoDB).
Build data pipelines and support analytics dashboards and visualizations in Python.
Mathematical Modelling & Optimization
Develop and solve Linear Programming (LP), Mixed Integer Linear Programming (MILP), and other optimization models.
Use optimization tools and libraries such as Pyomo, AMPL, Gurobi, CPLEX, or similar solvers.
Model the behaviour of power system components including generation assets, demand profiles, and network elements.
Contribute to techno‑economic assessments of power systems using Python-based models.
Quality Assurance & DevOps
Write unit tests using unittest or pytest, with exposure to Test‑Driven Development (TDD) methodologies.
Use Git and modern version‑control workflows; collaborate via Azure DevOps or similar platforms.
(Bonus) Develop and deploy containerized applications using Docker, and support container orchestration (e.g., Kubernetes).
(Bonus) Work with messaging/streaming technologies such as RabbitMQ or Kafka.
Essential skills/knowledge/experience:
8+ Years of Experience.
Desirable skills/knowledge/experience:
Strong proficiency in Python programming and its optimization/analytics ecosystems.
Proven experience with algorithm development and computational problem‑solving.
Hands‑on experience with data analytics, visualization, and database systems.
Solid understanding of power system modelling, techno‑economic simulation, and energy systems.
Strong debugging, profiling, and performance optimization skills.
Excellent communication and documentation abilities.
Experience using Pyomo, AMPL, Gurobi, CPLEX, or similar optimization tools.
Working knowledge of containerization and cloud‑native deployment.
Familiarity with RabbitMQ/Kafka, microservice architecture, and distributed systems.