← Design
Subject in frame
The Self-Portrait · One subject · Six exposures

Turn the camera around.

The hardest subject to focus on is the one holding the camera. Six exposures of the person behind this site: developer on most days, photographer on the good ones.

Exposure 01 · The EXIF

Read the metadata.

Every frame carries its data. So does the photographer.
Sidecar · writing
1 of 1 subjects found
FILEJOEL_DEFFNER.RAW
DATE2026-07
SUBJECTDEVELOPER · PHOTOGRAPHER · STUDENT
BODYFUJIFILM X100V
LENS23MM F/2 · FIXED
POSITION49.7°N 6.6°E · TRIER, DE
ISO400 · PUSHED · FOUR EXAMS THIS JULY
WHITE BAL.WARM · SEE THIS PALETTE
FOCUS MODECONTINUOUS · TRACKING: WHATEVER SHIPS TO A HEADSET
SOFTWAREUNITY · VS CODE · LIGHTROOM
All values accurate · written by hand
Exposure 02 · The Roll

One roll, so far.

Developed frames from 2021 to now. The roll is still in the camera.
2021SCHWEICH

First exposures

Abitur at the Dietrich-Bonhoeffer-Gymnasium. English, math, physics, and a camera that started tagging along everywhere.

2021TRIER

Change of scene

B.Sc. Computer Science at Universität Trier, with a Japanese minor on the side. New city, same lens.

2023ELECTED

Into the frame

First seat in the Fachschaftsrat. StuPa and Fachbereichsrat followed. Turns out talking to people is half the job, everywhere.

2024TEACHING

Passing it on

Web dev tutor: PHP, CodeIgniter, one-on-one feedback, and one exercise session run entirely solo.

2026SHIPPED

The thesis frame

B.Sc. done. The thesis left as open source: ai-form-fill, AI-powered form filling in strict TypeScript, delivered as a framework-agnostic DOM library.

2026JULY

Side quest

The Paradox Modding Toolkit lands on the VS Code marketplace. A language server for grand strategy modding, 783 tests across 69 files.

NOWDEVELOPING

In the tank

Shipped a Quest 3 app that finds the cables inside a real wall and paints the drill plan back onto it. The master's project, speaking scenes into VR, is the next one out of the tank.

2028?UNEXPOSED

Frame 08 is empty

No light on this one yet. That's what the contact form is for.

Expose it →
Exposure 03 · Double Exposure

Two frames, one subject.

Drag the seam. Neither half works alone.
Night bus at Trafalgar Square, London. Shot on Fujifilm X100V.
LONDON · X100V · ISO 400
joel.ts · strict
1// joel.ts
3const joel = {
4base: "Trier, DE",
5stack: ["TypeScript", "Unity", "GSAP"],
6thesis: "ai-form-fill",
7now: "speech → VR scenes, Quest 3",
8ships: true,
9} satisfies Developer;
0 errors · 0 warnings · 1 person
⟨⟩
The developer
The photographer
Same eye · different outputDrag the ⟨⟩ handle
Exposure 04 · The Camera Bag

Everything in the bag.

The kit, dumped on the table. Drag things around.
Contents · 9 items · no zoom lens
Fujifilm X100VFrom the bag

One body, one fixed 23mm. When the frame is wrong, you move.

Drag · throw · tap an item to read its tag
Exposure 05 · Darkroom Rules

Rules that survived the move.

Learned under safelight. Still true in software.
RULE 01

Develop in the dark. Judge in the light.

Build in quiet, then show the print itself. No pitch survives a bad one.

RULE 02

One lens is enough.

A fixed 23mm taught that one. It holds for dependencies too.

RULE 03

Grain is honest.

A real thing shipped beats a perfect thing imagined.

RULE 04

Wait for the light.

The patient frame wins. So does the patient refactor.

Exposure 06 · The Stamps

Proof of passage.

Places, posts, and elected offices. Stamped on arrival.
Page 24 · EntriesJD · Holder
TRIER
49.7°N 6.6°E · RESIDENT
SCHWEICH
ORIGIN · ABITUR 2021
LONDON
NIGHT BUS · ISO 400
日本語
UNICERT BASIS · べんきょうちゅう
STUPA
ELECTED 2025
FSR
SINCE 2023
TUTOR
WISE 24 · PHP / CI
@JOEL.INTHESKIES
35MM ONLY
Further entries pending · next page intentionally blank
End of roll
Still developing.

That was the subject, in six exposures. The rest of the site is what he does with them.