[{"data":1,"prerenderedAt":358},["ShallowReactive",2],{"profile":3,"projects":133,"devlog-2026-11-01-spraak-onderzoek-en-plan":175,"devlog-all":341,"devlog":354},{"id":4,"about":5,"aboutTitle":6,"availability":7,"availabilityShort":8,"contact":9,"dummy":12,"education":13,"email":25,"extension":26,"focus":27,"links":28,"meta":31,"name":32,"portrait":33,"qualities":34,"site":47,"skills":50,"stem":107,"study":108,"tagline":109,"taglineHighlights":110,"terminal":113,"work":116,"__hash__":132},"profile\u002Fprofile.yml","Ik ben Jesse, tweedejaars HBO-ICT-student aan de Hogeschool van Amsterdam met de specialisatie Software Engineering. Ik ben gemotiveerd, leergierig en ondernemend: naast mijn studie bouw ik aan een eigen SaaS-product voor vakmensen. Sportief ben ik ook: ik gaf een seizoen ski- en snowboardles in Oostenrijk. Ik werk het best in een team, waar ideeën scherper worden omdat je ze deelt.\n","Ik leer het snelst door te bouwen, liefst samen met anderen.","Stage vanaf februari 2027","feb 2027",{"title":10,"text":11},"Op zoek naar een stagiair met energie?","Ik zoek een stage vanaf februari 2027. Stuur gerust een bericht.",true,[14,19],{"period":15,"current":12,"title":16,"org":17,"text":18},"2024 – heden","Bachelor HBO-ICT · Software Engineering","Hogeschool van Amsterdam","Focus op backend en AI, scrum en werken in projectteams.",{"period":20,"current":21,"title":22,"org":23,"text":24},"2018 – 2023",false,"Havo","Bonhoeffer College, Castricum","Dubbelprofiel: Natuur & Techniek en Natuur & Gezondheid.","Wilffertjesse@gmail.com","yml","Full-stack · backend & AI",{"linkedin":29,"github":30},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fjesse-wilffert-1410b0448\u002F","https:\u002F\u002Fgithub.com\u002Fjessewilf1209",{},"Jesse Wilffert","Portrait.jpg",[35,38,41,44],{"title":36,"text":37},"Energiek","Ik breng tempo en zin in een project.",{"title":39,"text":40},"Samenwerken","Ik deel wat ik weet en vraag actief om feedback.",{"title":42,"text":43},"Loyaliteit","Ik maak af waar ik aan begin, ook als het lastig wordt.",{"title":45,"text":46},"Flexibel","Ik schakel snel tussen taken, rollen en tools.",{"version":48,"updated":49},"1.1.1","9 nov 2026",[51,67,82,95],{"group":52,"items":53},"Programmeertalen",[54,57,59,62,64],{"name":55,"note":56},"Java","2 jr",{"name":58,"note":56},"JavaScript",{"name":60,"note":61},"TypeScript","1 jr",{"name":63,"note":56},"SQL",{"name":65,"note":66},"HTML & CSS","3 jr",{"group":68,"items":69},"Frameworks",[70,73,76,79],{"name":71,"note":72},"Spring Boot","backend",{"name":74,"note":75},"Vue.js","frontend",{"name":77,"note":78},"Pinia","state",{"name":80,"note":81},"Tailwind CSS","styling",{"group":83,"items":84},"Tools",[85,87,89,91,93],{"name":86},"Git",{"name":88},"GitLab & GitHub",{"name":90},"Vercel",{"name":92},"Docker",{"name":94},"Claude Code",{"group":96,"items":97},"Talen",[98,101,104],{"name":99,"note":100},"Nederlands","moedertaal",{"name":102,"note":103},"Engels","vloeiend",{"name":105,"note":106},"Duits","basis","profile","HBO-ICT · Software Engineering, HvA","Software engineering-student die bouwt wat echt gebruikt wordt, van Java- en Python-backend tot AI-toepassing in Next.js.",[111,112],"Java- en Python-backend","AI-toepassing in Next.js",{"whoami":114,"stack":115},"jesse wilffert · student software engineering @ HvA","java  python  typescript  next.js  vue",[117,122,127],{"period":118,"current":12,"title":119,"org":120,"text":121},"2022 – heden","Keukenmedewerker","Cafetaria Family, Uitgeest","Snel en nauwkeurig werken onder tijdsdruk in een klein team.",{"period":123,"current":21,"title":124,"org":125,"text":126},"2022 – 2023","Ski- en snowboardleraar","Leverreizen, Oostenrijk","Les gegeven aan groepen van verschillende niveaus.",{"period":128,"current":21,"title":129,"org":130,"text":131},"2020 – 2022","Vakkenvuller","Albert Heijn","Eerste bijbaan: zelfstandig werken en verantwoordelijkheid nemen.","jw6i42pGEeH8DW__j6MrFUtKXp_mA51RIq34MFRkiGI",[134,150,162],{"slug":135,"title":136,"order":137,"year":138,"status":139,"statusLabel":140,"summary":141,"tags":142,"terminalStack":149},"offerte-agent","Offerte-Agent",1,"2026","wip","In ontwikkeling · eigen project","AI-chatwidget die hoveniers op hun eigen website plaatsen. De widget voert het intakegesprek met een potentiële klant, verzamelt alles voor een offerte (ook foto’s van de tuin) en geeft elke aanvraag een leadscore in een eigen dashboard.",[60,143,144,145,146,147,148],"Next.js","React","Supabase","PostgreSQL","Amazon Bedrock","Zod","nextjs · supabase · bedrock",{"slug":151,"title":152,"order":153,"year":138,"status":139,"statusLabel":154,"summary":155,"tags":156,"terminalStack":161},"ai-profile","AI Profile",2,"In ontwikkeling · schoolproject","Interactieve AI-booth die eruitziet als een vriendelijke chatbot, maar ongemerkt een profiel van de bezoeker opbouwt en dat aan het einde laat zien en uitprint. Voor de opdracht GenAI Exposed van het Lectoraat Responsible IT (HvA).",[157,158,60,144,80,159,160],"Python","FastAPI","Ollama","Claude API","python · fastapi · ollama",{"slug":163,"title":164,"order":165,"year":138,"status":166,"statusLabel":167,"summary":168,"tags":169,"terminalStack":174},"its-never-too-late","It’s Never Too Late",3,"done","Afgerond en live · eigen project","Volledig herbouwde website voor een spreker en ervaringsdeskundige, als eigen WordPress child theme. De site vertelt zijn verhaal, toont zijn diensten en referenties, en heeft een voorinschrijvingspagina voor zijn aankomende boek.",[170,171,58,172,173],"PHP","WordPress","CSS","HTML","wordpress · php · vanilla js",{"id":176,"title":177,"body":178,"date":331,"description":332,"dummy":21,"extension":333,"hash":334,"meta":335,"navigation":12,"path":336,"project":151,"seo":337,"stem":338,"type":339,"__hash__":340},"devlog\u002Fdevlog\u002F2026-11-01-spraak-onderzoek-en-plan.md","Spraak: onderzoek, een plan en meten in plaats van gokken",{"type":179,"value":180,"toc":327},"minimark",[181,185,192,195,211,214,217,220,231,234,239,251,316,324],[182,183,184],"p",{},"Ik had nog nooit met text-to-speech gewerkt. Ik ben begonnen met demo's en tutorials op YouTube, om te snappen wat zo'n model doet, wat je erin stopt en wat eruit komt. Daardoor snapte ik het veel sneller dan alleen uit documentatie. Maar toen ik ging bouwen, bleek de code uit die tutorials niet meer te werken. Piper is verhuisd naar een nieuwe repository en de functie die in de oudere tutorials staat, bestaat niet meer. Vanaf toen heb ik alleen de documentatie van de nieuwe versie gevolgd.",[182,186,187,191],{},[188,189,190],"strong",{},"Wat ik leerde:"," een tutorial is goed om het idee te snappen, maar voor de code kijk ik altijd in de actuele documentatie.",[182,193,194],{},"Voor de TTS heb ik een paar opties naast elkaar gezet. Mijn eisen waren dat het Nederlands kan, lokaal draait (wat bezoekers zeggen mag de booth niet uit) en snel genoeg is voor een live gesprek.",[196,197,198,202,205,208],"ul",{},[199,200,201],"li",{},"Kokoro viel af, want die heeft geen Nederlands.",[199,203,204],{},"Voxtral viel af, die heeft een zware videokaart nodig en de licentie past niet.",[199,206,207],{},"Azure klinkt goed, maar draait in de cloud. Dan gaat de tekst naar Microsoft.",[199,209,210],{},"Piper draait lokaal op de processor en heeft Nederlandse stemmen.",[182,212,213],{},"Ik koos Piper. Niet omdat het de mooiste stem heeft, maar omdat het nu werkt en past bij onze privacyregels. Voor spraakherkenning hadden we al faster-whisper gekozen.",[182,215,216],{},"Daarna heb ik een plan geschreven voor de spraak: 21 user stories in 7 epics. Ik heb het opgebouwd van binnen naar buiten. Eerst de losse onderdelen die je met een audiobestand kan testen, dan de echte microfoon en speaker, dan de koppeling met de rest van het systeem.",[182,218,219],{},"De belangrijkste ontwerpkeuze van deze week: elk onderdeel krijgt een interface en een \"fake\". Een fake doet alsof. Hij geeft bijvoorbeeld een vaste zin terug in plaats van echt te luisteren. Dat had drie voordelen:",[196,221,222,225,228],{},[199,223,224],{},"De frontend kon al met de backend praten voordat mijn spraakmodellen klaar waren.",[199,226,227],{},"De tests draaien zonder microfoon, speaker of zware modellen.",[199,229,230],{},"Willen we later een andere stem of een ander model, dan schrijf ik alleen een nieuwe implementatie. De rest blijft hetzelfde.",[182,232,233],{},"Halverwege de week stonden de interfaces, de fakes en de eerste spraakherkenning.",[235,236,238],"h2",{"id":237},"meten-in-plaats-van-gokken","Meten in plaats van gokken",[182,240,241,242,246,247,250],{},"In het weekend ben ik verder gegaan met de spraakherkenning. Whisper heeft verschillende modelgroottes. Ik twijfelde tussen ",[243,244,245],"code",{},"small"," en ",[243,248,249],{},"medium",", dus ik heb ze vergeleken op 10 vaste zinnen, op een laptop zonder videokaart.",[252,253,254,270],"table",{},[255,256,257],"thead",{},[258,259,260,264,267],"tr",{},[261,262,263],"th",{},"Model",[261,265,266],{},"Woorden goed herkend",[261,268,269],{},"Seconden per zin",[271,272,273,284,295,305],"tbody",{},[258,274,275,278,281],{},[276,277,245],"td",{},[276,279,280],{},"84,8%",[276,282,283],{},"4,3",[258,285,286,289,292],{},[276,287,288],{},"small (int8)",[276,290,291],{},"85,9%",[276,293,294],{},"3,6",[258,296,297,299,302],{},[276,298,249],{},[276,300,301],{},"87,5%",[276,303,304],{},"15,1",[258,306,307,310,313],{},[276,308,309],{},"medium (int8)",[276,311,312],{},"88,6%",[276,314,315],{},"10,1",[182,317,318,320,321,323],{},[243,319,249],{}," herkent een paar procent meer, maar 10 tot 15 seconden wachten per zin is veel te lang in een gesprek. Het werd dus ",[243,322,245],{},". De metingen staan in de README, zodat we ze opnieuw kunnen doen op de echte booth-machine.",[182,325,326],{},"Voor de stem heb ik een script gemaakt dat alle Nederlandse en Vlaamse Piper-stemmen dezelfde vier zinnen laat uitspreken: een begroeting, een normaal antwoord, een vraag en de onthulling van het profiel. Met het team hebben we ze gescoord op natuurlijkheid, verstaanbaarheid en vriendelijkheid. Het werd de stem \"alex\". Die heeft ook nog een vrije licentie (CC0).",{"title":328,"searchDepth":153,"depth":153,"links":329},"",[330],{"id":237,"depth":153,"text":238},"2026-11-01","Piper gekozen voor text-to-speech, omdat het lokaal draait en Nederlandse stemmen heeft. Een plan geschreven met 21 user stories, elk onderdeel een interface en een fake gegeven, en de Whisper-modellen small en medium tegen elkaar gemeten.","md",null,{},"\u002Fdevlog\u002F2026-11-01-spraak-onderzoek-en-plan",{"title":177,"description":332},"devlog\u002F2026-11-01-spraak-onderzoek-en-plan","feat","C4NKiewZt6MxfrVsmOSdvZrUpizDd3TG4-Ae3hOPeNA",[342,347,348],{"path":343,"date":344,"title":345,"description":346,"type":339,"project":151,"hash":334},"\u002Fdevlog\u002F2026-11-09-spraakketen-gesprek-printer","2026-11-09","Bouwen, koppelen en printen","De spraakketen werkt van microfoon tot speaker, een gescript gesprek bouwt op de achtergrond het profiel op en de bonnenprinter print het uit zonder dat er iets op schijf komt. Op 6 november gedemonstreerd aan de product owner en getest op Society 5.0.",{"path":336,"date":331,"title":177,"description":332,"type":339,"project":151,"hash":334},{"path":349,"date":350,"title":351,"description":352,"type":353,"project":151,"hash":334},"\u002Fdevlog\u002F2026-10-25-flow-en-guerrilla-test","2026-10-25","Eerst snappen wat we bouwen","Voordat ik code schreef, heb ik de flow van de booth uitgetekend en een guerrilla test gedaan met het Figma-ontwerp, waarbij ik zelf de AI speelde. De omslag werkte, en de test gaf input die ik twee weken later nog gebruikte.","docs",[355,356,357],{"path":343,"date":344,"title":345,"description":346,"type":339,"project":151,"hash":334},{"path":336,"date":331,"title":177,"description":332,"type":339,"project":151,"hash":334},{"path":349,"date":350,"title":351,"description":352,"type":353,"project":151,"hash":334},1794297410524]