NL power systems · energy markets · Python

I model power systems, electricity markets, and battery storage.

Energy-transition engineer at Birdview Energy and independently via Treehouse Energy. Price-curve forecasting, BESS revenue stacking, grid congestion, and the tooling that makes it explorable. MSc Electrical Engineering, TU Eindhoven.

8760hours per year, every model
15minute UTC grid resolution
2050BESS revenue horizon
5.79MGerman PV plants mapped
96%+V2G charger peak efficiency

interactive model

Solar cannibalisation, on a slider

Every extra gigawatt of PV pushes midday prices further down, exactly when solar produces most. Drag the fleet size and watch what happens to the price solar actually earns. A profile factor below 1 means cannibalisation.

Illustrative model
43.1baseload €/MWh
4.7solar capture €/MWh
0.11profile factor
5negative hours

Illustrative merit-order model, not a live forecast. The curve is a typical July day shaped on 2025-2026 NL market patterns, anchored at today's fleet of roughly 24 GW; moving the slider shifts each hour's price in proportion to that hour's solar output. Baseload is the time-weighted average, capture the solar-production-weighted average, and profile factor their ratio.

approach

How I work

  1. 01

    Harvest

    Market and grid data from EPEX SPOT, ENTSO-E, TenneT and Ned.nl, cached and joined on a uniform 15-minute UTC grid.

  2. 02

    Simulate

    Hourly Python timeseries simulation of the Dutch power system: merit-order dispatch sets the price, 8760 hours per scenario year.

  3. 03

    Forecast

    Price-curve forecasting with XGBoost, SARIMAX, Temporal Fusion Transformers and N-BEATS, kept honest by walk-forward validation and conformal prediction intervals.

  4. 04

    Optimise

    BESS revenue and payback modelling on day-ahead and imbalance markets, dispatch optimised with PyPSA, linopy and HiGHS.

  5. 05

    Stress-test

    Grid-congestion simulation against TenneT data: connection-point capacity, curtailment risk, and what both do to the business case.

the problem I solve

From scattered signals to modelled clarity

before

Raw market and grid data

  • EPEX settlements, ENTSO-E exports, TenneT congestion registers, Ned.nl feeds: each in its own format, timezone and resolution
  • Negative-price hours buried in spreadsheets nobody reopens
  • Connection and curtailment risk invisible until you model the hourly picture
  • BESS business cases built on average prices instead of hourly spreads

after

Modelled, explorable clarity

  • One uniform 15-minute UTC grid across every source
  • Merit-order price models you can stress, hour by hour, out to 2050
  • BESS revenue stacked per market, with payback you can defend
  • Dashboards and notebooks, so the answer is explorable rather than a PDF

energy & engineering

From market bids to MOSFETs

Markets
Day-ahead (EPEX SPOT, Nord Pool), intraday ID1/ID3, forwards, FCR, aFRR capacity + energy, mFRR, imbalance. Flow-based cross-border: JAO domain, PTDFs.
Grid modelling
PyPSA-Eur model of the Dutch HV network calibrated against TenneT data: congestion, curtailment risk, connection-point capacity studies.
Optimisation
PyPSA, linopy, HiGHS (custom HiPO build). Upstream contributor: linopy warmstart, HiGHS build path, PyPSA-Eur.
Forecasting
XGBoost / LightGBM, SARIMAX, Kalman filters, Temporal Fusion Transformer, N-BEATS, conformal prediction intervals, walk-forward validation.
Power electronics
11 kW three-phase bidirectional V2G on-board charger (SiC, ZVS/ZCS, 96%+ peak). Per-panel 350 kHz MPPT boost optimiser for PV.
Research
MSc thesis: day-ahead price formation in 2030 under high BESS and V2G penetration (TU/e, on Google Scholar). Merit-order NL 2030 scenario modelling.

Career: BSc + MSc EE, TU Eindhoven · URE electric race car drivetrain · CTO Taylor Solar (PV DC/DC optimiser) · Research Scientist, Lightyear (day-ahead 2030 price models) · Treehouse Energy (2023-now) · Birdview Energy (BESS revenue & grid-risk analytics, NL/DE/BE)

photography & drone

The other lens

Aerial drone photo looking straight down a waterfall plunging into a canyon pool surrounded by forest
Helmcken Falls, aerial
Top-down aerial of an ice-fringed waterfall in winter, Iceland
Iceland, winter aerial
Aerial of a Dutch river with a cargo barge, fields and a town on the horizon
The Maas at work
Desert rally scene from the air: helicopter, support trucks and crews on the sand
Rally raid, desert stage
Off-road buggy kicking up dust through a sand quarry
Off-road, trackside
Aerial of a traditional Dutch gaff-rigged sailing boat heading into a low sun on the IJsselmeer, wind turbines on the horizon
Allegro under sail, IJsselmeer
Aerial of Valldemossa village in the Tramuntana mountains of Mallorca, terraced olive groves and a hairpin road in the foreground
Valldemossa, Tramuntana
Two men inside a rusty Soviet-era cable car cabin in Georgia, forested hills through the windows
Soviet-era cable car, Georgia
Natural-light portrait of a woman with curly blond hair in front of a painting
Portrait, natural light
view on flickr ↗
Portrait of Mayk Thewessen in front of an offshore wind turbine photo wall

about

Engineer first, photographer since 2011

Trained as an electrical engineer at TU Eindhoven: BSc, MSc, and a stint building the drivetrain of the URE electric race car. Since then: CTO at Taylor Solar working on PV DC/DC optimisers, research scientist at Lightyear modelling 2030 day-ahead prices, independent consulting via Treehouse Energy since 2023, and now BESS revenue and grid-risk analytics at Birdview Energy across NL, DE and BE.

The camera came first, though: photographer since 2011, drone pilot since 2016. The same eye for signal in noise, pointed at rivers, deserts and waterfalls instead of price curves.

contact

Open for hard questions about power markets, batteries, and grids.

Energy-transition engineer in the Netherlands. If it involves hourly prices, congested grids, or a battery business case, I want to hear about it.