The solar system is loading. You can still use the page links.

Skip to content

I’m a software engineer who likes the awkward bit between “this is broken” and a change that genuinely works. Since 2016 I’ve worked in Tokyo and London, on web, mobile, games and field-service teams, from junior developer to principal engineer. Here’s every job so far, with a sketch of what each one looked like.

Every job so far

  1. – PresentContractRemote

    Centrica

    Principal Software Engineer

    UK energy company. I work on the tools its field engineers rely on every day.

    • Helping decide what to build and what to replace, which means leadership calls, vendor meetings and presenting the options to managers.
    • Hands-on lead of the engineering squad: I take the hardest problems myself, then turn the fix into a pattern the team can follow.
    • Tracked down why complaints about offline syncing kept coming back. There were several separate causes, not one, so we agreed a ranked list of fixes as a team.
    • Broke a large, fragile survey script into small tested pieces and rolled it out in phases, with a single switch to go back.
    • TypeScript
    • React
    • Dynamics 365
    • Power Platform
    • Azure
  2. – Permanent

    Ceros

    Senior Full-stack Engineer

    A platform for making interactive, designer-built web content without code.

    • Led the typography features in Flex, Ceros’s newer product, across frontend, backend and design.
    • Owned font management from the first requirements to deployment: storage, caching and the API in between.
    • Spent a lot of time in kick-off meetings turning business requirements into features, then followed the developers through the build.
    • Set up the testing approach with Vitest and Playwright, and sat on a few hiring panels.
    • Used Cursor and Claude Code in my day-to-day development, with the company’s blessing.
    • React 19
    • Next.js 15
    • NestJS
    • AWS S3
    • Redis
    • Vitest
    • Playwright
    ceros.com
  3. – Contract

    Centrica

    Tech Lead

    UK energy company. A short first stint; I came back in 2026.

    • Led a proof-of-concept mobile app that brought several services gas engineers use into one place, behind a single sign-on.
    • Built to work without signal: an offline sync service queues requests while the phone is offline and sends them once it’s back.
    • React Native
    • Azure
    • React Query
    • Zustand
  4. – Part-time contract

    Rewire

    Lead Developer

    A mobile app that helps people recover from a stroke through rehab exercises.

    • Designed the whole architecture and led the build of the cross-platform app.
    • Built the release pipeline, over-the-air updates included.
    • Sole technical owner of the live product: releases, fixes and support, with one other developer to direct. A niche app with a handful of users, and no big outages.
    • React Native (Expo)
    • Supabase
    • Postgres
    • GitHub Actions
    • Bun
  5. – Permanent

    Improbable

    Senior Full-stack Engineer

    London tech company. I worked on MML, an open-source way to build interactive 3D web content with HTML-like tags.

    • Helped drive MML’s development and its public open-source release, and built its end-to-end test setup.
    • Built mml.io, the project’s official site.
    • Led the UI architecture and design of a hosting platform. There was no designer, so I built it on shadcn/ui and wrote the full platform docs.
    • A small team with a lot of ownership: for a while, most UI decisions were mine.
    • React
    • Next.js
    • Node
    • TypeScript
    • Three.js
    • Firestore
    • Tailwind
    • Cypress
    mml.io
  6. – Contract

    Earlyworks

    Senior Full-stack Engineer

    Japanese company. I built its platform for creating, showing and selling NFTs.

    • Built the platform in Next.js.
    • Added English and Japanese language support.
    • Worked closely with the designers on the animated parts of the interface.
    • Next.js
    • Framer Motion
    • i18n
    e-arly.works
  7. – Contract

    EMKI Sim Project

    Lead Developer

    A real-time simulation for the EMK Institute's Senate Immersion Module, an education programme.

    • Built a real-time, multi-user app for web and mobile.
    • Shaped the features and picked the technology together with the stakeholders.
    • Mentored and directed one other developer.
    • Node
    • Express
    • Socket.io
    • React Native
    emkinstitute.org
  8. – Contract

    Playco

    Senior Game Engineer

    A studio making casual multiplayer games that run inside other apps, like Facebook and Zoom.

    • Worked on live games, including Thug Life, Spell Pals and Street Royale, in a fully typed TypeScript codebase.
    • Built and shipped major features for hundreds of thousands of players.
    • Planned new tests and features with product every week.
    • Worked with Meta and Zoom to get our games onto their platforms.
    • TypeScript
    play.co
  9. – London

    Tempo

    Senior Full Stack Developer

    London product company.

    • Shaped project pitches with stakeholders and designers, using Shape Up.
    • Built the billing section, connected to Xero.
    • Set up the testing strategy and its docs, plus code-style and deployment rules.
    • Mentored junior and mid-level developers, gave talks on React Hooks, testing and TypeScript, and sat on a few interviews.
    • React
    • TypeScript
    • Jest
    • Testing Library
    • Xero API
    heytempo.com
  10. – London

    Vodafone

    Front End Developer

    The telecoms company. I worked on the customer personal area and the components behind it.

    • Built reusable components with the core components team, for use across the company.
    • Launched the new version of the personal area.
    • Built a fast, accessible tab component that teams across the company used.
    • Helped refactor the app for single sign-on.
    • React
    • TypeScript
    • Styled Components
    • MobX
  11. – Tokyo

    HENNGE

    Front End Developer

    Japanese security software company. Its Email DLP checks outgoing email so sensitive files aren't sent by mistake.

    • Rewrote Email DLP’s front end from AngularJS to Vue.js and Vuex, and shipped it to customers.
    • Worked on performance across the app, with async imports and router hooks.
    • Built features for both the user and admin dashboards.
    • Set up the front-end testing strategy and wrote a lot of Jest unit tests.
    • Vue.js
    • Vuex
    • AngularJS
    • Jest
    hennge.com
  12. – ContractTokyo

    Recruit Technologies

    Front End Developer

    AirShift, Recruit's shift-scheduling and timecard app for shop and restaurant staff. I was placed there through Bit A KK.

    • Worked on the AirShift web app, including a full timecard feature for tracking attendance.
    • Built and styled components for a trial release, and moved them from PropTypes to Flow.
    • Documented more than 30 UI components in Storybook and the internal wiki.
    • Joined weekly design sessions and mentored teammates on CSS and React.
    • React
    • Redux
    • Sass
    • Flow
    • Node.js
    • Storybook
  13. – Tokyo

    Celsys

    Junior Application Developer

    The maker of Clip Studio Paint, the illustration and manga software. My first developer job.

    • Built tools that merged the Japanese and international versions of Clip Studio Paint into one multi-language release.
    • Helped with Japanese–English translation.
    • C++
    • Python
    • MySQL
    clipstudio.net
  14. Until

    Before code

    From Naples to Tokyo, the long way round

    Not a straight line, and not planned.

    • Went to a technical high school in Italy with a computer science track. A couple of years later I did a semester of CS at university, and quit.
    • Studied Asian studies at L’Orientale in Naples instead, with an exchange year in Tokyo.
    • In Japan, after a few random jobs, I ended up as a recruiter for a tech company. Some of the developers I talked to had no degree.
    • I hadn’t known that was possible. So I taught myself, and in 2016 got my first developer job.
    • Italian
    • English
    • Japanese