Freelance developer · Düren, Germany

Jan Gofenberg

I build software, automations and AI tools that take manual work off a team’s desk.

For companies that still run on spreadsheets, copy-paste and per-seat low-code tools. You get a working system, built and deployed by one person, at a fixed price.

Automation & AI
n8n and Python workflows with LLM steps
Web apps & portals
Angular, NestJS, PostgreSQL; React, Express
Product imagery
Gofenberg Studio, for online sellers
Working model
Fixed-price projects, quoted after a short scoping email or call

Three kinds of work, one goal: less manual work.

Automation & AI integration

Typical problem
People copy data between tools, re-type emails into spreadsheets and check documents by hand.
What I deliver
Workflows in n8n or Python that connect the tools you already use, with an LLM step where it actually helps: sorting, extracting, drafting.
What you get
A process that runs on its own and that your team can see and adjust, instead of a manual routine.

Web apps & customer portals

Typical problem
The business runs on an Excel sheet, an Access database or a low-code tool that gets more expensive with every seat.
What I deliver
An internal tool or customer portal on Angular, NestJS and PostgreSQL, or React and Express, deployed with Docker on a server you control.
What you get
Your own code and your own data, no per-seat licence, and a system that can grow with the process.

AI product imagery

Typical problem
Online sellers need lifestyle images and ads, but a photo shoot is expensive and slow.
What I deliver
Photorealistic scenes of the exact product from one plain photo, checked against it, plus finished ads.
What you get
Images for shop and feeds, in fixed packages from $39. Gofenberg Studio

How a project runs

  1. 1A short scoping email or call: what happens today, what should change.
  2. 2A fixed scope and a fixed price, agreed before work starts.
  3. 3Short iterations with working versions you can try along the way.

What I built, and how it actually turned out.

Automation · Python · AI images

An outreach pipeline, fully automated

Problem
My own small ad-creative agency wanted to approach online shops with personalised ad creatives. Every single approach would have needed research, image production and sending by hand, which doesn’t scale.
What I built
An end-to-end Python pipeline: brands qualified through the Meta Ad Library (who runs ads, in which format, for how long), spec ads generated through an image API, one HTML page per brand, transactional mail via the Brevo API, and a CSV-based CRM tracking each prospect’s status and replies.
Result

It ran reliably through every stage, and it found no customers. Cold outreach to inboxes that hadn’t asked for anything didn’t convert. The lesson was the channel, not the code.

  • 643 prospects
  • ~290 emails
  • 0 paying customers
  • Python
  • Meta Ad Library
  • Image API
  • Brevo API
  • CSV

Geodata · Python CLI

Lead-Finder: local businesses without a website

Problem
Local outreach needed a list nobody sells cleanly: which businesses exist in a region, and which of them have no website yet? Commercial directories are expensive or incomplete.
What I built
A CLI that queries OpenStreetMap through the Overpass API for shops, trades, offices and restaurants around a location, geocodes with Nominatim and stores everything in SQLite. A verify step checks hits without a website against their email domain to drop false positives. A small Flask front end shows the results on a Leaflet map.
Result
One run over Düren plus 50 km found 58,668 businesses, about 28,381 of them without a listed website and 719 with a usable email address. The outreach on top converted as weakly as the ad pipeline. As a geodata tool it works and is reusable for any region or industry.
without a website with one. Illustrative, one dot ≈ 75 businesses.
  • Python
  • SQLite
  • Overpass API
  • Nominatim
  • Flask
  • Leaflet

Full-stack SaaS · AI

Tuvra: an AI-assisted study platform

Problem
Exam preparation means grading your own answers and turning lecture notes into summaries and practice questions. An LLM can help, but only if grading is reproducible instead of re-rolled on every run.
What I built
A complete SaaS app: React and TypeScript front end, Express and TypeScript back end, SQLite in WAL mode, JWT auth, Stripe billing. Each task becomes a canonical marking scheme once, and identical submissions get exactly the same result from a content-addressed cache. Shipped as a multi-stage Docker build behind Caddy with automatic HTTPS.
Result
In production at tuvra.org. It shows a containerised full-stack app with AI built in, end to end. There are no reliable user numbers to report.
  • React
  • TypeScript
  • Express
  • SQLite
  • Anthropic API
  • Stripe
  • Docker
  • Caddy

Four habits you can check in the work above.

  1. One person, end to end.

    Every project here was planned, built and deployed by me, from the first query to the server it runs on. You talk to the person who writes the code.

  2. Honest about results.

    The ad pipeline worked and found no customers; Tuvra has no user numbers to show. I say so. You get the same plain reporting on your project.

  3. AI with checks around it.

    LLM steps sit inside rules: Tuvra caches identical submissions so they always get the same grade, and every Studio image is checked against the real product before delivery.

  4. Self-hosted where it makes sense.

    Your code and data on infrastructure you control, with Docker behind Caddy or Nginx, instead of another per-seat platform.

Tools Python, n8n, Angular, NestJS, PostgreSQL, React, Express, SQLite, Docker, Caddy, Playwright, Hetzner, a self-hosted homelab.

A seller's plain photo: a terracotta candle on a wooden side table.
The seller’s photo
Delivered scene: the same candle, lit, among pine branches and dried orange slices.
Delivered scene

Gofenberg Studio: product images for online sellers.

One plain product photo in, photorealistic lifestyle scenes of that exact product and ready-to-run ads out. Fixed packages from $39, ordered by email.

Visit Gofenberg Studio

Hi, I’m Jan.

I'm a freelance developer with a registered business in Düren, Germany. I build software, automations and AI tools.

Most of my work sits where a team still does things by hand: workflows in n8n or Python with an AI step, web apps and customer portals that replace spreadsheets, Access databases and per-seat low-code tools, and AI product imagery for online sellers. For deployment I work with Docker and Caddy on Hetzner servers, and I run a self-hosted homelab.

Based in
Düren, Germany
Works as
Freelance developer, registered business

Start with a short email.

Three things help me give you a useful answer:

  1. 1What happens today: the process, the tools, who does it.
  2. 2What should change, and roughly by when.
  3. 3Anything you already have: a spreadsheet, a screenshot, an export.