Skip to content
View Robotbino's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report Robotbino

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Robotbino/README.md

Hi, my name is Bino — Full-Stack Developer | Musician

Full-stack developer in Pretoria, South Africa.
Enterprise Java by day · Spring Boot + Angular/React after hours · tests, docs and trade-offs included.

Portfolio LinkedIn Email

👋 About Me

I write enterprise Java web applications during the day, the kind with long-lived business rules, workflow engines and a QA process behind every release. After hours I build the other half of the stack: Spring Boot APIs and Angular/React front ends.

That split is deliberate. Work taught me how software survives in production. My own projects are where I go deep on the modern stack (stateless JWT auth, Angular Signals, WebGL, transactional checkouts) and then write down why I chose what I chose.

  • 💼 3 years of professional full-stack experience, since June 2023
  • 🎓 BSc Information Technology, North-West University (2023)
  • 🧭 "Less but better": simple interfaces, dependable code, honest docs
  • 🕹️ Side quests: producing music, soccer, reading, and far too much anime 🗡️
  • 🐍 The snake at the bottom of this page eats my commit history. Stick around for it.

🔭 Right Now

  • 🔨 Shipping: taking GameStore from localhost to live. Docker, a production profile and CI on every push come first, then a public deploy.
  • 📚 Studying: AWS Certified Cloud Practitioner · Oracle Certified Associate, Java SE 8 Programmer (1Z0-808)
  • 🤖 Next up: AI engineering in Java, starting with retrieval-augmented generation (RAG), and running LLMs locally with Ollama.

🛠️ Tech & Tools

Languages
Java, TypeScript, JavaScript, Python

Frontend
Angular, React, HTML5, CSS3, Sass, Vite, Bootstrap
➕ Angular Signals · RxJS · React Router · WebGL (OGL)

Backend & Data
Spring Boot, Hibernate, MySQL
➕ Spring Security · JWT · Spring Data JPA · Flyway · Java EE · Oracle SQL

Testing & Quality
GitHub Actions
➕ JUnit 5 · MockMvc · H2 · Jasmine · Karma · ESLint · Prettier

Tools & Platforms
Git, GitHub, Postman, Maven, IntelliJ IDEA, VS Code, Eclipse, Docker, Netlify
➕ Claude Code for AI-assisted development


📂 Featured Projects

Project What it is Links
🎮 GameStore Full-stack game store: wishlist, cart, simulated checkout, rewards and an admin portal on a JWT-secured Spring Boot API Backend · Frontend
👔 Employee Management System Stateless JWT auth done properly across a Spring Boot API and an Angular client Backend · Frontend
🃏 Code Pairs Memory game on Angular standalone components + Signals, with combo scoring and S–C ranks Repo · Live
🌌 Personal Portfolio One looping scroll over a WebGL aurora: no router, ten ADRs, gated by CI Repo · Live

🎮 GameStore: a complete commerce loop, end to end

Started as a React UI exercise. I kept asking what an actual store needs behind the pretty grid, and it turned into a full-stack app with the whole loop: discover → wishlist → cart → checkout → own.

  • Two audiences, one API. Customers search the catalogue with live suggestions, keep a wishlist, check out and build a personal library. Admins get a separate portal with full CRUD over games and users.
  • Checkout that respects money, even fake money. One transaction snapshots each line's price, grants ownership and returns a DEMO- receipt. The rewards ledger (earn 10 points per R1, redeem 100 points for R1 off) is always recomputed on the server, and card details never leave the browser.
  • Security is the backbone, not a bolt-on. Stateless JWTs, USER/ADMIN roles in one ordered filter chain, identity taken only from the token (never from a ?userId=), and authorities reloaded from the database on every request.
  • Built to be trusted. Flyway owns the schema, 63 integration tests run against in-memory H2, and both repos ship an interactive engineering handbook plus a plain list of known limitations.

React 19 TypeScript Vite Spring Boot 3 Spring Security JWT MySQL Flyway JUnit 5

🔗 Backend · Frontend


👔 Employee Management System: stateless auth across two apps

Plenty of tutorials stop at "login works". I built this one to find out where token-based auth actually leaks: the seam between an API that trusts nothing and a client that has to remember everything.

  • Java 17 / Spring Boot 3 REST API over employee records: CRUD behind a Spring Security 6 filter chain that issues and verifies JWTs on every request.
  • The Angular side holds up its end. An HTTP interceptor attaches the token to outbound calls; route guards keep protected routes protected instead of just hiding the nav link.
  • A UI that only promises what it does. Light and dark themes with measured WCAG AA contrast, a dense table that drops columns by priority on smaller screens, and distinct loading, empty, no-results and error states. Buttons that led nowhere were removed, not styled.
  • Decisions on paper. The API ships an architecture and MVP roadmap doc; the client records its theme and layout choices as ADRs.

Java 17 Spring Boot Spring Security 6 JWT MySQL Angular SCSS

🔗 Backend · Frontend


🃏 Code Pairs: a memory game, rebuilt to learn Signals

A code-themed card matching game that I tore down and rebuilt on Angular's standalone components and Signals. The rewrite was the point.

  • Game state as derived state. One service holds the raw state in writable signals, and everything else (multiplier, accuracy, rank) is computed from it, which killed a whole class of stale-UI bugs.
  • Actual game design. Three difficulties, each with its own grid, lives and par time. Consecutive matches ramp a combo multiplier up to 3×, and every win is graded S, A, B or C.
  • Neo-brutalist "Paper & Ink" design system built on CSS custom properties, with 3D CSS card flips. Every button splits into a stationary hit box and a moving face, so a press can't slide off its own target.
  • Playable by everyone. Keyboard controls, screen-reader announcements for every flip and match, full reduced-motion support, and unit tests on the game rules.

Angular 19 Angular Signals TypeScript SCSS Jasmine Netlify

🔗 Repository · Live Demo


🌌 Personal Portfolio: an Awwwards-inspired site

I didn't want a résumé with a nav bar, that's boring. This one is a single continuous scroll: five destinations that wrap into a seamless loop, floating over a WebGL aurora.

  • No router. The whole site is one scroll loop with a cloned first section at the end, so reaching the bottom wraps back to the top without a jump or a route change.
  • One frame loop drives everything. A GLSL aurora rendered with OGL and an SVG constellation that morphs between the five destinations both run on a single shared requestAnimationFrame pulse outside Angular's zone, which keeps change detection off the 60 fps hot path.
  • Every real decision is an ADR. Ten so far, including the ones I tried and rejected. The repo also ships an interactive onboarding guide for anyone reading the code cold.
  • Nothing reaches production unchecked. Every push runs lint, a format check, unit tests on the pure scroll and motion maths, and a build that generates the Content-Security-Policy.

Angular 21 Angular Signals TypeScript OGL WebGL CSS3 GitHub Actions Portfolio CI status

🔗 Repository · Live Demo


🧱 How I Build

  • Decisions get written down. Ten ADRs in the portfolio (rejected ideas included) and three in Employee Manager. GameStore ships an interactive engineering handbook that spans both of its repos.
  • Tests live where the logic lives. 63 integration tests cover the GameStore API against in-memory H2. The portfolio keeps its maths in pure, unit-tested functions, and CI checks every push.
  • The schema is code. Flyway owns the GameStore database through versioned migrations with ddl-auto=validate, so schema drift stops the app at startup instead of hiding.
  • Accessibility is part of done. Keyboard play, screen-reader announcements and reduced-motion support in Code Pairs; measured WCAG AA contrast in both Employee Manager themes.
  • Limitations are stated plainly. Both GameStore READMEs keep a "Known limitations" section: what doesn't work yet, and why.

🧰 More on My GitHub

Project What it is Built with
📋 Agile Board Kanban-style task manager with multiple boards, TODO / DOING / DONE columns and a remembered light/dark theme Vanilla JS (ES modules) · CSS · localStorage
😂 Meme Generator Pulls templates from the Imgflip API and lets you caption them; my hands-on lesson in React state and controlled forms React · JavaScript

📜 Certifications

Certification Issuer Issued Proof
Claude Code 101 Anthropic Academy Apr 2026 Verify
Claude 101 Anthropic Academy Apr 2026 Verify
JavaScript Scrimba Dec 2025 Verify
HTML and CSS Fundamentals Scrimba Dec 2025 Verify
Artificial Intelligence Fundamentals IBM Oct 2024 Verify

📈 GitHub Activity

GitHub contribution streak: total contributions, current streak and longest streak

🐍 Contribution Snake

Contribution snake animation

Popular repositories Loading

  1. CMPG323-Project-2-37687638 CMPG323-Project-2-37687638 Public

    University project (NWU CMPG323, 2023): ASP.NET Core 6 Web API for EcoPower Logistics with JWT auth, EF Core on SQL Server, Swagger docs and an Azure deployment.

    C#

  2. EmployeeManager-Application EmployeeManager-Application Public

    Java 17 / Spring Boot 3 REST API for managing employee records, secured with stateless JWT authentication (Spring Security 6) over MySQL.

    Java

  3. CodePairs CodePairs Public

    Code-themed memory game on Angular 19 standalone components and Signals, with combo scoring, S–C ranks, and keyboard and screen-reader support.

    TypeScript

  4. PorfolioWebsite PorfolioWebsite Public

    My portfolio: one looping scroll over a WebGL aurora and a morphing star map. Angular 21 + Signals, no router, documented with ADRs and gated by CI.

    TypeScript

  5. gameStore gameStore Public

    React 19 + TypeScript game store: live search, wishlist, cart, simulated checkout with rewards points, and an admin portal. Front end for gameStore-backend.

    TypeScript

  6. EmployeeManager-Application-Frontend EmployeeManager-Application-Frontend Public

    Angular client for the Employee Manager API: JWT interceptor and route guards, light/dark themes with WCAG AA contrast, and a responsive employee table.

    TypeScript