Skip to content

Software Engineer

Singapore

Dean
Cruz.

Frontend-focused. I build React apps, and write Angular and Java at NCS.

  • React
  • TypeScript
  • Next.js

Gold

IMDA Medal

3.97

GPA, Republic Poly

3

apps shipped

02 · Background and focus

Short profile

Work

1,600+queries tuned at NCS

At NCS I designed the key frontend components of a full-stack Angular app, alongside legacy Java modernisation.

Side projects

9projects built

My three favourites are React and Next.js apps I built because I wanted to use them.

Technologies

React
TypeScript
Next.js
Tailwind
Java
Spring Boot
MyBatis
Hibernate

Hobbies

JRPGs
Anime

Sinking 100 hours into a JRPG while my anime backlog keeps growing.

Education

University of Wollongong

Bachelor of Computer Science (Artificial Intelligence and Big Data)

University of Wollongong · 2026 — 2028

Republic Polytechnic

Diploma in Digital Design and Development

Republic Polytechnic · 2022 — 2025

GPA: 3.97 / 4.00

Awards & honours

Republic Polytechnic

IMDA Gold Medal

Republic Polytechnic · 2025

Republic Polytechnic

Diploma Prize (Year 2)

Republic Polytechnic · 2024

Republic Polytechnic

Diploma Prize (Year 1)

Republic Polytechnic · 2023

Republic Polytechnic

Director's Roll of Honour (Years 1 — 3)

Republic Polytechnic · 2023 — 2025

03 · Where I've worked

Work experience

Permanent · Singapore

Designed the key frontend components of a full-stack Angular and Spring Boot app, alongside legacy Java modernisation. Planned and reviewed with NCS's in-house AI agent and OpenSpec. Part of the Fusion Work-Study Programme (sponsored UOW degree).

Migrated 800+ raw JDBC queries to MyBatis 3, then validated and tuned all 1,600+ queries to fetch only the data they need, with no behavioural regressions.

AngularJavaSpring BootMyBatisHibernateMySQLEJBSOAPJasperReports

04 · Three apps I built

Featured projects

Kiroku

Full-stack

Existing anime trackers never felt right, so I built my own.

Built on the Next.js App Router, so server components fetch the data and pages don't wait on client-side requests.

Next.jsTypeScriptPrismaPostgreSQLNextAuth