SELECTED WORK / 03 PROJECTS

CASE STUDIES

The systems, constraints and decisions behind the projects — not just screenshots.

01 / FULL-STACK SYSTEM IN DEVELOPMENT

Shop Management System

FrontendAngular 22
BackendSpring Boot 4 / Java 21
DataPostgreSQL 18 / Redis
InfraDocker / Flyway / Testcontainers
THE SYSTEM

Business flows before demo screens.

The platform is built around connected business domains: products, SKUs, pricing, inventory, customers and orders.

The backend is designed as a modular monolith, with the management dashboard as the first client and additional clients planned as the system matures.

CLIENTANGULAR 22Management dashboard
FUTURESTOREFRONTPlanned client
FUTURESHOP COUNTERPlanned client
REST API ↓
BACKENDSPRING BOOT 4 / JAVA 21Modular monolith
DATA ↓
PRIMARYPOSTGRESQL 18Core relational data
SUPPORTREDISSupporting infrastructure
01

Inventory changes should have a reason.

Goods receipts and inventory movements make stock changes auditable instead of silently overwriting a quantity.

02

Purchase cost belongs in the receiving transaction.

The receiving flow records quantity and purchase cost, supporting weighted-average inventory costing.

03

Repeatable infrastructure matters early.

Docker, Flyway and Testcontainers keep the local environment, schema and integration tests predictable.

02 / MOBILE SYSTEM BUILT

CircleChat

ClientReact Native / Expo
LanguageTypeScript
BackendSupabase
DatabasePostgreSQL / RLS
THE CHALLENGE

Features became architecture once they started interacting.

CircleChat grew from private messaging into groups, media, replies, reactions, presence, storage policies and moderation.

The interesting problems were keeping authorization, storage cleanup, account restrictions and UI state consistent with each other.

01

Stable message pagination.

Loading older messages above the current viewport without a visible jump required careful list-state handling.

02

Authorization belongs in the backend.

Active membership and roles affect messaging, media access, invitations and group administration.

03

Moderation has to survive a modified client.

Suspended and banned account restrictions are backed by database behavior rather than hidden UI alone.

03 / NATIVE ANDROID COMPLETED

NightClock

PlatformAndroid
LanguageKotlin
UIJetpack Compose
SettingsDataStore
PRODUCT CONSTRAINT

The display itself changed the implementation.

NightClock is meant for long-running landscape use on an OLED device, so fullscreen behavior, pure black rendering and burn-in mitigation are part of the product — not visual extras.

V1 also includes five clock styles, quick timers, dim mode, sound/vibration and persistent settings.

END OF SELECTED WORK

Want the short version?