Naar de inhoud
VeilingMaster

Full-stack engineer

U bouwt aan het systeem waarop een zaal met honderden mensen tegelijk zit te bieden. Realtime bieden, de studio waarmee de host de avond draait, en de betaalstroom erachteraan. Van databasekolom tot de knop op de telefoon van de gast.

Amsterdam, hybride

32 tot 40 uur

Vast contract

Medior of senior

Salaris in overleg

Wat u gaat doen

VeilingMaster draait vier veilingvormen op één avond: stille veiling, live veiling, loterij en donaties. Het meeste werk zit in de momenten waarop veel mensen tegelijk iets doen en er geld aan vastzit. Dit is werk dat nu op de rol staat, geen wensenlijst.

Realtime bieden dat ook op slecht zaalwifi klopt

Biedingen lopen via Supabase Realtime naar de telefoons van gasten en naar het grote scherm in de zaal. De uitdaging is niet de websocket, maar de randgevallen: twee gasten die binnen dezelfde 200 milliseconden hetzelfde bod doen, een telefoon die drie minuten offline was en met een verouderde stand terugkomt, en een host die tegelijk een zaalbod invoert. De regel die bepaalt wie wint, staat als constraint in Postgres, niet in de client. U werkt aan beide kanten.

De betaalstroom na de hamerslag

Zodra een kavel is afgehamerd, gaat er een betaallink naar de winnaar en loopt de betaling via Stripe en iDEAL. Daarna komen webhooks binnen die soms twee keer aankomen, soms in de verkeerde volgorde, en soms pas de volgende ochtend. U bouwt de verwerking die daar idempotent mee omgaat, plus de facturen en de afrekening richting het goede doel.

De studio waarin de host de avond draait

Eén scherm waarop de commissie kavels in de wachtrij zet, zaalbiedingen invoert, afhamert en ziet wat er op het grote scherm staat. Dit wordt gebruikt door vrijwilligers die het product die avond voor het eerst zien, terwijl er honderden mensen kijken. Ontwerp en foutafhandeling wegen hier zwaarder dan features.

Loterij, donaties en de saaie helft

De trekking met animatie op het grote scherm, de donatiethermometer, de gastenlijst met uitnodigingen per mail, en de rapportage die de penningmeester de week erna nodig heeft. Ook migraties, RLS-policies en het opruimen van code die we vorig seizoen te snel hebben geschreven.

Hoe een week eruitziet

Het grootste deel van uw tijd is bouwen. De rest is review, overleg en contact met gebruikers. In het najaar en in de weken rond het lustrumseizoen verschuift dat richting support.

Maandag

Kort teamoverleg over wat er die week af moet. Daarna een dag zonder afspraken.

Dinsdag

Kantoordag. Pairen aan het lastigste stuk van uw taak, en reviews van collega’s.

Woensdag

Geen overleg in de agenda. Meestal de dag waarop het grootste stuk af komt.

Donderdag

Kantoordag met een demo. U laat zien wat werkt, niet wat af is op papier.

Vrijdag

Opruimen, documenteren, laatste release vroeg in de middag als er die avond geen event draait.

Zaterdag

Soms dienst tijdens een echte veiling. Betaald en gecompenseerd met een vrije dag.

Wat we zoeken

We hechten meer aan wat u kunt leren dan aan wat u al kent. Wie de stack nog niet kent, leert die hier. Wat we niet kunnen bijbrengen, staat bij must-have.

Must-have

  • Twee jaar of meer werkervaring waarin uw zelfstandig features van begin tot eind hebt opgeleverd
  • Comfortabel in JavaScript of TypeScript en in een component-framework, welk dan ook
  • SQL dat verder gaat dan select star, want de meeste bugs bij ons zitten in de data, niet in de UI
  • U schrijft code voor de collega die het over een jaar leest, en u legt keuzes vast
  • Nederlands op gespreksniveau, omdat onze gebruikers en het product Nederlandstalig zijn

Nice-to-have

  • Next.js met de App Router, React Server Components
  • Postgres op niveau: row level security, indexen, transacties
  • Betaalintegraties, Stripe in het bijzonder
  • Realtime en websockets, of concurrency in het algemeen
  • Oog voor interface, of de wil om dat op te bouwen
  • Ervaring met events, horeca of vrijwilligersorganisaties

Herkent u zich in de helft van de must-haves en vindt u de rest interessant, solliciteer dan. We hebben liever een gesprek te veel dan een goede kandidaat die zichzelf wegstreept.

De techniek

Een kleine stack, bewust saai gehouden. We kiezen niets nieuws zonder dat er een probleem is dat het oplost.

Next.js met React

App Router, server components, server actions voor alle schrijfacties.

TypeScript, strict

Geen any zonder toelichting in de review.

Supabase

Postgres, auth, realtime. Row level security is de grens tussen klanten.

Stripe

iDEAL, betaallinks, uitbetalingen, facturen.

Eigen componenten op Radix

Toegankelijke primitieven, één ontwerpsysteem.

Vercel

Preview per pull request, productie in een paar minuten.

Zod

Validatie in de client voor de gebruiker, op de server voor de veiligheid.

Playwright en Vitest

End-to-end op de geldstroom, unit op de domeinregels.

Arbeidsvoorwaarden

Waar u start hangt af van ervaring, niet van onderhandelen. De bedragen zelf spreken we in het gesprek af.

SalarisSalaris in overleg
Vakantiegeld8 procent, in mei
Vakantiedagen27 bij 40 uur, tien bij te kopen
Werkweek32 tot 40 uur, in overleg
ThuiswerkenDinsdag en donderdag kantoor, rest vrij
ContractJaarcontract, bij goed lopen onbepaalde tijd
Dienst op eventavondenSoms, betaald plus een vrije dag

Het sollicitatieproces

Vier stappen, van eerste mail tot aanbod. Geen extra ronde als het al duidelijk is. We beloven hier geen reactietermijn: u hoort van ons, ook bij een nee.

01

Uw sollicitatie

Formulier met uw motivatie. Mensen uit het team waar uw zou werken lezen mee. U krijgt bericht, ook bij een nee.

02

Kennismaking

Videogesprek met de teamlead. Wat u zoekt, wat wij zoeken, hoe we werken. Aan het eind hoort u of we verder gaan.

03

Vakinhoudelijke ronde

Een casus uit ons echte werk, samen doorlopen. Geen huiswerk in het weekend en geen algoritmepuzzels. U krijgt de casus vooraf.

04

Team en aanbod

Een gesprek met collega’s uit andere teams. Daarna volgt het aanbod met salaris, startdatum en voorwaarden op papier, met bedenktijd.

Dit is niets voor jou als

Een klein team heeft echte nadelen. Liever nu eerlijk dan over een paar maanden teleurgesteld.

  • U wilt u op één laag concentreren.

    Bij ons schrijft u in dezelfde week een migratie, een server action en een stuk interface. Wie alleen backend of alleen frontend wil doen, heeft hier te weinig diepte en te veel breedte.

  • U hebt een uitgewerkt ticket nodig om te beginnen.

    Vaak is de opdracht een klacht van een commissie en een half idee. U maakt daar zelf een plan van en checkt dat kort.

  • U zoekt een duidelijk carrièrepad.

    We hebben geen niveaus, geen titels en geen jaarlijkse promotieronde. Groeien betekent hier meer verantwoordelijkheid, niet een nieuwe functienaam op uw kaartje.

  • U wilt nooit gestoord worden door gebruikers.

    Iedereen doet mee aan support en staat af en toe op een zaterdagavond in een zaal. Dat is niet optioneel.

  • U werkt het liefst volledig remote.

    Dinsdag en donderdag zijn kantoordagen in Amsterdam. Dat gaan we voor deze rol niet oprekken.

  • U houdt van veel proces.

    Er is geen QA-afdeling, geen releasetrein en geen architect die vooraf tekent. Als u iets stukmaakt, merkt u dat zelf en repareert u het zelf.

  • U hebt de zekerheid van een groot bedrijf nodig.

    We zijn een klein team met een seizoen dat in het najaar piekt. Dat voelt anders dan een concern met duizend collega’s.

Kort samengevat

TeamEngineering
LocatieAmsterdam, hybride
Uren32 tot 40 uur
ContractVast contract
SalarisSalaris in overleg
NiveauMedior of senior
Naar het formulier

Solliciteer op deze functie

Drie velden. Een cv is niet verplicht: wat u wilt bouwen zegt ons meer. Houd uw bericht kort, tweehonderd woorden is genoeg.

Wat wilt u doen, en waarom hier. Maximaal 200 woorden.

0 van 200 woorden. Kort mag ook.

Er is geen sollicitatiesysteem. Uw mailprogramma opent een bericht naar jobs@veilingmaster.nl. Niets wordt hier opgeslagen.