Selected work

Projects built to solve real problems

A selection of backend systems, AI experiments and full-stack products. Each project includes the decisions, constraints and evidence behind the implementation.

Projects

Java, TypeScript

todrawn.com

case study
todrawn.com landing page for Scribe, showing the hand-drawn video workflow and controls for trying Scribe or opening a board.
Problem
For the board mode, keep drawing and board state in sync across connected clients while the wider product also supports Scribe, accounts and subscriptions.
Role
Built todrawn.com end to end; this case study focuses on the Spring Boot API, Next.js canvas experience, real-time layer, billing and deployment behind the board mode.
Decisions
WebSockets carry board updates; PostgreSQL stores durable data; Redis handles fast, short-lived state; Docker, GitHub Actions and Cloud Run handle delivery.
Result
A live todrawn.com product combining Scribe with collaborative boards, including a production board mode with Stripe subscriptions.

Java

LlamaTalks

case study
RAG PIPELINE grounded response
  1. 01 Document Tika → chunks
  2. 02 Vector store embeddings + retrieval
  3. 03 Ollama context + history
  4. 04 SSE Reactor/Flux

LangChain4j orchestration · PostgreSQL history

Problem
Answer questions from a user's documents while keeping the language model local to the application.
Role
Built a Spring Boot chatbot around LangChain4j, Ollama, document ingestion and persistent conversations.
Decisions
The ingestion endpoint sends files through Apache Tika parsing and chunking, then embeddings and semantic retrieval provide context alongside conversation history. LangChain4j connects that context to Ollama, while Reactor/Flux and SSE stream the response; changing embedding dimensions requires re-ingestion.
Result
An open-source chatbot project with local-model conversations, document Q&A and streamed responses.

Java, React

Gamelog

case study
Gamelog landing page with a backlog headline, navigation, and a collage of game artwork.
Problem
Give players one place to organize a game library, track progress and keep social features beside the backlog.
Role
Built a full-stack game backlog manager with a Spring Boot API and React interface.
Decisions
A Kanban dashboard models progress; PostgreSQL persists accounts and library data; Redis provides caching; Docker packages the application.
Result
A working full-stack tracker with search, playtime, ratings, friend requests and a live demo.

Java, Vue, TypeScript

MapGenerator

case study
Generated MapGenerator fantasy map with blue ocean, multiple landmasses, biome textures, mountains and cities.
Problem
Turn one seed and a map size into an explorable fantasy world while keeping large maps responsive in the browser.
Role
Built the Spring Boot generation backend and Vue/TypeScript Canvas client, including the streaming path, viewport and renderer.
Decisions
Multiple noise layers model height, moisture, temperature and the continent mask. The client uses a hybrid virtual/offscreen canvas: static land is pre-rendered and only waves are calculated per frame.
Result
A working procedural map generator with streamed terrain, pan/zoom navigation, topology shading, procedural textures and cities.

Java, Angular

Cibaria

case study
Cibaria recipe manager interface showing a food recipe browsing and management view.
Problem
Give recipe enthusiasts one place to create, store, search and share recipes with a bilingual interface.
Role
Built the full-stack application across its Angular frontend and Spring Boot REST API, connecting the product to PostgreSQL.
Decisions
Angular 18.2.7 provides the responsive client, Spring Boot 3.4.1 exposes the API, PostgreSQL persists recipe and user data, and the product keeps English and Polish content paths together.
Result
A live recipe manager with recipe creation, search, filtering, profiles, favorites, ratings and English/Polish support.

Astro, TypeScript

SosniakPortfolio

case study
SosniakPortfolio homepage for Sebastian Sośniak showing a content-first portfolio layout.
Problem
Present Sebastian Sośniak's projects and experience in a fast portfolio that stays easy to maintain as the content grows.
Role
Designed and built the portfolio with Astro, TypeScript and Tailwind CSS, then deployed it to the live metricmind.pl domain.
Decisions
Astro's mostly static output keeps the content path light; TypeScript supports type-safe components; Tailwind CSS keeps the visual system consistent; Vercel provides hosting and delivery.
Result
A live content-first portfolio for Sebastian Sośniak at metricmind.pl, backed by a public repository with 10 commits.

Astro, TypeScript

StrefaSA

case study
StrefaSA marketing homepage for an MTA:SA community with a cinematic game-focused presentation.
Problem
Connect an MTA:SA community's game atmosphere with a credible web presence and a shop path that hands checkout to the separate backend.
Role
Worked as co-owner and co-creator of the server, designing and building the Astro frontend, including the marketing site and /sklep handoff.
Decisions
Astro keeps the public frontend lightweight; live server data builds trust; /sklep hands payment flow to a separate MTA backend and Stripe Checkout instead of pretending the frontend owns fulfillment.
Result
A live cinematic marketing site and store entry point at strefasa.pl, backed by a private repository with 26 commits.
See more on GitHub Browse the public repositories and implementation details.