$ whoami

Mohammad Ameen Kanaan

Java Backend Developer · Vienna, Austria

Junior backend developer in Vienna, finishing a Java apprenticeship. I build APIs end to end and care most about the parts that are easy to get wrong — payments, pricing, and data that has to stay correct over time.

$ skills

$ projects

Golden Fork — Restaurant Ordering System

A full ordering platform: customers browse a menu, build a cart and pay by card. Staff get a live kitchen queue and full control of the menu.

What it does

  • Real card payments through Stripe Checkout, verified end to end
  • HTML receipt emailed to the customer on every successful payment
  • Kitchen queue of paid orders, sorted by payment time
  • Admin menu management with soft delete, locked down by role
  • Server-rendered frontend in Thymeleaf, sharing the same services as the API

Design decisions I can defend

  • Snapshot pricing — each order stores the price it was bought at, so changing a menu price never rewrites history
  • Two independent payment confirmations — a Stripe webhook and a redirect check; either one alone is enough, so a lost webhook cannot lose a payment
  • Receipt failures never roll back a payment — a mail error inside the transaction would un-pay an order the customer was already charged for
  • Two separate limits — a per-line cap explains the rule to the customer, an order-total cap keeps the database column from ever overflowing
  • The session holds only a cart id — never the cart itself, and never an id taken from the URL
  • Java 21
  • Spring Boot
  • PostgreSQL
  • Stripe
  • Thymeleaf
  • JUnit 5

$ contact