All projects
Nuxt · Express BFF · OIDC

104 45+ Job Platform

2021 – 2023Commercial · Vue/Nuxt · SSR · BFF · Authentication
A two-sided job-matching platform for over-45s at 104, Taiwan's largest job platform, built by a product team of about seven engineers. It was a new product, started from nothing: a content-heavy, server-rendered job site for job seekers, and a separate posting-and-management site for employers. Because we were starting clean, the stack was an open question — I proposed Nuxt over the React we had been using, my manager signed off, and I opened the repository. The first commit is mine and it says `project init`. I stayed its main front-end owner until I left, across roughly 1,300 commits on the two sites.

Key features & challenges

  • Chose Nuxt for a greenfield product and made the case for it; my manager signed off. Opened the repo with the first commit and owned the front end for two years — around 925 commits on the job-seeker site and 399 on the employer site, and the most frequent editor of `nuxt.config.js`.
  • Built the Express layer that sits between the browser and the core API: the browser only ever calls same-origin `/50talent/_api/*`, and the server forwards the request, attaches the bearer token, hides the backend domain, and checks the referer to block off-site reuse.
  • Built the OIDC login flow and its server-side sessions in Redis.
  • Wrote most of the JSON-LD structured data for the server-rendered pages — 25 of the 45 commits in that module are mine — plus canonical and Open Graph tags on the pages I owned.
  • Kept search state in the URL query rather than the store, so a filtered result set is shareable and the back button behaves.
  • Mentored the junior front-end developers and reviewed their pull requests; one approval plus a green build was our merge bar.

My contributions

  • Front-end owner of both sites, end to end: architecture, routing, SSR, the Express BFF, and the login flow.
  • The stack choice was mine to propose and my manager's to approve. It was a greenfield product, not a migration — nothing was ported.
  • The sitemap was maintained by colleagues; I have a single commit on it. The structured data is the part that was mine.