Projects
This page is subject to a redesign and content update soon
Collaborative project management platform that re-imagined traditional, linear project tracking (like Jira) into a spatially organized 2D graph ecosystem. Designed for cross-functional organization, the platform allowed multiple engineering, design, and operations teams to map out task dependencies on a synchronized grid canvas.
System type:
ServerlessStack:
AWS stack (CDK, Gateway, Lambda, DynamoDB, Cognito, S3, MQTT), Node, GraphQL, Elm, TypeScript, SassSome features included:
- Grid-Constrained 2D Dependency Canvas
- Multi-Dimensional Cross-Team Classification
- Contextual Workspaces
- Collaborative Workspace Infrastructure
- Risk Task Lifecycle Support
Some notable contributions:
- Authored a highly configurable, reusable layout animation engine for Elm, overcoming the framework's strict rendering cycle to seamlessly orchestrate transitions from macro page-switches down to atomic component state updates
Comprehensive frontend architecture rewrite for a premier high-volume, B2B rare coin and currency trading network. The platform serves as an enterprise market data terminal and wholesale exchange where verified coin dealers track real-time valuations, analyze global rarity statistics, and place high-value buy/sell bids.
Stack:
Elm, Typescript, SassSome features included:
- Wholesale Market-Making Suite
- Industry Benchmark Integration
- Rarity & Population Census Tracking
Some notable contributions:
- Designed a reusable Excel-like editable table abstraction in Elm with an intentional escape hatch for client-only state, a capability that later saved significant rework when requirements evolved beyond what the standard cell abstraction was designed for
- Regularly collaborated with .NET/C# backend teams to diagnose API and schema issues, bridging the frontend-backend gap despite the stack difference
- Forked, fixed, and extended a TypeScript-based GraphQL code-generation CLI targeting a .NET backend — cross-stack work outside the team's expertise — significantly reducing manual boilerplate for backend teams
Mobile-first social sports platform designed to connect recreational athletes and simplify the logistics of organizing games. Brought players together based on mutual sports interests and skill levels, while simultaneously integrating local sports facilities directly into the user experience for effortless court and field reservations. Built as a hybrid application (Web, iOS, and Android) utilizing Apache Cordova.
System type:
ServerlessStack:
AWS stack (CDK, Gateway, Lambda, DynamoDB, Cognito, S3, MQTT), Node, GraphQL, Elm, TypeScript, SassSome features included:
- Dynamic Sports Matchmaking
- Geofenced Venue Booking
- Integrated Payments
- Performance & History Analytics
- Moderation & Safety Tools
Some notable contributions:
- Owned mobile build pipeline, resolving major breaking changes due to Android/iOS platform changes - patching unmaintained dependencies and resolving all blockers
- Owned CI/CD, resolving complex build failures due to subtle changes in 3rd party build dependencies
- Implemented an abstraction for payments (Stripe integrations)
Cross-platform B2B2C fitness ecosystem designed to bridge the gap between fitness enterprises, personal trainers, and clients. The platform functions as both an enterprise gym management tool and an interactive personal training app, built as a hybrid application (Web, iOS, and Android) utilizing Apache Cordova.
System type:
ServerlessStack:
AWS stack (CDK, Gateway, Lambda, DynamoDB, Cognito, S3, MQTT), Node, GraphQL, Elm, TypeScript, SassSome features included:
- Multi-Tier Enterprise Hierarchy
- Trainer Programming Suite
- Interactive Client Experience
- Workout Feedback System
- Real Time Chat
- Stats & Reporting System
Some notable contributions:
- Owned build tooling (Webpack, plugins, asset pipelines, SVG-to-code generation), designing and maintaining systems while implementing non-trivial major dependency upgrades
- Implemented front-end libraries for custom behaviours (custom high-performance drag&drop in Elm, custom input event handling to overcome Cordova limitations)
A system that acts as a front-end workspace for non-accountant staff to chase payments and fix data before it impacts the main ledger (the ERP). It manages financial communication post-sale, including the lifecycle of unpaid debt and operational exceptions.
This project was done pre-2022 e-invoicing reforms. The laws required rigorous physical and digital documentation.
System type:
Legacy:
MonolithRewrite:
Distributed monolith (transition phase from monolith into microservices)Stack:
Legacy:
PHP 5.6, HTML, CSS, MySQLRewrite:
PHP Symphony, NextJS, Emotion (CSS-in-JS), MySQL, MemcachedSome features included:
- Serbian Fiscal & Regulatory Compliance (pre-2022)
- Lifecycle Tracking
- Email Workflows
- Communication Audit Logs
- Priority Queue Dispatcher
- State Resolution Workflow
- ERP integrations
Some notable contributions:
- Surfaced and resolved overlooked quality-of-life issues in the legacy system — such as outdated hardcoded copy that all users were manually overwriting daily — by staying in contact with non-technical staff and acting on what I heard
- Ported poorly documented unclear legacy system code into a modern stack, utilising high coding standards that resulted in clear, readable code years later
Client Relationship Management (CRM) software for the top ranking job board company in the country. It was used mostly by the sales team to fascilitate their tasks and work flow, though it was used company wide for data/reporting purposes.
System type:
Distributed monolith (transition phase from monolith into microservices)Stack:
PHP Symphony, JavaScript React, Sass CSS, MySQL, MongoDB, MemcachedSome features included:
- Client & Lead Management
- Communication/Telephony Features
- Fair-Share Account Rotation
- User/Autorization Management
- Stats and Reporting Tools
- Real-Time Notifications
Some notable contributions:
- Improved backend performance by refactoring complex MySQL queries, reducing response times for the highest offending endpoint from ~30s to ~3s
- Identified a session redirect bug causing ~50 users to manually re-authenticate across all open browser tabs each morning; fixed by preserving the intended route through the auth flow, eliminating a daily friction point that had been silently accepted
- Designed a batch pipeline aggregating 20+ MySQL tables into MongoDB on a 30-minute schedule — replacing a ~3-minute real-time query with near-instant results for the sales team — and implemented non-trivial aggregation queries on the read layer to serve the final output