Port City Creations

Building Real Software, Start to Finish

Complete applications across platforms. Not just code—full products with thoughtful architecture, comprehensive testing, and polished user experiences.


What I Do

Web Applications at Scale

Production systems that handle real business complexity. Multi-tenant platforms with sophisticated access control. Admin dashboards that make operations manageable. APIs that external systems can depend on.

The hard parts: Legacy codebases that need modernization without breaking what works. Authentication systems with multiple user types and permission levels. Search interfaces that stay fast as data grows. Audit trails for compliance-sensitive industries.

Tech stack: Laravel, FastAPI, Vue, Inertia.js, OpenSearch, PostgreSQL, Redis

Data That Drives Decisions

Turning raw information into insights people actually use. ETL pipelines that run reliably. Dashboards that answer questions before they’re asked. Automated reports that save hours of manual work.

The hard parts: Aggregating data from messy sources. Building visualizations that surface patterns. Natural language processing for unstructured text. Making AI-generated analysis actually useful.

Tech stack: Python, DuckDB, dbt, Dagster, Metabase, OpenAI, LangChain

Native Mobile Apps

iOS and Android applications that feel native because they are. Offline-capable with intelligent sync. Background processing that respects battery life. Real-time features that work reliably.

The hard parts: Managing state across network conditions. Platform-specific integrations done right. Authentication flows that don’t frustrate users. Testing across device configurations.

Tech stack: Swift/SwiftUI, Kotlin/Jetpack Compose, SwiftData, Hilt, Retrofit

Device & Hardware Integration

Software that connects to the physical world. Custom extensions for cycling computers and wearables. Headless device authentication. Real-time tracking and location services.

The hard parts: Working within hardware constraints. Building for devices without keyboards. Synchronizing data between multiple form factors. Handling intermittent connectivity.

Tech stack: Kotlin, Swift, MonkeyC, CoreLocation, device-specific SDKs

Lightweight Web Tools

Progressive web apps that work offline. Browser extensions that enhance existing workflows. Simple tools that do one thing well.

The hard parts: Service worker caching strategies. Cross-browser compatibility. Building installable experiences without app store friction.

Tech stack: Lit.js, Svelte, vanilla JS, IndexedDB, Service Workers

Developer Tools & Automation

CLI tools that solve recurring problems. Build automation that saves time. Integration scripts that connect disparate systems.

The hard parts: Making tools that are actually pleasant to use. Handling edge cases gracefully. Supporting multiple platforms without complexity explosion.

Tech stack: Go, Python, Cobra, typer, httpx


How I Work

Architecture first. Understanding the problem before writing code. Choosing patterns that fit the scale. Avoiding over-engineering, but also avoiding shortcuts that create debt.

Testing as standard. Unit tests, integration tests, and end-to-end coverage where it matters. Not 100% for vanity metrics—focused coverage on the paths that can break.

Delivery mindset. Working software over perfect plans. Incremental progress with frequent check-ins. Clear communication when scope or timeline concerns arise.


Tech Stack Overview

Languages: Swift, Kotlin, Go, Python, PHP, JavaScript/TypeScript

Web: Laravel, FastAPI, Django, Vue, Svelte, Lit.js, HTMX

Mobile: SwiftUI, Jetpack Compose, SwiftData, Hilt

Data: PostgreSQL, MySQL, SQLite, DuckDB, OpenSearch, Redis

AI/ML: OpenAI, LangChain, Google Cloud NLP, Langfuse

Infrastructure: GitLab CI/CD, Docker, Sentry, various cloud providers


Let’s Build Something

From initial architecture through production deployment—native apps, web platforms, device integrations, data pipelines, and everything in between.

If you have a project that needs to get built right, let’s talk.