Project index · 2020 — 2026

Selected
projects

Four projects spanning freelance client work and personal builds: what the problem was, what I built, and what changed.

01
Sports & Betting
RoleLead iOS Developer
DurationApr 2021 — Apr 2026
URLatlasworldsports.com ↗

Atlas World Sports

A sports app that kills FOMO by combining live league scores, personalized news, and legal sportsbook betting lines in one place.

Swift UIKit VIP + Coordinators Clean Architecture Xcode Cloud Firebase
Problem

Sports fans needed one place to track live scores, personalized news, and their sportsbook bets without missing a moment.

Approach

Owned the app end to end, the last three years as sole iOS developer: a modular Clean Architecture codebase (Domain, API and cache layers) with VIP scenes and Coordinators, 90%+ test coverage on the data layer, and an Xcode Cloud pipeline shipping to TestFlight with Crashlytics symbol uploads. Built live scores and play-by-play, odds, predictions, golf, news, push notifications and deep links, and regularly advised the PM and backend team on what to build and how.

Outcome

Took the app from v1.0 to v4.0 over five years of continuous App Store releases, adding seasonal rankings, golf, and predictions as the product grew; succeeded in 2026 by a new app built by a new team.

02
Backend & POS Integrations
RoleBackend Developer (Swift/Vapor)
DurationJan 2023 — Feb 2026
URLwisk.ai ↗

Wisk

The leading restaurant management platform — analytics, recipe costing, and bar inventory software for running a bar or restaurant with ease.

Swift Vapor Kotlin PostgreSQL Couchbase Google Cloud
Problem

Wisk's analytics, recipe costing, and inventory tools are only as accurate as the POS sales data feeding them — and operators run on 80+ different POS systems, each with its own API, export format, and quirks.

Approach

Over three years as a core backend contributor, I owned much of the POS integration layer in Swift and Vapor: importers for Micros, Toast, Square, Lightspeed, Clover, GiveX, GoTab, Omnivore and more, covering sales, menus, modifiers, discounts and voids, plus rate-limit handling, retries and re-import tooling. In a companion Kotlin service I built file-based importers for SFTP and email feeds (Micros/Wisk SFTP, SmartTab, Harbortouch, SpotOn). Beyond POS, I worked on Couchbase real-time sync, venue transfers, and purchase order and invoice alert emails.

Outcome

30+ POS systems integrated and kept in sync, feeding accurate sales data into Wisk's platform for bar and restaurant operators.

03
Marketplace
RoleiOS Developer
DurationOct 2021 — Jul 2022
URLzenjob.com ↗

Zenjob

A digital staffing marketplace where talents book flexible, hourly jobs and companies fill temporary shifts across logistics, e-commerce, retail, and service.

Swift UIKit
Problem

Companies needed flexible, on-demand staff, while workers wanted control over when, where, and for whom they worked.

Approach

Owned the entire app lifecycle — concept, design, testing, deployment, release to stores, and support — implementing UI in close collaboration with designers.

Outcome

Shipped a production iOS app helping power a platform booking 40,000+ workers a month across logistics, e-commerce, retail, and service roles.

04
Personal Project · Android
RoleSolo Developer
DurationAug 2026 — now
URLparkingns.bojanbosanac.com ↗
Play StoreGoogle Play ↗

Parking Novi Sad

Pay for street parking in Novi Sad by SMS — see which zones are nearby, pick your plate, and send in one tap.

Kotlin Jetpack Compose Coroutines & Flow Room Retrofit AI-assisted (Claude Code)
Problem

Paying for street parking in Novi Sad means knowing which zone you're standing in, remembering that zone's SMS number, and re-typing your license plate every time — with no official app to make it easier.

Approach

Built end to end in Kotlin and Jetpack Compose with an MVI-style architecture. All eight city zones, one-tap SMS (with a fix for Samsung's Messages app), and live GPS distance to nearby zones from 309 mapped street segments — a zone map that refreshes itself from a versioned remote dataset, so new streets ship without an app update. Developed with an AI-assisted workflow using Claude Code: I defined the architecture, conventions and features, and reviewed and shipped every change.

Outcome

Shipped to Google Play (v1.1) as a free, ad-supported app in Serbian and English. There's no backend or account: plates and location never leave the device, and no card details or registration are needed to pay.

Next

Want the detail
behind any of these?