Skip to content
View JeremieDrazic's full-sized avatar
✝️
✝️

Organizations

@Atma-project

Block or report JeremieDrazic

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
JeremieDrazic/README.md

Jérémie Drazic

Software engineer in Montpellier, currently at Talkspirit. TypeScript across the stack — React and TanStack on the front, Fastify, Prisma and Postgres on the back, with a bias for explicit contracts between the two.

Decksmith

A Magic: The Gathering deck builder that generates print-ready proxy sheets. A pnpm/Turborepo monorepo with Zod contracts at every boundary, ADRs for the decisions worth recording, automated releases, and a Scryfall ingestion pipeline that syncs around 34,500 cards. Accounts, the card database and the design system work today — the deckbuilding itself is what I'm on now.

Three parts are public and need no account:

Design systemStorybook — components, tokens, accessibility checks
API referenceOpenAPI, rendered with Scalar
DocumentationArchitecture, ADRs, specs

Source · decksmith.jerem.io

How I work

Easier to show than to claim. Three pull requests, picked because the reasoning is written down:

  • #115 — killing an OOM crash-loop — the nightly sync had been dying for three days at a ~1.9 GB heap. Two instrumentation probes isolated the leak to per-row Prisma upserts rather than the streaming path. Replaced with one bulk INSERT … ON CONFLICT per table: 3m13s for 34,529 cards under a 512 MB cap, against ~15 minutes and an OOM before.
  • #92 — streaming a 2 GB JSON dump — an async generator, so backpressure comes for free: the parser only advances when the consumer pulls. Invalid rows are reported through a callback rather than thrown, so one malformed card cannot abort a 90k-row sync.
  • #111 — putting the worker in production — Docker, Redis with AOF persistence, and a fail-closed password guard. The persistence choice is argued in the description: a Redis-only restart would silently drop the cron schedule while the worker stayed connected.

Also

jerem.io — my landing page. React, Three.js particle background, static build.

Older work

  • fireflies — a PixiJS and GSAP particle swarm from 2021. Paused.
  • machupichu — a Pokémon team builder that never got past its Puppeteer sprite scraper. Paused.

Elsewhere

jerem.io · LinkedIn

Pinned Loading

  1. decksmithdecksmithPublic

    A personal MTG deckbuilding tool with a focus on structure and iteration.

    TypeScript

  2. jerem.iojerem.ioPublic

    Personal landing page

    TypeScript

  3. firefliesfirefliesPublic

    An interactive swarm of fireflies rendered with PixiJS and animated with GSAP. A 2021 WebGL experiment.

    TypeScript 1

  4. machupichumachupichuPublic

    An abandoned Pokemon team builder. The working part is a Puppeteer sprite scraper; the app itself never got past scaffolding.

    TypeScript