hardware × software Apeldoorn, NL · --:--

Sander · senior full-stack developer · dev team lead

I connect hardware and software. From the network to the platform.

I'm Sander Wegter, a developer and team lead for Puur IT in Amersfoort. I lead the architecture and development of systems that connect devices, networks and software.

View work Get in touch
 fleet.topology sample data · 6/7 up
mgmt-api private lan vpn-01wireguard r-0045G r-011fiber r-017LTE r-023satellite r-031no carrier · queued: reboot r-038fiber r-0425G
An illustration of the systems I work on: software connecting and managing remote devices.

~/ sander.wegter

Decisions that hold up in practice.

I define how the parts fit together, where responsibilities belong and how systems can evolve. Then I work with the team to build and operate them. Staying involved helps me see where a design works and where it needs to change.

Selected work

Two examples of turning complex requirements into systems people can build, extend and run.

01 / network

Managing a remote router fleet

My role: System architecture, router software and the management platform.

The problem
Routers sit at remote locations without local IT staff. They need to be configured, updated and recovered through connections that can drop out.
The design
I connect an on-device agent, a central management platform and a VPN network. Queued commands let a router pick up work on its next check-in. Separate VPN concentrators keep customer networks apart.
What it enables
Remote configuration and recovery, including restoring settings after firmware updates. WireGuard can be introduced alongside existing OpenVPN connections.
Technical details: Managing a remote router fleet
  • An on-device agent handles check-ins, queued commands and configuration recovery.
  • Internal DNS and locality-aware addressing keep device identity separate from fixed IP addresses.
  • Per-customer concentrators connect the fleet to the central platform.
WireGuardOpenVPNOpenWrt / UCInftablesLitestarPowerDNS

02 / platform

Connecting fibre orders to network services

My role: Platform architecture, domain modelling and development leadership.

The problem
Fibre operators need to connect orders, addresses, pricing and network equipment. The platform spans four countries, with different address sources and provisioning systems.
The design
I define a shared domain model and keep country-specific address sources and network provisioning behind replaceable integrations. Shared workflows use those interfaces, while each integration handles the details of its provider.
What it enables
One platform can support different countries and networks. New integrations can be added through defined extension points, while orders, pricing and access control remain part of a shared model.
Technical details: Connecting fibre orders to network services
  • Address providers support APIs, CSV imports and manual entry.
  • Scoped access tokens, role and policy-based permissions, and mandatory multi-factor enrolment control access.
  • Wholesale pricing uses explicit rules and most-specific-match modifiers.
PythonLitestarPydanticPostgreSQLVueSAQ + Redis

The infrastructure behind the work

03 / platform infrastructure

A shared foundation for applications

I design how our applications are deployed, accessed, monitored and recovered. Shared services give the platforms a consistent operational foundation.

  • Container deployment and routing with Docker and Traefik.
  • Shared sign-in through Keycloak, with monitoring and configuration management.
  • Scripted backup and restore for the services we operate.

04 / business operations

Keeping everyday business services running

Alongside product development, I manage the services the business uses every day, looking after their upkeep and day-to-day operation.

  • Business websites and web servers.
  • The private container registry and office VPNs.
  • The mail instance and supporting business services.
02 · Experience

From research to running systems.

Software, networks and product development, with Puur IT since 2016.

  1. 2016 - now Puur IT · Amersfoort

    Senior full-stack developer & dev team lead

    @ Puur IT

    Leading the development team and technical direction across software platforms, network products and business infrastructure. I shape the architecture and stay involved in implementation and operations.

    ArchitectureTeam leadSoftware & hardwareInfrastructure
  2. 2021 - now Puur IT · Amersfoort

    Platform architecture & development

    @ Exsequi (XSQ)

    Designing the XSQ open-access fibre platform that connects network operators with service providers. I define the model connecting orders, addresses, pricing and provisioning, and lead its implementation.

    ArchitectureFTTH / open accessProvisioningPlatform development
  3. 2016 - now Puur IT · Amersfoort

    Technical product developer

    @ BeeInControl

    Developing the BICbox hardware and software for failover and remote access. My work connects the router, device software, user portals and fleet management for alarm systems, payment terminals, guest Wi-Fi and VoIP.

    ArchitectureBICbox4G/5G failoverFleet management
  4. 2016 - 2017 Den Haag

    Technical application developer

    @ NL-ix (via Puur IT)

    Designed and built a new monitoring suite for the NL-ix internet exchange: SNMP and syslog alerting, event filtering per device, and a NOC dashboard combining tickets, logs and device status.

    ELKGraylog2ObserviumSNMP · syslog
  5. 2014 - 2016 Harderwijk

    Developer

    @ Operate4all

    Built reporting, billing and ticket-dashboard tools for customers, set up ELK for NetFlow/sFlow/IPFIX monitoring, and provisioned and monitored a small ISP network abroad, including new network equipment.

    ReportingELKNetFlowISP ops
  6. 2013 - 2014 Netherlands

    Development engineer

    @ Schuuring

    Raspberry Pi sensor system for a smart EV charge point: air quality, licence-plate recognition for parking rights, and maintenance-state monitoring to cut service costs.

    Raspberry PiIoTANPR
  7. 2013 Groningen

    Graduation research

    @ UMC Groningen

    Researched Kinect-based touchless interaction in the operating room to improve efficiency and hygiene. Graded 8.7/10 and one of three finalists (of 18) for the Hanze Innovatie Prijs 2013.

    KinectHCIHealthcare
  8. 2012 - 2013 Assen

    Co-owner

    @ ICT Assen

    Started a small IT company with a friend, supporting local businesses and customers with hands-on IT help.

    EntrepreneurshipIT support
03 · Stack

Tools I reach for

network
  • Teltonika RutOS
  • OpenWrt / UCI
  • mwan3 failover
  • WireGuard · OpenVPN
  • Huawei VRP · Q-in-Q
  • SNMP · VLANs
platform
  • Python · uv
  • Litestar · Pydantic
  • SQLAlchemy
  • PostgreSQL
  • Vue · PrimeVue
  • SAQ + Redis
operations
  • Docker · Traefik
  • Keycloak SSO
  • Harbor registry
  • GitHub Actions
  • Zammad
observability
  • LibreNMS
  • Observium
  • Oxidized
  • Telegram alerting
04 · Lab

A little hands-on

Explore the portfolio through a small interactive shell, or take a look at a code example.

sander@lab: ~try: help
Interactive portfolio shell · simulated environment
type 'help' to list commands
Explore a Python architecture example

An illustrative interface: the service uses a common contract, while each network provider handles its own implementation.

services/provisioning.pypython
from typing import Protocol
class Provisioner(Protocol):
async def activate(self, circuit_id: str) -> str: ...
async def activate_service(
provider: Provisioner, circuit_id: str
) -> str:
return await provider.activate(circuit_id)
05 · Contact

Let's talk about what you're building.

For conversations about software architecture, connected hardware, platforms and the teams behind them.

Connect on LinkedIn