João Filipi
Voltar para trabalhos

Software Engineer · 2026

Independent Journal Review

Full-stack work on a TypeScript GraphQL platform for a digital news product: role-based access control, the publishing experience, and a migration off legacy WordPress.

TypeScriptGraphQLNext.jsPostgreSQLReact

Context

Independent Journal Review (IJR) is a digital news and publishing product. I work here as a full-stack engineer on the new platform: a TypeScript GraphQL backend (Apollo Server, TypeORM, PostgreSQL), a shared React component library, and a Next.js App Router app, all in a pnpm monorepo.

Access control

I designed and shipped a role-based access control system from scratch: two tiers of roles (system-wide and per-journal), a permission catalog, memberships with a full audit trail, and the admin assignment UI. Everything ships behind feature flags, with enforcement on the server rather than just the client.

Publishing experience

I built core parts of Writer Studio and the journal pages: article authoring, drafts and publishing, membership-aware access, and journal team management.

Legacy migration

I moved content syndication and author data off a legacy WordPress system into the new platform, preserving attribution and history.

End-to-end features

Features delivered across the stack:

  • Image uploads with Cloudflare R2
  • Search indexing with Meilisearch
  • Payments with Stripe Checkout
  • Authentication with Clerk
  • Comment spam detection

Reliability

I strengthened delivery and reliability with schema-driven type safety (GraphQL Codegen), automated tests (Vitest, Playwright), CI/CD, and observability (Datadog). I also lean on AI tooling in the daily workflow to move faster without giving up code quality.

Tech

TypeScript, GraphQL (Apollo Server, TypeGraphQL), TypeORM, PostgreSQL, React, Next.js, Apollo Client, Docker, Redis, a pnpm monorepo, Vercel, Railway, and Cloudflare.