Currently developing my product-design practice.
Sownd Affects - Full-Stack Product Engineer
Worked on a PropTech startup, improving the customer-facing experience across mobile and tablet. Built shared customer-support tooling, property filtering and comparison features, and multilingual support in Catalan and French.
Stack & focus: Node.js · JavaScript · React · Redux · CSS · Sass · Tailwind CSS. Responsive UI, CRM features, customer-support tooling, and localisation.
A two-player turn-based Connect 4–style game built in Unity 6 (URP). Get four in a row: horizontally, vertically, or diagonally to win. Full game with start scene, player naming, scoring, winning screen, music control, 3D background and animations.
Mental Health Tracker CLI tool, record mood and review results. Uses Ink to create a full screen TUI, saves results in a SQLite database.
Issue developer proofs for a GitHub username: attach projects (repo URL, optional live link, verified/revoked status, checklist flags), store them in Neon (serverless Postgres) via Prisma, and share a read-only public /proof/[id] page. Admin UI under /admin; frosted shell, App Router, server actions.
Other projects
A React Native TypeScript random number generator app. README includes Expo Go QR code, scan then view in the Expo Go app.
Also used: React Native | Expo
Time Blocks Logger is a small time-tracking app: log time by category (e.g. Coding, Learning, Game Dev), see daily and weekly totals, and enforce a 24-hour-per-day limit so you can’t over-log a single day.
Also used: React Admin | Supabase
A React web app that searches for restaurants using the Yelp API. This was a project for the 'skill path Create a Front-End App with React' on Codecademy.com.
Career Flow Chart
Hello World!
%%{init: {"theme": "base", "themeVariables": {"fontSize": "14px"}} }%%
flowchart TB
%% --- MAIN CAREER PATH ---
subgraph MAIN["Main Career Path"]
direction TB
A["QS Degree"]:::main --> B["Assistant QS"]:::main --> X([Skill Transition]):::transition --> C["Digital Marketing<br>Analyst<br>⬇<br>Manager"]:::main --> Z([Skill Transition]):::transition --> D["Sales"]:::main --> Y([Skill Transition]):::transition --> E["Startup<br><b>Frontend Dev</b>"]:::main
E --> H["Startup went bust"]:::event --> I["Start Up<br><b>Fullstack Dev</b>"]:::main
end
%% --- SIDE ACTIVITIES ---
subgraph SIDE["Side Activities"]
direction TB
F["Ecom Side Business"]:::side
G["Learning Code"]:::side
end
%% --- SIDE CONNECTIONS ---
B -.->|Free time| F
F -.->|Skills influenced| X
F -.->|Free time| Z
G -.->|Skills influenced| Y
Z -.->|Free time| G
G -.->|Free time| I
%% --- STYLES ---
%% Node styles
classDef main fill:#9ec8ff,stroke:#0056b3,stroke-width:1.5px,color:#000;
classDef side fill:#e0e0e0,stroke:#666,stroke-width:1px,color:#333;
classDef event fill:#ffd699,stroke:#d98c00,stroke-width:1px,color:#000;
classDef transition fill:#d6f5d6,stroke:#00b300,stroke-width:1px,color:#000,stroke-dasharray: 4 2;
%% Edge styles
linkStyle default stroke:#0056b3,stroke-width:2px;
linkStyle 9,11,13,14 stroke:#888,stroke-width:1px,stroke-dasharray:4 2;




