Skip to main content

AeroTrack — Real-Time Airspace Monitoring

C++20 aircraft tracking system with asynchronous networking, persistent flight history, and live geospatial visualization

A real-time aircraft monitoring platform combining C++ telemetry processing, persistent track management, WebSocket streaming, and interactive geospatial analysis.

Role
Software Engineer — C++ & Full-Stack Systems
Year
2026

Technologies

C++20
Boost.Asio
SQLite
React
TypeScript
Boost.Beast
WebSocket
MapLibre GL JS
WGS84
GeoJSON
Vulkan
Python
CMake
GoogleTest
Vitest

Project media

aerotrack-bratislava-boundary-monitoring

Technical context

Aircraft tracking combines continuous position updates, geographic calculations, and historical observations. Maintaining a useful operational picture requires consistent data handling across network ingestion, persistent storage, and live visualization.

Problem

Build a real-time monitoring system that keeps aircraft state, flight sessions, and historical data consistent while handling irregular event timestamps, connection interruptions, and geographic boundary transitions.

Project overview

AeroTrack uses a modular C++20 backend to receive aircraft updates through a TCP protocol, maintain active tracks, and persist flight data in SQLite. Database transactions establish the authoritative state before updates are published to connected clients. Persistent session identities, retention policies, and restart recovery preserve track continuity independently of irregular aircraft timestamps.

The React/TypeScript console visualizes aircraft through MapLibre GL JS, with live positions, flight trails, and camera tracking. Geographic monitoring supports municipal boundaries and configurable radius areas, with estimated entry and exit events derived from observed trajectories. A separate native Vulkan viewer extends the project's geospatial foundation into 3D rendering.

Technical approach

  • Implement asynchronous TCP telemetry ingestion with structured message parsing and validation
  • Design transactional SQLite persistence for aircraft tracks, flight sessions, and historical observations
  • Stream authoritative track snapshots and incremental updates through WebSocket
  • Develop geographic monitoring using administrative boundaries and geodesic distance calculations
  • Separate visual aircraft interpolation from authoritative state and spatial analytics

Technical focus

  • Asynchronous TCP networking and event-driven system architecture
  • Transactional persistence, session management, and restart recovery
  • Real-time state synchronization and WebSocket communication
  • Geospatial analysis, trajectory processing, and boundary detection
  • Georeferenced visualization and coordinate transformations

Architecture notes

  • C++20 backend with asynchronous TCP sessions, validated AERO1 messages, and centralized aircraft state
  • SQLite repository maintaining current tracks, historical observations, durable session identities, and retention
  • REST API and sequenced WebSocket protocol supporting snapshots, incremental updates, and client resynchronization
  • React/MapLibre console separating authoritative track state from interpolated rendering and area analytics
  • Independent Vulkan rendering module with WGS84, ECEF, ENU, and renderer-space coordinate transformations

Engineering highlights

  • Transactional persistence before live-state updates and WebSocket publication
  • Persistent flight sessions with deterministic ingestion ordering and restart recovery
  • Sequenced WebSocket updates with automatic reconnection and snapshot synchronization
  • Monitoring across four city boundaries and configurable 5–250 km radius areas with estimated crossing events
  • Smooth aircraft visualization, flight trails, camera follow, and a separate georeferenced Vulkan 3D scene

Outcome

Implemented an end-to-end monitoring workflow connecting aircraft telemetry ingestion, persistent flight tracking, REST/WebSocket services, and interactive geospatial visualization, including session recovery and boundary-crossing analysis.