I build open-source software with a focus on performance, interoperability, thoughtful UX and maintainable system design.
My work currently spans Linux desktop development, creative applications, Home Assistant, smart homes, networking, infrastructure and cross-device integrations.
Β Β Β Β
Projects Β· Linux Β· Smart Home Β· Creative Software Β· Engineering Β· Stack Β· Open Source
I'm an Aerospace Engineering student and open-source developer interested in understanding how complete systems work β from user interfaces and application architecture down to operating-system services, networking and hardware integration.
I enjoy projects where engineering and product design meet.
Rather than building isolated prototypes, I tend to work on complete ecosystems:
- π§ Linux desktop environments and operating-system integration
- π¨ Native creative software
- π Home Assistant and smart-home systems
- π Apple β Linux interoperability
- π Networking and self-hosted infrastructure
- β‘ Performance profiling and optimization
- π§ͺ Automated testing and CI
- π Cross-device and cross-platform workflows
- π°οΈ Aerospace, GNSS and numerical engineering
My general philosophy is simple:
Build it. Understand it. Measure it. Improve it.
Nodalix OS is a cohesive Arch Linux desktop built around Hyprland, Wayland and QuickShell.
The project treats the desktop as one integrated system rather than a collection of unrelated dotfiles and utilities.
- Nodalix Shell β custom QuickShell/QML desktop interface
- Nodalix Apps β application management and integration
- Phone Link β native iPhone integration
- Nodalix Updater β system and release management
- Nodalix Installer β installation and deployment
- Nodalix Release β versioned system definition
- Nodalix Wallpapers β visual identity and desktop assets
Nodalix includes its own Phone Link implementation for iPhone.
It works with technologies including:
- ANCS / Bluetooth LE β notifications
- MAP / OBEX β messages
- PBAP / OBEX β contacts
- HFP / oFono β calls and hands-free integration
The goal is to make iPhone integration feel like a native part of the operating system, rather than a separate utility.
Nodalix also works on:
- integrated system updates
- stable and preview release channels
- Arch package updates
- application updates
- firmware updates
- hardware-aware optimizations
- Bluetooth
- PipeWire audio
- networking
- notifications
- media controls
- desktop search
- system settings
- recovery paths
- security
- gaming integration
β‘οΈ Repository
β‘οΈ Latest release
β‘οΈ All releases
β‘οΈ Issues
β‘οΈ Pull requests
Nodalia Cards is a cohesive, app-like card system for modern Home Assistant dashboards.
Rather than treating every card as an independent component, Nodalia uses shared design principles, interaction patterns, editors and architecture across the entire suite.
- responsive card layouts
- optimistic interactions
- fluid animations
- visual editors
- mobile-first interfaces
- theme-aware surfaces
- shared design tokens
- localization
- lazy loading
- automated testing
- reusable architecture
- performance-focused rendering
The suite includes cards for:
- lights
- climate
- covers
- locks
- alarm panels
- media players
- cameras
- vacuums
- weather
- calendars
- graphs
- power flows
- rooms
- people
- scenes
- notifications
- navigation
- favourites
- gauges
- news
- entities
- fans
- humidifiers
Nodalia Cards is available directly from the official HACS catalogue.
Nodalia Cards Engine is the optional backend companion for Nodalia Cards.
It enables functionality that needs to continue running even when no dashboard is open, including advanced shared state and background features.
Nodalia uses a self-hosted Weblate instance for collaborative translations.
β‘οΈ translate.getnodalia.com
A Home Assistant integration for electricity, gas, invoices and virtual-battery information exposed by the Repsol / Vivit Energy customer portal.
It supports:
- electricity
- gas
- multiple contracts
- accumulated costs
- consumption
- invoices
- price information
- virtual battery data
β‘οΈ Repository
A Tailscale integration for modern Homey Pro systems providing secure remote connectivity through a user's tailnet.
Features include:
- automatic connection
- connection monitoring
- Homey Flow cards
- accepted subnet routes
- tags
- optional route advertisement
- userspace networking
β‘οΈ Repository
β‘οΈ Tailscale
Nodalia Apps contains Home Assistant applications and related integrations maintained as part of the wider Nodalia ecosystem.
Current areas include:
- Tailscale
- Matter
- remote connectivity
- smart-home interoperability
β‘οΈ Repository
Lienzo is a native C++/Qt image editor focused on serious layered creative workflows, interoperability and local-first processing.
It builds on the open-source Patchy codebase while developing its own application identity, UX, packaging and feature roadmap.
Lienzo works with:
- raster layers
- vector layers
- text layers
- groups
- masks
- clipping masks
- blend modes
- adjustment layers
- Smart Objects
- Smart Filters
- paths
- gradients
- layer styles
- selections
- transformations
- brushes
- healing tools
- clone tools
- filters
- RAW development
A major engineering focus is interoperability with layered Photoshop documents.
Lienzo works on:
- PSD
- PSB
- editable text
- masks
- blend modes
- Smart Objects
- Smart Filters
- layer effects
- round-trip compatibility
- regression testing
Formats and workflows include:
PSD Β· PSB Β· PNG Β· JPEG Β· TIFF Β· WebP Β· BMP Β· TGA Β· GIF Β· SVG Β· Aseprite Β· JPEG XR Β· Camera RAW
and additional import/export workflows.
Lienzo includes a native Model Context Protocol connector and JavaScript scripting environment.
This allows local automation tools to work with editable documents rather than relying only on screenshots or flattened files.
Capabilities can include:
- inspecting document structure
- reading layer information
- creating layers
- editing text
- manipulating shapes
- selections
- brush strokes
- filters
- exports
- saving editable documents
- canvas previews
Lienzo is designed around local processing:
- no telemetry
- no account requirement
- no mandatory cloud backend
- no document upload requirement
β‘οΈ Repository
β‘οΈ Issues
β‘οΈ Pull requests
Vinilo is a native GNOME music player for Linux written in Rust, GTK4 and libadwaita.
Its goal is to provide one native desktop experience for multiple music sources without simply wrapping a website inside a window.
Vinilo currently works with:
| Source | Status |
|---|---|
| π Apple Music | Stable |
| π» Local music | Stable |
| π’ Spotify | Stable |
| Beta | |
| π Tidal | Alpha |
- music library
- artists
- albums
- playlists
- queue
- lyrics
- karaoke
- crossfade
- listening statistics
- optional Last.fm scrobbling
- media keys
- lock-screen controls
- desktop integration
- background playback
Vinilo separates the UI from the playback engine.
The GNOME application and its terminal client aguja communicate with the same backend, allowing music to continue playing even when the graphical window is closed.
β‘οΈ Repository
β‘οΈ Issues
Some repositories are also used to explore upstream projects, experiment with architecture and develop ideas for a broader native application ecosystem.
My CAD-related work currently builds on Open CAD Studio, an open-source Rust project for 2D drafting and 3D modeling.
Areas include:
- DWG / DXF
- 2D drafting
- 3D modeling
- GPU rendering
- technical drawings
- desktop CAD workflows
- Rust
β‘οΈ My repository
β‘οΈ Open CAD Studio upstream
β‘οΈ Open CAD Studio website
Browser experimentation based on GNOME Web / Epiphany and the WebKitGTK ecosystem.
Areas of interest include:
- GNOME-native browsing
- WebKitGTK
- desktop integration
- privacy
- native Linux UX
β‘οΈ My repository
β‘οΈ GNOME Web
β‘οΈ WebKit
Creative-tool experimentation based on the open-source Graphite graphics engine.
Graphite combines vector, raster and procedural node-based graphics workflows.
β‘οΈ My repository
β‘οΈ Graphite
β‘οΈ Graphite upstream
A large part of my current work revolves around building software that feels genuinely native to the Linux desktop.
Technologies and projects I work with include:
- desktop shells
- Wayland
- compositors
- QML
- GTK4
- libadwaita
- Qt
- desktop search
- application launchers
- notifications
- system settings
- media integration
- Bluetooth
- systemd
- PipeWire
- application packaging
- hardware integration
- update systems
- desktop performance
A recurring theme across my projects is improving interoperability between ecosystems that normally do not integrate deeply.
I'm particularly interested in:
Apple devices
β
βββ iPhone
βββ iCloud
βββ AirPlay
βββ HomeKit
βββ Apple Music
β
βΌ
Linux
β
βββ Nodalix
βββ Phone Link
βββ Vinilo
βββ desktop services
βββ local integrations
β
βΌ
Smart Home / Infrastructure
βββ Home Assistant
βββ Homey
βββ Tailscale
βββ local services
The goal is not to recreate closed ecosystems, but to make Linux participate in them naturally wherever technically possible.
Useful references:
I also maintain and experiment with self-hosted systems and local infrastructure.
Areas include:
- virtualization
- containers
- local DNS
- VPN / mesh networking
- reverse proxies
- remote access
- NVR
- local AI workloads
- smart-home infrastructure
- backups
- observability
- system recovery
Software is only one side of my work.
I'm studying Aerospace Engineering, with interests including:
- aerodynamics
- fluid mechanics
- structures
- propulsion
- turbomachinery
- flight mechanics
- control systems
- numerical methods
- GNSS
- orbital mechanics
- satellite navigation
- simulation
A Python project for computing the ECEF position of GPS satellites from broadcast ephemerides contained in RINEX navigation files.
It includes:
- RINEX navigation parsing
- GPS ephemeris extraction
- ephemeris selection
- Kepler equation solving
- broadcast orbit corrections
- ECEF coordinates
- geodetic conversion
- CSV export
- satellite position propagation
β‘οΈ Repository
I prefer explicit responsibilities, reusable components and clear boundaries over feature code that becomes progressively harder to change.
I like profiling actual bottlenecks instead of guessing.
That includes work around:
- rendering pipelines
- caching
- dirty regions
- lazy loading
- DOM updates
- compositing
- desktop responsiveness
- memory usage
- startup performance
Performance also needs to be perceived.
Good software should respond immediately through:
- optimistic state
- predictable interactions
- fluid motion
- clear feedback
- consistent controls
Tests and CI are part of the architecture.
I use them to make refactors safer and prevent fixed bugs from quietly returning later.
The goal is not only to make software work today.
It should still be understandable and extensible after hundreds of commits.
I particularly enjoy making systems that were not designed for each other work together cleanly.
Right now I'm mainly working on:
- evolving the shell
- Phone Link
- Apple / iPhone integration
- system updates
- security
- performance
- native applications
- cohesive desktop UX
- next-generation Nodalia Cards architecture
- Nodalia Cards Engine
- performance
- testing
- translations
- Home Assistant integrations
- rendering performance
- editing workflows
- PSD / PSB compatibility
- native interface work
- automation
- MCP integration
- creative-tool architecture
- streaming-source integration
- GNOME UX
- playback architecture
- desktop integration
- local music
- background playback
- CAD
- vector graphics
- web browsing
- Linux-native software
- smart-home tools
- Apple interoperability
Some other projects and experiments:
| Project | Area | Repository |
|---|---|---|
| π Leon Bus Live | Public transport data | GitHub |
| π‘ CLI AirPlay | AirPlay experimentation | GitHub |
| πΆ OwnTone Server | Network audio | GitHub |
| πΊοΈ Nodalia Roborock Map | Home Assistant / Roborock | GitHub |
| π Nodalia Apps | Home Assistant apps | GitHub |
| β‘ Vivit Energy Portal | Home Assistant energy | GitHub |
| π Homey Tailscale | Networking / Homey | GitHub |
| π°οΈ GPS RINEX Orbit Propagator | Aerospace / GNSS | GitHub |
β‘οΈ Browse every public repository
Most of the software I build is developed publicly.
I value:
- bug reports
- technical discussion
- code review
- testing
- translations
- design feedback
- reproducible benchmarks
- pull requests
- real-world usage
If you're using one of my projects and find something that can be improved, feel free to open an issue.
- π§ Nodalix OS
- π Nodalia Cards
- βοΈ Nodalia Cards Engine
- π¨ Lienzo
- π΅ Vinilo
- π Home Assistant
- π§© HACS
- π Nodalia Weblate
- β‘ Vivit Energy Portal
- π Homey Tailscale
- π°οΈ GPS RINEX Orbit Propagator
- π€ Profile
- π¦ Repositories
- β Stars




