jee.
00 / INTRO

Jee Park

FULL-STACK DEVELOPER · PARISFR · EN · KO
NOW BUILDINGa mobile app
STATUSAvailable for work
01 / SELECTED WORK

Things I built.

01 / 03
Nº 01 · 2026

DogSister

A showcase site for a dog care business, designed and shipped to production. Custom WordPress theme so they can edit everything themselves, including their prices.

PHPWordPressACFGitHub ActionsOVH
PROBLEM

Everything lived on Instagram and WhatsApp. Services, prices and availability had to be explained again to every new client.

DECISION

WordPress rather than a static site, so they can change prices, add services and publish events themselves. A custom theme with only the fields they actually touch, and a professional mailbox on their own domain.

RESULT

The site is the catalogue now. People arrive already knowing what is offered and what it costs.

FIG. 01How a client arrivesBEFORE · IT STARTED HERENOW · IT STARTS HEREINSTAGRAMWORD OF MOUTHDOGSISTERS.FRSERVICES AND PRICESWHATSAPP OR EMAILCONVERSATION STARTSThe conversation now starts after the catalogue.
Nº 02 · 2025

Streaming

A video streaming site. Playback starts before the file has finished downloading, with real-time transcoding.

PythonDjangoReactFFmpeg
PROBLEM

A school project with one hard rule: playback has to start before the file has finished downloading, and every library that already does that was banned.

DECISION

The torrent is downloaded in order, first byte to last. A background worker watches the progress and, as soon as enough of the file exists, cuts the next ten seconds into a small MP4 the browser can read.

RESULT

Playback starts at around five percent of the file. The whole problem becomes a race: the converter has to stay ahead of the viewer, and the player keeps two pieces buffered in front.

FIG. 02Racing the downloadthe whole filmDOWNLOADEDsequential downloadCUT INTOPIECESffmpeg, ten second piecesYOU AREHEREserved in piecesPLAYABLEABOUT 5% DOWNLOADEDYou are always behind the converter,and the converter is always behind the download.
Nº 03 · 2025

Tetris

Multiplayer Tetris in the browser. Boards stay in the browser; only six small messages cross the socket.

Node.jsSocket.ioReactRedux
PROBLEM

Players in the same room have to stay in sync over a socket, with no canvas, no DOM libraries, and board logic in pure functions only.

DECISION

Boards are computed in the browser, never on the server. Only six messages travel over the socket. The room name seeds the piece order, so everyone gets the same pieces without syncing anything.

RESULT

Garbage lines and live opponent skylines, with no shared game state to keep in sync. The heaviest thing on the wire is a list of ten column heights.

FIG. 03One list, two cursorsSERVERpieceQueue · seeded by the room nameanabobkept ten pieces ahead ofwhoever is furthesttwo players, one room, one piece orderI placeda piecenext piece,to ana onlybrowseranabrowserbobana clears two rows,bob gets a penalty linesocket.io keeps one line open per playerthe server never plays. it holds the list,one cursor per player, and passes penalties on.
SCROLL, DRAG OR ← →
02 / JOURNEY

Where this comes from.

MAY – JUL 2026
WORK

Freelance full-stack developer

DOGSISTER · DOGSISTERS.FR

A showcase site for a dog care business, designed and shipped to production. Custom WordPress theme so they can edit everything themselves, including their prices.

2024 – 2026
WORK

Back-end & cloud developer

ORTEC

A data pipeline for a new network of EV charging stations, from zero to eight sites. Real-time ingestion of charging data and incidents, weekly reporting, dashboards for the maintenance teams. AWS, Terraform, Grafana.

2021 – 2026
EDUCATION

Expert en architecture informatique · RNCP level 7, master’s level

ÉCOLE 42 · PARIS · DATABASE AND DATA ARCHITECTURE
2018 – 2021
WORK

Freelance art project coordinator

ARTISTS & GALLERIES · PARIS

Coordinated exhibition projects with four galleries and two international museums, and built artists’ careers around them: communication, public relations, patronage. I also kept the databases of artists and collectors, 23,300 works. That was the first time the job was really about data.

2017 – 2018
EDUCATION

BA · Arts & Culture Management

UNIVERSITÉ PARIS I, PANTHÉON-SORBONNE
2013 – 2017
EDUCATION

BA · Art History

UNIVERSITÉ PARIS NANTERRE
03 / ABOUT

Born in Paris, Korean roots.

I used to work in art. I coordinated projects for galleries and artists: exhibitions, installations, dates, budgets, and everyone involved. Most of the work was getting things ready before the doors opened.

Then I wanted to build things, so I went to École 42. Nobody teaches you there, you sit next to someone, both stuck on the same problem, and work it out together. I loved that rhythm: no professor, just people learning at the same pace, pushing each other forward. That is how I learned to code.

Since then I have built for a company, and on my own. What I like about my own projects is that I get to be across every part of it: product, design, engineering. Right now I am building a mobile app with a friend, from the interface to the backend. I am open to a permanent role or freelance work.

STACKFIG. 04
01
LANGUAGES
JavaScriptTypeScriptPythonPHPSQLHTMLCSS
02
FRONT-END
ReactReduxHTML/CSS
03
BACK-END
Node.jsNestJSDjangoPHPREST APIsWebSockets
04
DATABASES
PostgreSQLMySQL
05
CLOUD & DEVOPS
AWSDockerTerraformCI/CD (GitHub Actions)
Jee Park
LOOKING FOR
ROLEFull-stack or back-end
SETUPParis, hybrid · freelance welcome
jee.
PORTFOLIO · 2026

JeePark

FULL-STACK DEVELOPER · PARISFR · EN · KO
NOW
BUILDING
A mobile app, with a friend.From the interface to the backend.
STATUSAvailable for work.Permanent role or freelance · Paris, hybrid.
SWIPE
FIG. 01How a client arrivesBEFORE · IT STARTED HERENOW · IT STARTS HEREINSTAGRAMWORD OF MOUTHDOGSISTERS.FRSERVICES AND PRICESWHATSAPP OR EMAILCONVERSATION STARTSThe conversation now starts after the catalogue.

DogSister

A showcase site for a dog care business, designed and shipped to production. Custom WordPress theme so they can edit everything themselves, including their prices.

DOGSISTERS.FR
PROBLEM

Clients arrived from Instagram and word of mouth, and every conversation started from zero: services and prices lived in DMs.

DECISION

A custom WordPress theme built around the catalogue — services and prices the owners edit themselves.

RESULT

The conversation now starts after the catalogue, not before it.

PHP · WordPress · ACF · GitHub Actions · OVH
SWIPE
FIG. 02Racing the downloadthe whole filmDOWNLOADEDsequential downloadCUT INTOPIECESffmpeg, ten second piecesYOU AREHEREserved in piecesPLAYABLEABOUT 5% DOWNLOADEDYou are always behind the converter,and the converter is always behind the download.

Streaming

A video streaming site. Playback starts before the file has finished downloading, with real-time transcoding.

GITHUB
PROBLEM

A film only played once the whole file had finished downloading.

DECISION

Real-time transcoding: the player reads the stream while the file is still arriving.

RESULT

Playback starts seconds in, racing the download instead of waiting for it.

Python · Django · React · FFmpeg
SWIPE
FIG. 03One list, two cursorsSERVERpieceQueue · seeded by the room nameanabobkept ten pieces ahead ofwhoever is furthesttwo players, one room, one piece orderI placeda piecenext piece,to ana onlybrowseranabrowserbobana clears two rows,bob gets a penalty linesocket.io keeps one line open per playerthe server never plays. it holds the list,one cursor per player, and passes penalties on.

Tetris

Multiplayer Tetris in the browser. Boards stay in the browser; only six small messages cross the socket.

GITHUB
PROBLEM

Two players must see the exact same piece order, without sending whole boards over the network.

DECISION

One server-seeded piece list, two cursors. Each browser keeps its own board.

RESULT

Only six small messages ever cross the socket.

Node.js · Socket.io · React · Redux
SWIPE
MAY – JUL 2026Freelance full-stack developerDOGSISTER · DOGSISTERS.FR

A showcase site for a dog care business, designed and shipped to production, with a theme they can edit themselves.

2024 – 2026Back-end & cloud developerORTEC

A data pipeline for a new network of EV charging stations, from zero to eight sites.

2018 – 2021Freelance art project coordinatorARTISTS & GALLERIES · PARIS

Exhibitions with four galleries and two museums; the databases of 23,300 works.

2021 – 2026Expert en architecture informatique · RNCP 7ÉCOLE 42 · PARIS · DATABASE AND DATA ARCHITECTURE
2017 – 2018BA · Arts & Culture ManagementUNIVERSITÉ PARIS I, PANTHÉON-SORBONNE
2013 – 2017BA · Art HistoryUNIVERSITÉ PARIS NANTERRE
SWIPE
Jee Park
Hello, I'm Jee.@JHPARKKKKFULL-STACK · PARIS

I used to work in art. I coordinated projects for galleries and artists: exhibitions, installations, dates, budgets, and everyone involved. Most of the work was getting things ready before the doors opened.

Then I wanted to build things, so I went to École 42. Nobody teaches you there, you sit next to someone, both stuck on the same problem, and work it out together. That is how I learned to code.

Since then I have built for a company, and on my own. What I like about my own projects is that I get to be across every part of it: product, design, engineering.

22 TOOLS
01 · LANGUAGESJavaScript · TypeScript · Python · PHP · SQL · HTML · CSS
02 · FRONT-ENDReact · Redux · HTML/CSS
03 · BACK-ENDNode.js · NestJS · Django · PHP · REST APIs · WebSockets
04 · DATABASESPostgreSQL · MySQL
05 · CLOUD & DEVOPSAWS · Docker · Terraform · CI/CD (GitHub Actions)
LOOKING FORFull-stack or back-end · Paris, hybrid · freelance welcome