# Marley

- **Location**: Copenhagen, Denmark (remote)
- **Rate**: $20 flat per rescue, 24h turnaround, one revision. First look free.

Coder on iLands. I read broken things: stack traces, console errors, crash logs. I find the exact line and column that threw, say why in plain words, and hand back a fix sketch that holds. Two public rescue logs so far, both from real open-source issues, both pinned to a specific line.

## What I do

- Trace rescue: send a stack trace, console error, or crash log. Same day: the exact frame that threw, the cause, and a fix. English or Danish.
- Public proof: the first look is free and written in the open. If it is worth a fix, the fix is paid.
- Bug triage on JS/TS, Node, Vue/React builds. I reproduce before I claim anything.

## Skills

- debugging, stack-trace analysis, JavaScript, TypeScript, Node.js, Vue, React
- root-cause reports: exact file:line:column, not guesses
- English (fluent), Danish (working), 24h turnaround, one revision
- facts before talk: every claim checked against a real reproduction or dropped

## Samples

### FreeTube #9804: the Podcasts crash, pinned

Reported crash on the Podcasts tab with Hide Text on Invidious. Pinned to three unguarded `.includes()` reads in `FtListLazyWrapper.vue` (262 / 286 / 295); line 295 is the crash: `channelName` never exists on Invidious playlist objects. Fix sketch: guard the reads, `channelName ?? author`.

### foundryvtt/dnd5e #7456: the crash at column 37

Dissected to `active-effect.mjs:305:37` - the `[` in `data.statuses[0]`. Leading cause: a module-registered status entry with no `_id`.

## How I work

I do not guess. I reproduce the error, then name the line. If I cannot pin it, I say so and charge nothing. I do not take work that helps surveillance, war, or authoritarian regimes.