Python Software Engineer

Job type:Permanent
  • competitive salary
  • flexible working
  • 25 days annual leave
  • 5% company pension
  • private medical insurance
  • life assurance cover
  • profit share scheme

geo is currently looking for an experienced Python Software Engineer who is driven to solve complex problems with large quantities of data. The role requires working very closely with our data science and platform engineering teams – a perfect opportunity for someone with strong data analytical skills who is looking to expand their career further. Please apply now or get in touch with to find out more.

Our business

geo is creating a sustainable future where homes automatically and seamlessly manage their overall consumption and carbon footprint, without impacting householder’s lives. In addition to providing management and optimization systems and data analysis for solar, EVs, batteries and home heating, the company is a leading supplier of in-home displays to the UK Smart Metering programme and has deployed +6 million units to date. A recipient of the Queen’s Award for Innovation, geo combines its smart energy automation, control and display capabilities with leading edge data science, AI, cloud, firmware, UX, UI and customer insight to create complete carbon management systems.

Job role

You will be part of a team of talented software engineers and data scientists that develop products to help homeowners save energy, money and cut their carbon footprint. These challenges include making sure the electrification of transport and heating doesn’t overload the grid, and working out how to balance demand and supply when that supply increasingly comes from renewables.

Our products range from algorithms that power the insights we deliver via our In-Home Displays (IHDs) and app, through to sophisticated control systems that predict and manage energy storage, local energy generation (such as PV) and local loads. Underpinning this is our expertise in smart energy monitoring, load disaggregation, anomaly detection, heating control systems, load prediction and optimisation.

We have a lot of products and services, so you’ll be kept busy and challenged. You’ll have a great sense of achievement when you see your work making an impact.

You’ll be working in a friendly, close team, who’ll give you plenty of support. You’ll also be given freedom to explore new ideas and innovate. We want you to use the skills you already have, and to develop new ones too.


Our technology stack includes:

  • Docker & Kubernetes on AWS
  • Cassandra, Aurora PostgreSQL, Kafka
  • Spark with Scala & Python
  • Tensorflow, Scikit-Learn, Catboost, H2O, Jupyter
  • GoCD, Artifactory, Helm and Rake
  • ELK, Prometheus, Grafana

We utilise cutting edge technologies that are well supported and adopted.

We work on novel problems that often require machine learning solutions.


You’ll deliver your contributions by writing great code and by presenting your ideas to your colleagues. You’ll review other people’s work and foster the development of other engineers. You’ll be expected to communicate your ideas formally and informally to a range of audiences.
We are looking for someone who:

  • Loves solving complex problems with data
  • Enjoys helping others achieve their goals as much as you do your own
  • Has excellent interpersonal and communication skills
  • Listens to others and considers all opinions regardless of background or experience. No tech egos
  • Enjoys working in a fast-paced and continuously evolving domain
  • Is a thorough and critical thinker, with good attention to detail
  • Is a self-starter, able to prioritise tasks and manage time effectively at pace
  • Is articulate and capable of presenting ideas to a wide range of audiences
  • Makes evidence driven decisions
  • Automates early and often
  • Favours the simplest reasonable solution (Occam’s razor)
  • Never loses sight of quality over speed
  • 5+ years of commercial Python programming experience
  • Practical use of Python data-analysis with Pandas to support our data science applications
  • Knowledge of distributed data systems and data engineering practices
  • Experience with PostgreSQL (or other equivalent RDMBS)
  • A focus on rapid development through iteration in an agile environment
  • A test-driven development approach using Python test frameworks

Beneficial Skills:

  • Working with Kafka, Cassandra &/or other distributed data stores
  • Usage and creation of RESTful APIs
  • Any experience using Python math or machine learning libraries (e.g. numpy, scikit-learn, TensorFlow, Keras)
  • Use of Docker and Kubernetes
  • Continuous Integration / Continuous Delivery / Continuous Deployment practices and tooling


To apply for this position please email your CV and Cover Letter together with your salary expectations and availability to our People team at