Craig Curtis

Senior Software Engineer · 10+ years · Espoo, Finland

I build data-heavy web platforms end to end, from frontend interfaces to backend services and databases.

View CV (PDF, 2 pages) (opens in a new tab)
Channel

Work projects

09

Product · Scholastic

Literacy Pro (opens in a new tab)

Key frontend architect. Built the onboarding flow and its CSS animation work, accessible interfaces for young learners, in-browser ebook navigation and audio playback tools.

An independent-reading platform where students track progress and teachers manage levels and reporting.

  • Onboarding flow
  • CSS animation
  • Accessible interfaces
  • Ebook navigation
  • Audio playback

Product

NoteAffect (opens in a new tab)

Sole frontend architect for a period. Built the HTML canvas note-taking tool.

A classroom engagement platform for live lesson capture, note-taking, Q&A and captions.

  • HTML canvas
  • Note-taking tool

Product · Cisco

Cisco Networking Academy (opens in a new tab)

Frontend developer. Built learning modules fed by large markdown-driven data sets, in Gatsby.

Cisco's global learning platform for networking, cybersecurity, programming and AI courses.

  • Learning modules
  • Markdown-driven data
  • Gatsby

Product · Men&Mice

Micetro (opens in a new tab)

Frontend developer and UI architect. Built out feature work, split the shared component and utility libraries, and led theming.

A Gartner top-4 DDI platform used by Fortune 500 enterprises, universities and governments to manage networks spanning millions of IP addresses. Views render tens of thousands of DNS/DHCP records.

A browser-based DDI platform for managing DNS, DHCP and IP address space.

  • Feature work
  • Component libraries
  • Utility libraries
  • Theming

Product · Corivo (acquired by Travel Connect)

CTP (opens in a new tab)

Frontend developer and UI / utility architect. Built the company-wide component and utility libraries, drove the migration off legacy and deprecated code, upgraded the data layer to TanStack Query, and designed the Temporal-only date utilities.

Temporal-based date utilities that eliminated JavaScript timezone bugs, securing 100% data integrity for global bookings.

A travel-operations platform tour operators use to automate workflows and integrate external services.

  • Component libraries
  • Utility libraries
  • Legacy migration
  • TanStack Query
  • Temporal date utilities

Product

Iceland Tours (opens in a new tab)

Key Frontend architect. Built the cross-app theming and localization for the shared monorepo behind this and SenlinMao.

A Reykjavik-based site for self-drive, guided and multi-day Iceland vacation packages.

  • Cross-app theming
  • Localization
  • Shared monorepo

Product

森林猫 / SenlinMao (opens in a new tab)

Key Frontend architect and localizer. Built the cross-app theming and localization with Iceland Tours, led the Chinese translation and localization, and fixed the date/time handling.

EN/CN localization and cross-app theming that enabled expansion into North Atlantic and Asian markets.

A Chinese-market travel site for Iceland and Europe packages.

  • Theming
  • Localization
  • Chinese translation
  • Date/time handling

Product

Nordic Visitor Customer Portal (opens in a new tab)

Lead frontend developer. Built the shared utility libraries and UI component package across both portals, led theming, and created the PDF generation service.

The flagship customer-facing app, shipped from concept to production in 4 months.

A post-booking portal for vouchers, travel documents and itineraries.

  • Utility libraries
  • UI component package
  • Theming
  • PDF generation service

Product

Iceland Travel Customer Portal (opens in a new tab)

Lead frontend developer. Sister portal to Nordic Visitor, sharing the same utility libraries, UI component package and PDF generation service.

A post-booking portal where Iceland Travel customers review trip details and documents.

  • Utility libraries
  • UI component package
  • PDF generation service

Earlier work · Minted Sky Studios

Driverstest.info (opens in a new tab)

Founder and product owner. Built and monetized it: product, UX/UI, testing, content, development.

A gamified drivers test practice platform.

  • Product
  • UX/UI
  • Testing
  • Content
  • Development

Stack

11
  • TypeScript11 years
  • React10 years
  • Next.js4 years
  • Node.js / Express / NestJS4 years, NestJS current
  • PostgreSQL3 years
  • Vue / Nuxt2 years, Nuxt current
  • Angular2 years
  • MongoDB2 years
  • AWS2 years, DVA-C02 in progress
  • Python / FastAPI1+ years, FastAPI current
  • AccessibilityWCAG 2.2 AAA

Levels

TypeScript
11 years
React
10 years
Next.js
4 years
Node.js / Express / NestJS
4 years, NestJS current
PostgreSQL
3 years
Vue / Nuxt
2 years, Nuxt current
Angular
2 years
MongoDB
2 years
AWS
2 years, DVA-C02 in progress
Python / FastAPI
1+ years, FastAPI current
Accessibility
WCAG 2.2 AAA

Also current

Tailwind / Chakra / Shadcn / SCSS · SvelteKit / Astro / Octane (all current) · TanStack · Vitest / Playwright · Docker · GitHub Actions

Testing

100% unit-test coverage is the goal; lint, typecheck and tests gate every change in CI.

Open source

05

6 npm packages · @northguild

  • gmt
  • worktree
  • run-cv
  • CodeVault
  • Mission Control

Six published npm packages under @northguild, the GitHub collective I co-maintain with a former Travel Connect colleague.

  • gmt (opens in a new tab)

    “Give Me Temporal!”: a TypeScript library wrapping the Temporal API in strings-in, strict-types-out helpers to kill Date bugs. Ships with companion lint packages for oxlint, ESLint and Biome. Nx + pnpm monorepo, published as @northguild/gmt.

  • worktree (opens in a new tab)

    A CLI for the daily Git worktree flow: create, copy .env, open the editor, clean up. Includes an embedded “Chat with the Docs” AI assistant.

  • run-cv (opens in a new tab)

    A mainframe-inspired terminal CV viewer built with Node, React and Ink. Try with `npx run-cv craig`.

    npx run-cv craig

  • Mission Control (opens in a new tab)

    A flexible database POC paying homage to Star Trek: The Next Generation. Built with Python FastAPI and SvelteKit 3, served on Render, connected to SQLite and Postgres databases.

No cartridge

Insert a project to load its live site here.

Profile

I build AI-powered applications and tooling that makes teams faster, applications that hold up, and tools that remove the tedious parts of the job.

Chinese (DLPT5 3/3) · Finnish (B1) · Swedish (A1)

About

I build AI-powered applications and tooling that makes teams faster, applications that hold up, and tools that remove the tedious parts of the job.

I have full professional working proficiency in Chinese (DLPT5 3/3), Finnish at B1 and Swedish at A1. That global perspective translates into frontend work that spans cultures: internationalization, timezone-aware interfaces, and datetime handling that works across regions and calendar systems.

Availability

Espoo, Finland. U.S. citizen and Finnish permanent resident. Working remotely, and flexible on engagement: direct, contractor, or through an Employer of Record.

Background

  • Mandarin Linguist, U.S. Department of Defense (2006–2009). Held TS/SCI clearance. DLPT5 3/3.
  • University of Minnesota, Twin Cities · B.A. Chinese, Anthropology, East Asian Studies & History · Summa Cum Laude, Phi Beta Kappa · GPA 3.92
  • Nankai University / Yunnan Normal University · Advanced Chinese Certification

Certifications

  • University of Helsinki · Full Stack Open, 5 ECTS · Elements of AI · Introduction to Data Protection Law (in progress)
  • Microsoft · Career Essentials in Generative AI
  • AWS · Certified Developer Associate, DVA-C02 (in progress)

Community

  • Chairman (Puheenjohtaja), Suomen Paluumuuttajayhdistys ry (Finnish Remigration Association), 2025–present. Built and maintain the community's digital ecosystem; co-lead advocacy with Members of Parliament and national organizations.
  • Technical Instructor, Shanghai Jiao Tong University (2012–2016). Created the Intro to Web Development track and founded CoderDojoXL.
  • Mentoring, code review and coding standards on the product teams I've been part of.

Agents

AGENTS.md · skills · CI gates · 8 Anthropic certs

How I work with agents

My projects run on shared AI workflows I maintain: repo-level agent instructions, plus skills and subagents for research, test-driven development, code review and commit messages. Linting, formatting, type-checking and tests run as gates in CI and in the agent loop, and the same gates apply to my commits and to anything an agent produced. Nothing ships that I haven’t read.

The gates

agent-workflow.diff5 changes
  1. Removed: trust whatever the agent wrote
  2. Added: AGENTS.md# instructions every agent reads first
  3. Added: .agents/skills/# tdd · code-review · commit-message · research
  4. Added: pnpm lint && pnpm typecheck && pnpm test# same gate for my commits and the agent's
  5. Added: ci.yml# runs on every push and pull request

The toolkit

I’m building an open-source AI toolkit around this, designed to stay coding-standards agnostic: a project points at its own standards repo when it initializes, so teams keep their conventions and still share one workflow.

Certified

Eight Anthropic certifications, July 2026: AI Fluency: Framework & Foundations · Model Context Protocol · Agent Skills · Subagents · Claude Code 101 · Claude Code in Action · Claude Cowork · Claude 101

Quality

100
  • 100Perf
  • 100A11y
  • 100Best
  • 100SEO

Performance, accessibility, best practices and SEO, measured on this page.

Lighthouse scores

100
Performance
100
Accessibility
100
Best Practices
100
SEO
2/2Agentic BrowsingAI agents can read and use it
100SIFCPLCPTBTCLS
Performance

Metrics

First Contentful Paint
0.2 s
Largest Contentful Paint
0.2 s
Total Blocking Time
0 ms
Cumulative Layout Shift
0
Speed Index
0.2 s

I treat discoverability as part of the build, not an afterthought.

Accessibility

I target the highest level across every project to make sure the broadest possible audience can use and navigate everything I build.

  • Semantic HTML and ARIA roles used throughout
  • Full keyboard navigation with visible focus indicators
  • Color contrast meets or exceeds WCAG 2.2 AAA standards
  • Skip links and landmark regions for screen reader users
  • Reduced motion preferences respected by default

Contact

Frontend architecture, backend services, databases and payments. I work across the stack. Let’s talk.

Frontend architecture, backend services, databases and payments. I work across the stack. Let’s talk.

Espoo, Finland. U.S. citizen and Finnish permanent resident. Working remotely, and flexible on engagement: direct, contractor, or through an Employer of Record.