Skip to content

Side projects · Built on my own time

Work.

A study in restraint: one project, but the interesting decisions are the ones you can’t see.

Side project · 2025–26 · SVG renderer

ThinPath.

ThinPath

One allocation.

Roughly one allocation holds the whole document tree.

ThinPath

Cache-friendly traversal.

Nodes sit side by side in memory, so drawing is a straight walk forward.

ThinPath

O(1) teardown.

Freeing a document releases one block. There is no tree to walk.

arena · empty

Side project · ThinPath · 2025–26

SVG for Apple platforms, without the weight.

Featherweight SVG renderer for iOS, macOS, watchOS. Pure Swift, zero dependencies, flat arena architecture: roughly one allocation for the whole document tree, cache-friendly traversal, O(1) teardown.

  • Swift
  • SVG
  • Performance
  • Apple Platforms
Visit ThinPath

Side project · 2026 · Network inspector

Porthole.

Porthole

No proxy.

It hooks URLSession inside your app and captures HTTP, HTTPS and WebSocket traffic in memory.

Porthole

No certificates.

Nothing to trust and nothing to install on the device.

Porthole

No desktop app.

A native SwiftUI viewer, with cURL and HAR export.

Porthole 0 requests
GET/v2/search/flights142 ms
GET/v1/hotels?city=GOI88 ms
POST/v1/cart214 ms
GET/cdn/img/hero.webp12 ms
WS/live/faresopen
GET/v1/offers64 ms
GET/v2/search/buses131 ms
PUT/v1/profile97 ms
GET/cdn/fonts/text.woff29 ms
GET/v1/wallet173 ms
POST/v1/events41 ms
DELETE/v1/cart/items/258 ms
curl -X GET \
'https://api.example.com/v2/search/flights'
Copy cURLExport HAR

Side project · Porthole · 2026

A network inspector that lives in your app.

In-app network inspector for iOS and macOS. Hooks URLSession to capture HTTP, HTTPS, WebSocket in memory. No proxy, no certificates, no desktop app. Native SwiftUI viewer, cURL and HAR export.

  • Swift
  • SwiftUI
  • Networking
  • Apple Platforms
Visit Porthole

The long version.

How ThinPath
draws.

Read the post