G2 Projects ready to depart

James Dagenais

James Dagenais builds websites and automations in Berlin.

This portfolio is a metro network. Each line covers one topic. Scroll to ride and change trains where the lines cross.

Scroll to depart, or just wait

P1

Who I am

I'm a Canadian living in Berlin.

I like work that sits between people and systems. I write the process down, then automate the boring part of it. I've done that in a federal government office, on shop floors, and in my own projects.

I'm the person who notices where a process is out of sync and fixes it before anyone has to ask.

P1

Education

BA, Applied Linguistics and Discourse Studies
Minor in Computer Science
Carleton University, Ottawa. Graduated January 2023.

The linguistics side trained me to look closely at how people actually communicate. The computer science minor gave me the programming foundation I build on now.

P1

Languages

English. My first language.

German, B2. I'm working toward C1. I read German books and news and turn every unknown word into a flashcard. I'm comfortable speaking German at work and in interviews.

I also keep up with formal linguistics. One side project converted a German video script into interlinear glosses using the Leipzig rules.

G2

Projects Junction

Change here for line G2, Projects.

Five things I have built or am building: one delivered client site, one running automation, and three at earlier stages.

Keep scrolling, or board from the departure board above.

G2

Artist portfolio

Delivered 2026

A live portfolio site for a professional artist. Visitors filter the work by category and turn pieces around in a 3D viewer.

I handled requirements, build and deployment directly with the client, and used an agentic coding tool to move faster.

  • Three.js
  • Responsive layout
  • opencode
  • Client delivery
G2

Job pipeline

Running

A self-hosted workflow that collects job listings from the Bundesagentur für Arbeit, Adzuna, Arbeitnow and Indeed, puts them into one schema, and removes duplicates between runs.

A language model on my own machine then sorts relevant roles from noise.

I removed an early similarity-scoring stage when it proved unreliable, and fixed parse failures that had been dropping listings silently.

  • n8n
  • Ollama
  • Google Sheets
  • REST APIs
G2

Language app

In design

A mobile app for German and Mandarin. It tracks the words you know and finds reading where you understand 95 to 98 percent of them.

Tap a word to define it and it joins your review queue. A writing feature sends your text for feedback through a small stateless proxy.

Everything else stays on the phone, with word lists prepared offline.

  • React Native
  • Expo
  • SQLite
  • spaCy
  • jieba
G2

Résumé builder

Specced

A web app that stores situation, action, result statements in a database and lets you drag them into a résumé for each application.

The plan builds the database and API first, then the interface on top.

  • PostgreSQL
  • FastAPI
  • React
  • dnd-kit
G2

Tram line 27

Research

West Berlin closed tram line 27 from Buckow to Hermannplatz in the 1960s. This study asks whether bringing it back would be useful today.

It compares route variants with a scoring matrix and a rough benefit and cost sketch, modelled on the Senate's report for the M10 extension. One variant ends at Hermannstraße and another turns toward Tempelhofer Feld.

  • GIS
  • Urban planning
  • Analysis
O3

Experience Junction

Change here for line O3, Experience.

Where I have worked, newest first.

Keep scrolling, or board from the departure board above.

O3

Stop for Tea

Sales associate
Berlin, October 2024 to now

  • Rearranged the prep station so the most-used items sit within arm's reach.
  • Wrote up improvements to the iced tea menu, cash reconciliation and workspace layout.
  • Run the shop alone through rushes and deliveries when we're short-staffed.
O3

The Body Shop Berlin

Team lead
Berlin, December 2023 to May 2024

  • Led the shop floor team day to day.
  • Used product knowledge to match customers with what they needed.
O3

The Body Shop Ottawa

Team lead
Ottawa, October 2022 to June 2023

  • Helped run the in-store Refill programme.
  • Coached the team on the brand's sustainability initiatives.
  • Kept loyalty sign-ups on target at the till.
O3

Transport Canada

Intern
Government of Canada, Ottawa

  • Coordinated web development work between departments.
  • Wrote the standard operating procedures for my tasks and trained new hires on them.
  • Built an Excel macro in VBA that turned a manual task into one click.
O3

Bulk Barn

Cashier
Ottawa, June 2021 to January 2022

Served customers at the till and put together curbside pickup orders.

M4

Skills Junction

Change here for line M4, Skills.

What I can do for a team, in four stops.

Keep scrolling, or board from the departure board above.

M4

Web

I build responsive sites from brief to deployment and deal with the client directly.

  • HTML
  • CSS
  • JavaScript
  • Three.js
  • GSAP

See it in use at Artist portfolio on line G2.

M4

Automation

I connect services so repetitive work runs itself: fetching data from APIs, cleaning it, removing duplicates, and passing it to a language model for sorting.

  • n8n
  • REST APIs
  • Ollama
  • Google Sheets
  • Excel VBA

See it in use at Job pipeline on line G2.

M4

Operations

  • Writing procedures other people can follow
  • Training new team members
  • Leading a shop floor team
  • Coordinating between departments
  • Cash handling and reconciliation
M4

Tools

I work with agentic coding tools and know where they help and where they need checking.

  • opencode
  • n8n
  • Google Sheets
  • Excel
  • Anki
P1

Contact Junction

Change here for line P1, About.

Back on the line you started on, for the last two stops: what I am looking for and how to reach me.

Keep scrolling, or board from the departure board above.

P1

Looking for

I'm open to work in Berlin:

  • Operations and coordination roles
  • Customer success and systems support roles
  • Junior developer roles
  • Freelance website builds

English-speaking teams suit me best, and I work in German too.

P1

Contact

Get in touch.

  • Emailyour.name@example.com
  • GitHubgithub.com/your-handle
  • LinkedInlinkedin.com/in/your-handle

This train terminates here.