PageSourceSearch

https://cdn.v1v2.io/_next/static/chunks/pages/resume-a38156bfdeb0c67c.js

js v1v2.io collected 2026-09-25 21:06:33 UTC 24,645 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2937],{95518:(e,i,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/resume",function(){return t(60633)}])},6963:(e,i,t)=>{"use strict";t.d(i,{A:()=>r});var n=t(74848),A=t(96540),s=t(56972);let r=e=>{let{email:i,fakeEmail:t,...r}=e,[a,l]=(0,A.useState)(!1);return(0,A.useEffect)(()=>{l(!0)},[]),(0,n.jsx)(s.N_,{href:"mailto:".concat(a?i:"[email protected]"),...r,children:a?i:t})}},60633:(e,i,t)=>{"use strict";t.r(i),t.d(i,{default:()=>B});var n=t(74848),A=t(62539),s=t(11692),r=t(27059),a=t(77083),l=t(21055),o=t(85044),c=t(6963);let d={src:"https://cdn.v1v2.io/_next/static/media/alcopa.c3b4be0c.png",height:192,width:192,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAJ1BMVEUAbccAdcpRodvh7/kPfM1BmNibyevI3/N8uOQ3k9aNwujQ5vVnrd8tRmEWAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADNJREFUeJwtxkkSwCAMwDCbhJ3/v7dTWp2EkomiY++hMCMzJlDinCg3a33p0N/Upq2CvwcfSgDJM9txQgAAAABJRU5ErkJggg==",blurWidth:8,blurHeight:8},h={src:"https://cdn.v1v2.io/_next/static/media/book.bc61d1f1.png",height:240,width:240,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAbFBMVEX/egHoijvLwLzwagjLt6zoYgggPlX/cwHJAFHqSAD+lCcfPFROR0LtbwQYPFX/aADtZQD/nkLSkIXvtIb/AADqiEDds5rvtIWuk3vqsYAsOUwhPFVmZ2b8eAFgTz7hll90VDbkj0zx0LSLaUWsPQyjAAAAHXRSTlP+/v6j9Tw+/QEg/mO5+BX7WP4Xtg2H7bLIvihUrOEQ92YAAAAJcEhZcwAACxMAAAsTAQCanBgAAABGSURBVHicJcZXEoAgDAXAR4kJoGLvBfX+d3Qc92uxbNPcjr0gPN7X99AhJOZ4Woc1AfwlO3bwpemP0oQyLwBlCSKuMqaRF5SUA2po0IpsAAAAAElFTkSuQmCC",blurWidth:8,blurHeight:8},p={src:"https://cdn.v1v2.io/_next/static/media/france.51691ed0.png",height:240,width:240,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAVFBMVEW0yMjt6+/d3eTHNUZtXKRcddDc5esZNKL7QFPhaHb0PU/5M0ryQFLeWmry8PInScRoftHcWmgVLJBthdodPrN3h8zS2OD6L0MkSMvo7/b7+fvsZHPbJnEPAAAAF3RSTlMB/ZwyGP393vf+dFnTZdg0+fuD/l5r3CxJh2MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAA4SURBVHicY2DhZ2EAA3YJAT4mXm4uBnYJVilJaXEOEIORjROVISwlCWIIiYgyiQmK80C0MjOzAABjuALOKFHGZwAAAABJRU5ErkJggg==",blurWidth:8,blurHeight:8},m={src:"https://cdn.v1v2.io/_next/static/media/gimny.e2012ea6.png",height:200,width:200,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAQlBMVEX///Qhiv9ttP8Pf/////9Yq//9+/lMaXH///l6vf////kBcv////tBmv////nQ6v7Y7v/8/v/E5P/l8/+13f+n0f9IDt3dAAAAD3RSTlNB+/7+AfyBAIf+kfyJ+4rTqbJ0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAPklEQVR4nAXBiQGAIAwEwQUCl+DDo/bfqjOY6B0Z8l3r2wT7qDk9cOe0vhgnHmnlIxxGuWoZoDYjZhMm3JH9R0MB8+FwSf4AAAAASUVORK5CYII=",blurWidth:8,blurHeight:8},g={src:"https://cdn.v1v2.io/_next/static/media/html5.a980ab51.png",height:128,width:128,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAZlBMVEXFOS7uWCjkQBbkOhXkTSjlQxPkUCrppZP6xa7rYDThQBflTyjkPxP6wKPoShbkSR7iRx/pr5/tTiXptafzh1zp39zkRB3nRRzkRBriNBH2Zz74qYjpy8TpcVHqln/+5dj+eUT4VCZcffnuAAAAGnRSTlMF7f0YTOH3/v7+QX1V/v2Zmf3n/v7+aSxpLBA96xEAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAQ0lEQVR4nAXBhQHAIAADsOLO3HD+f3IJ3KQ0xulwJ6VCGC98vVrOycOacmhtLB6p6tnNBybLpjthwJ5aHgQAX4VYOH6XOAPUFg+VCwAAAABJRU5ErkJggg==",blurWidth:8,blurHeight:8},x={src:"https://cdn.v1v2.io/_next/static/media/inspire.f6e2fa3d.png",height:192,width:192,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAJ1BMVEUdHBoTEhUbGRVjWROgnoiypjpDPRI1NDMoKSyHhoRtbGtNTlmekh5qlp8CAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAKklEQVR4nGNgQAKMXOxMYJqZhQPMYOJhAdMMTKycjGAZNlZuKIMZTMMAABA6AG+O4lA4AAAAAElFTkSuQmCC",blurWidth:8,blurHeight:8},w={src:"https://cdn.v1v2.io/_next/static/media/js.33cae75c.png",height:128,width:128,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAJFBMVEX97gD66gCclBG0qgz/+QCvpA7NwAjh1AVZVh3bzQZnYht6dBeK4ZkEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAMklEQVR4nE3GOQ4AIAzEQG824fz/f5EQBW7G8CVJV8i8zt4sUEaMeOPdAa+oUYhWsnUADeEAkBsafpYAAAAASUVORK5CYII=",blurWidth:8,blurHeight:8},u={src:"https://cdn.v1v2.io/_next/static/media/microphone.051f90e2.png",height:240,width:240,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAP1BMVEVIT092eoF2e4hBSFEpLjUTGyISGSEnLDONj5UXHyZTWmZOVmFbYGxDSFGJjJNlZWylpq2Ag4h3e4BIUFqvsra3dGx6AAAAE3RSTlMB7h2o0yA9q/kQscbd9JOUvGm6Djx4lQAAAAlwS
1FlzAAALEwAACxMBAJqcGAAAADtJREFUeJwdy0ESgCAMwMCAQIugqO3/3+qU0x4yASA/+obc7ilsSfUD6rRrZejDSotwWqnhYdL3IbLhBzWfAVm9LoDcAAAAAElFTkSuQmCC",blurWidth:8,blurHeight:8},b={src:"https://cdn.v1v2.io/_next/static/media/sfeir.6f9cf161.png",height:425,width:480,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAMAAAACh/xsAAAAHlBMVEXyRhxMaXHwRh3yRxz0RxnwRx3xRhzzSBvxRh7xRRtdKKahAAAACnRSTlO9AO58IqlyLoc3vfNkSQAAAAlwSFlzAAALEwAACxMBAJqcGAAAADBJREFUeJxFyzkOACAMxEBvDpL8/8MIKOiskYy1JLWBVuYSoJiJG1+qnji4wPxcbhsUiACTZOMvygAAAABJRU5ErkJggg==",blurWidth:8,blurHeight:7},j={src:"https://cdn.v1v2.io/_next/static/media/uk.55528f3a.png",height:160,width:160,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAYFBMVEVMaXGtYny6v9ZoTmvyR0TylpFzepbjUVRjXosAVcDCd3UOZLneemvFW2joaWZckMtXjMXlfWu8T1A5YI+Xg5fzbmrDW2Y8XIqgip+/T1DAlKGyiZbOc4fggY3KTlG2kZ7u7LVIAAAAGnRSTlMAof3L+/zM/U1VlcJHePr9/UfKzNb6eMzWyvUCDpIAAAAJcEhZcwAACxMAAAsTAQCanBgAAABBSURBVHicPcvHAYAgEATAJR5BRTAfoP136UvnP8AnrFGM3mUsj+wtsUW5J02GFVQ1pDe6YOvcuuQDg/O7iGf49wti0wLCsLkDDQAAAABJRU5ErkJggg==",blurWidth:8,blurHeight:8},f={src:"https://cdn.v1v2.io/_next/static/media/yelp.c813d696.png",height:512,width:512,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAJ1BMVEXuAADaAADYAADnAADZAADmAADjAADdAADcAADiAADcAADbAADcAAAlBkjxAAAADXRSTlMBSh70LwrV5JrAc11n0ITJ4gAAAAlwSFlzAAAQRAAAEEQBkUHrYQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAA2SURBVHicJYtHEsAwDIRYFUsu/39vJjYnDgAxJhfzymfLkYCwlg9Ir4idkEtS7785bm/swowPGiMAywmF/vkAAAAASUVORK5CYII=",blurWidth:8,blurHeight:8},v={src:"https://cdn.v1v2.io/_next/static/media/jamango.93f8f1b6.png",height:180,width:180,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAXVBMVEXcSgD/rgjnYAL/qwj/mwb6oAf/pgT+qwn/owb0kAD/pwbWQQDmYgL5gAPwZwL/iQP/wwj/wQ//wQfcUAD/ugb/uwb/rwz/oAbziQf/pw33egP/pQn+lwj/wQj/rQOFQr4VAAAAG3RSTlMEc27EkEHR+nkPaClTVMDJ5SHPM5/oubew5YF1dfe6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAQ0lEQVR4nAXBBQLAIAwEsEOLM7cW/v/MJViX7UgxAo7GOBUZYNfsw/RQl+M7TAtDge0nFfRaTllHPCJSeweQS0Fr+AF36wNNtkIDSgAAAABJRU5ErkJggg==",blurWidth:8,blurHeight:8},E={src:"https://cdn.v1v2.io/_next/static/media/paper.ad53c04c.png",height:256,width:256,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAANlBMVEVrm+Guwetzn96Tt+xVe7RMaXFWgMO80e+Yt+22ze+avfD6+vONtOx9qeumxPBhmOnZ4/CEru0Vcp3AAAAAEHRSTlM/FuDcGwBI/j/+///////+etT3JwAAAAlwSFlzAAALEwAACxMBAJqcGAAAADxJREFUeJwdxkcOwCAMBMA1uBfg/6+NlDkNhNzdSUA745xN8DR7lQCOXfuTLywaQFfFHYBX98xiCKuqsnxB+QHX94l+VAAAAABJRU5ErkJggg==",blurWidth:8,blurHeight:8},R={src:"https://cdn.v1v2.io/_next/static/media/mana-blade.73a7f363.png",height:180,width:180,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAk1BMVEUAq91XvcWMrK94eXJkr7wAX5B/r7IBmtEJntQAcqolHR5dg4AViqDJ29sBf7gCkMsATHcAg70Sp9RstsNcqrUAcqIAoto4hpoxwtcAlMU6bHIon9AWUVxEpaxQoKMbW3eFbGQ+FBE9PT0AgKovdXsDydkAtcqhW0OkqaCWkpBQuLIodp/O9Ou8fWFT2fnX4+JwcmR7xISiAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAS0lEQVR4nAXBBQKAIAAEsEMRAcXu7q7/v84NhmOa3BUe/CCkEeUCScYIY2kM1F1D9CIH9NWyZQWM331MvVXC2Ld50VSL81L28w7yB42wBPhcFWgRAAAAAElFTkSuQmCC",blurWidth:8,blurHeight:8};var y=t(15741),S=t(53924);let k=e=>{let{location:i=null,time:t}=e;return(0,n.jsxs)(l.P,{my:0,fontSize:"16px",children:[i&&(0,n.jsxs)(n.Fragment,{children:[i," \xa0•\xa0 "]}),t]})},D=()=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(A.az,{as:"header",mb:"30px !important",children:[(0,n.jsxs)(o.A,{headTitle:"Verekia – Resume",mb:2,children:[(0,n.jsx)(l.L9,{whiteSpace:"nowrap",sx:{"@media (max-width: 452px)":{fontSize:24}},children:"Resume"}),(0,n.jsx)(l.L9,{whiteSpace:"nowrap",children:(0,n.jsxs)(l.L9,{fontSize:"20px",pos:"relative",top:"-2px",display:["none","inline"],sx:{"@media print":{display:"none"}},ml:2.5,children:["(",(0,n.jsx)(l.A,{href:"/resume.pdf",isExternal:!0,cursor:"pointer",children:"PDF"}),")"]})})]}),(0,n.jsx)(l.P,{textAlign:"center",fontWeight:"semibold !important",fontSize:"22px",mb:6,mt:0,sx:{textWrap:"balance"},children:"Full-Stack React & Web Game Developer"}),(0,n.jsxs)(l.P,{textAlign:"center",mt:4,mb:6,sx:{textWrap:"balance"},children:["You can reach me at"," ",(0,n.jsx)(c.A,{fontWeight:"semibold",email:y.Es,fakeEmail:y.SK}),", on"," ",(0,n.jsx)(l.A,{href:"https://x.com/verekia",isExternal:!0,fontWeight:"semibold",children:"Twitter"}),", or"," ",(0,n.jsx)(l.A,{href:"https://bsky.app/profile/verekia.com",isExternal:!0,fontWeight:"semibold",children:"Bluesky"}),"."]}),(0,n.jsxs)(l.nz,{mt:0,children:["Here are the tools I have the most experience with",(0,n.jsxs)(l.L9,{sx:{"@media print":{display:"none"}},children:[" ","(detailed"," ",(0,n.jsx)(l.A,{href:"/img/stack-timeline.webp",isExternal:!0,children:"timeline"}),")"]}),":"]}),(0,n.jsxs)(l.uQ,{children:[(0,n.jsxs)("li",{children:[(0,n.jsx)("b",{children:"Front-End"}),": React (10 years), Next.js, React Query, Zustand, Tailwind, Radix UI."]}),(0,n.jsxs)("li",{children:[(0,n.jsx)("b",{children:"Back-End"}
1),": Node.js, Bun, WebSockets, tRPC, GraphQL, Prisma, PostgreSQL."]}),(0,n.jsxs)("li",{children:[(0,n.jsx)("b",{children:"Tooling"}),": TypeScript, ESLint, Prettier, Biome, monorepos, Docker, VPS, Vercel."]}),(0,n.jsxs)("li",{children:[(0,n.jsx)("b",{children:"3D / Gamedev"}),": Three.js, React Three Fiber, ECS, cross-platform web games."]})]})]}),(0,n.jsxs)(A.az,{as:"section",mt:"30px !important",children:[(0,n.jsx)(l.H2,{children:"Experience"}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"Mana Blade logo",src:R,display:"inline-block",width:"24px",verticalAlign:"middle",position:"relative",top:"-1px",mr:2,imageProps:{loading:"eager"}}),(0,n.jsx)(l.A,{href:"https://manablade.com",isExternal:!0,children:"Mana Blade"})]}),(0,n.jsx)(k,{time:"2025"})]}),(0,n.jsx)(l.nz,{mt:5,children:"I created a 3D MMORPG using React Three Fiber, Three.js, Next.js, WebGPU, and Bun."})]}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"Paper logo",src:E,display:"inline-block",width:"30px",verticalAlign:"middle",position:"relative",top:"-1px",mr:.5,imageProps:{loading:"eager"}})," ","Front-End Consulting for"," ",(0,n.jsx)(l.A,{href:"https://paper.design/",isExternal:!0,children:"Paper"})]}),(0,n.jsx)(k,{location:"Remote",time:"11/2024 to 09/2025"})]}),(0,n.jsx)(l.P,{mt:5,children:"I implemented features for Paper – a design tool – using React, Next.js, and Tailwind."})]}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"Jamango logo",src:v,display:"inline-block",width:"24px",verticalAlign:"middle",position:"relative",top:"-1px",mr:1,imageProps:{loading:"eager"}})," ","Front-End Consulting for"," ",(0,n.jsx)(l.A,{href:"https://jamango.io/",isExternal:!0,children:"Jamango"})]}),(0,n.jsx)(k,{location:"Remote",time:"01/2024 to 07/2024"})]}),(0,n.jsx)(l.P,{mt:5,children:"I built the new website and UI of Jamango, a user-generated content browser game for desktop and mobile using React, Tailwind, and Zustand."})]}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsx)(l.H3,{my:"0 !important",children:"Web Game Development Year"}),(0,n.jsx)(k,{time:"2023"})]}),(0,n.jsx)(l.nz,{mt:5,children:"I gave myself 1 year to explore and promote JavaScript game development. I created:"}),(0,n.jsxs)(l.Ul,{mt:"0 !important",children:[(0,n.jsxs)(l.Li,{children:[(0,n.jsx)(r._,{alt:"Web Game Dev Logo",src:"https://www.webgamedev.com/icon.svg",display:"inline-block",verticalAlign:"middle",position:"relative",top:"-1px",mr:0,width:"20px"})," ",(0,n.jsx)(l.A,{href:"https://www.webgamedev.com/",isExternal:!0,fontWeight:"semibold",children:"WebGameDev.com"}),": a website, newsletter, and community of 2200 members."]}),(0,n.jsxs)(l.Li,{children:[(0,n.jsx)(r._,{alt:"WebGamer Logo",src:"https://webgamer.io/icon.svg",display:"inline-block",verticalAlign:"middle",position:"relative",top:"-1px",mr:0,width:"20px"})," ",(0,n.jsx)(l.A,{href:"https://webgamer.io/",isExternal:!0,fontWeight:"semibold",children:"WebGamer.io"}),": a portal of curated web games (35.000 visitors/month)."]}),(0,n.jsxs)(l.Li,{children:[(0,n.jsx)(r._,{alt:"Mini Mana Logo",src:"https://minimana.v1v2.io/icon-192.png",display:"inline-block",verticalAlign:"middle",position:"relative",top:"-1px",mr:0,width:"20px"})," ",(0,n.jsx)(l.A,{href:"https://minimana.v1v2.io/",isExternal:!0,fontWeight:"semibold",children:"Mini Mana"}),": a 3D multiplayer game built with Three.js, React, and uWebSockets."]}),(0,n.jsxs)(l.Li,{children:[(0,n.jsx)(r._,{alt:"PolyDraw Logo",src:"https://polydraw.v1v2.io/icon-192.png",display:"inline-block",verticalAlign:"middle",position:"relative",top:"-1px",mr:0,width:"20px"})," ",(0,n.jsx)(l.A,{href:"https://polydraw.v1v2.io/",isExternal:!0,fontWeight:"semibold",children:"PolyDraw"}),": an app to edit polygons built with React, Chakra UI, and Zustand."]})]})]}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsxs)(A.az,{as:"svg",boxSize:6,display:"inline-block",verticalAlign:"middle",position:"relative",top:"-2px",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 40 40",children:[(0,n.jsx)("path",{fill:"#8d670b",d:"m5.288 19.753 8.896 8.698v11.548l-8.901-8.705.005-11.541ZM33.995 19.753l-8.896 8.698v11.548L34 31.294l-.005-11.541Z"}),(0,n.jsx)("path",{fill:"url(#3dverse-rocket_svg__logo-rocket-gradient)",fillRule:"evenodd",d:"m29.33 13.272 4.875 6.475v11.547L24.99 19.747v5.101H14.496v-5.101L5.283 31.294V19.753l4.875-6.473V9.174C10.159 3.058 14.951 0 19.745 0c2.362 0 4.724.743 6.512 2.228 1.84 1.529 3.073 3.844 3.073 6.946v4.098Zm-9.586-7.517c1.51 0 3.02 1.08 3.02 3.24v4.28l-6.04.002V8.995c0-1.592.82-2.597 1.856-3.015.37-.15.767-.225 1.164-.225Zm-3.02 7.522v.003h6.04-6.04v-.003Zm3.02 16.702-5.247-5.13H24.99l-5.247 5.13Z",clipRule:"evenodd"}),(0,n.jsx)("defs",{children:(0,n.jsxs)("linearGradient",{id:"3dverse-rocket_svg__logo-rocket-gradient",x1:"12.075",x2:"31.321",y1:"1.887",y2:"32.453",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{stopColor:"#f0c732"}),(0,n.jsx)("stop",{offset:"1",stopColor:"var(--color-accent)"})]})})]})," ","Front-End Consulting for"," ",(0,n.jsx)(l.A,{href:"https://www.3dverse.com/",isExternal:!0,children:"3dverse"})]}),(0,n.jsx)(k,{location:"Remote",time:"04/2023"})]}),(0,n.jsx)(l.P,{mt:5,children:"3dverse is a Montreal-based platform for 3D development. I built a new administration dashboard using React, Next.js, TypeScript, React Query, and Chakra UI."})]}),(0,n.jsx)("div",{style:{pageBreakAfter:"always"}}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"Inspire Orientation logo",src:x,display:"inline-block",verticalAlign:"middle",mr:1,width:"24px",position:"relative",top:"-1px",imageProps:{loading:"eager"}})," ","Full-Stack Consulting for"," ",(0,n.jsx)(l.A,{href:"https://inspire-orientation.org/",isExternal:!0,children:"Inspire"})]}),(0,n.jsx)(k,{location:"Remote",time:"05/2021 to 02/2023"})]}),(0,n.jsx)(l.P,{mt:5,children:"Inspire is an organization of career counseling. I developed the new version of Inspire using React, Next.js, TypeScript, React Query, GraphQL, Chakra UI, and MongoDB."})]}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"Alcopa Auction logo",src:d,display:"inline-block",width:"24px",verticalAlign:"middle",position:"relative",top:"-1px",mr:1,imageProps:{loading:"eager"}})," ","Full-Stack Consulting for"," ",(0,n.jsx)(l.A,{href:"https://www.alcopa-auction.fr/",isExternal:!0,children:"Alcopa"})]}),(0,n.jsx)(k,{location:"Remote",time:"From 01/2016 to 03/2020"})]}),(0,n.jsx)(l.P,{mt:5,children:"I built full-stack apps for Alcopa Auction, a car auction company, including apps for users to participate in real-time physical sales streamed from auction rooms. I used React, Redux, Material UI, Storybook, Apollo, GraphQL, and Socket.io."})]}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"Yelp logo",src:f,display:"inline-block",width:"24px",verticalAlign:"middle",mr:.5,imageProps:{loading:"eager"}})," ","Front-End Engineer at"," ",(0,n.jsx)(l.A,{isExternal:!0,href:"http://www.yelp.com",children:"Yelp"})]}),(0,n.jsx)(k,{location:"San Francisco & Remote",time:"02/2012 to 03/2015"})]}),(0,n.jsxs)(l.P,{mt:5,children:["I developed features for Yelp, serving more than"," ",(0,n.jsx)(l.A,{isExternal:!0,href:"http://www.yelp.com/factsheet",children:"90 million"})," ","monthly visitors, focusing on creating a robust CSS codebase. I was part of developer relations and recruiting and brought"," ",(0,n.jsx)(l.A,{isExternal:!0,href:"http://www.meetup.com/sfhtml5/events/61279952/",children:"SFHTML5"})," ","to Yelp. We used SASS, OOCSS, JavaScript, and Python."]})]}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"Sfeir logo",src:b,display:"inline-block",width:"24px",verticalAlign:"middle",mr:1,position:"relative",top:"-1px",imageProps:{loading:"eager"}})," ","Web Developer Intern at"," ",(0,n.jsx)(l.A,{isExternal:!0,href:"http://www.sfeir.com/",children:"SFEIR"})]}
1),(0,n.jsx)(k,{location:"Paris",time:"02/2011 to 08-2011"})]}),(0,n.jsx)(l.P,{mt:5,children:"I developed HTML5, GWT, Google App Engine, and Android apps at the Innovation Department of SFEIR. We won a French Google Chrome HTML5 app contest with one of the first web-based music players for Chrome."})]}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"GIMNY logo",src:m,display:"inline-block",width:"26px",verticalAlign:"middle",position:"relative",top:"-1px",mr:1,imageProps:{loading:"eager"}})," ","Full-Stack Developer at GIMNY"]}),(0,n.jsx)(k,{location:"Paris",time:"02/2009 to 09-2010"})]}),(0,n.jsx)(l.P,{mt:5,children:"During my studies, I co-founded, developed, and launched a series of entertainment social networks built on a PHP stack with Zend Framework and jQuery."})]})]}),(0,n.jsxs)("section",{children:[(0,n.jsx)(l.H2,{children:"Highlights"}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"JavaScript logo",src:w,display:"inline-block",width:"24px",position:"relative",top:"-1px",verticalAlign:"middle",mr:1,imageProps:{loading:"eager"}})," ","JavaScript Stack from Scratch"]}),(0,n.jsx)(k,{time:2017})]}),(0,n.jsxs)(l.P,{mt:5,children:[(0,n.jsx)(l.A,{isExternal:!0,href:"https://github.com/verekia/js-stack-from-scratch/",children:"JavaScript Stack from Scratch"})," ","is my tutorial about setting up a JavaScript and React stack with Redux, Webpack, ESLint, Jest, and more. It reached 20.000 GitHub stars."]})]}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"HTML5 logo",src:g,display:"inline-block",width:"20px",verticalAlign:"middle",position:"relative",top:"-1px",mr:1,imageProps:{loading:"eager"}})," ","Initializr"]}),(0,n.jsx)(k,{time:2011})]}),(0,n.jsxs)(l.P,{mt:5,children:[(0,n.jsx)(l.A,{isExternal:!0,href:y.Ir,children:"Initializr"})," ","was my tool to create HTML5 projects. It was the official custom build tool of"," ",(0,n.jsx)(l.A,{isExternal:!0,href:"http://html5boilerplate.com/",children:"HTML5 Boilerplate"}),". It reached 4 million visitors and 2500 GitHub stars."]})]}),(0,n.jsx)("div",{style:{pageBreakAfter:"always"}}),(0,n.jsxs)("section",{children:[(0,n.jsxs)(s.s,{direction:["column",null,"row"],sx:{"@media print":{flexDir:"row"}},justifyContent:"space-between",alignItems:"baseline",children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"Book icon",src:h,display:"inline-block",width:"20px",verticalAlign:"middle",mr:1,imageProps:{loading:"eager"}})," ","Author of a book about HTML5"]}),(0,n.jsx)(k,{time:2011})]}),(0,n.jsxs)(l.P,{mt:5,children:["I co-wrote a"," ",(0,n.jsx)(l.A,{isExternal:!0,href:"https://www.alsacreations.com/livres/lire/1296-HTML5--De-la-page-web-a-lapplication-web.html",children:"book about HTML5"})," ","foreworded by Paul Irish from Google Chrome. I also wrote a"," ",(0,n.jsx)(l.A,{isExternal:!0,href:"http://www.eyrolles.com/Informatique/Livre/savoir-tout-faire-pour-le-web-css3-htlm5-et-jquery-9782361450434",children:"guest chapter"})," ","for another book and an article for Web Design Magazine."]})]})]}),(0,n.jsx)("section",{children:(0,n.jsxs)("section",{children:[(0,n.jsxs)(l.H3,{my:"0 !important",children:[(0,n.jsx)(l.E9,{alt:"Microphone icon",src:u,display:"inline-block",width:"20px",position:"relative",top:"-1px",verticalAlign:"middle",mr:1,imageProps:{loading:"eager"}})," ","Public speaking"]}),(0,n.jsxs)(l.P,{mt:5,children:["I gave talks at"," ",(0,n.jsx)(l.A,{isExternal:!0,href:y.pp,children:"SFHTML5"}),","," ",(0,n.jsx)(l.A,{href:"https://illinois.edu/",isExternal:!0,children:"UIUC"}),","," ",(0,n.jsx)(l.A,{isExternal:!0,href:"https://gdg.community.dev/gdg-paris/",children:"Google Developer Group"}),","," ",(0,n.jsx)(l.A,{isExternal:!0,href:"http://www.meetup.com/fr-FR/paris-webComponents/events/2133
119332/",children:"Paris Web Components"}),","," ",(0,n.jsx)(l.A,{href:"https://www.sfeir.com/",isExternal:!0,children:"Sfeir'Plays"}),","," ",(0,n.jsx)(l.A,{isExternal:!0,href:"http://bestofweb.paris/",children:"Best of Web 2017"}),","," ",(0,n.jsx)(l.A,{href:"https://www.meetup.com/fr-FR/Js-Star/events/233966860/",isExternal:!0,children:"JS Star"}),", and several presentations at Yelp and Sfeir."]})]})}),(0,n.jsxs)("footer",{children:[(0,n.jsx)(l.H2,{children:"Education and Languages"}),(0,n.jsxs)(l.P,{mt:5,children:["I have a Master's in Computer Science from"," ",(0,n.jsx)(l.A,{href:"https://en.wikipedia.org/wiki/%C3%89cole_pour_l%27informatique_et_les_techniques_avanc%C3%A9es",isExternal:!0,children:"EPITA"}),". I was a student representative, won an Android contest with the"," ",(0,n.jsx)(l.A,{isExternal:!0,href:"https://www.ucd.ie/",children:"University of Dublin"}),", and organized the"," ",(0,n.jsx)(l.A,{isExternal:!0,href:"https://www.epita.fr/2010/11/15/open-source-day-une-journee-co/",children:"Open Source Day"}),"."]}),(0,n.jsxs)(A.az,{fontWeight:S.Im,children:["I speak and write"," ",(0,n.jsx)(l.E9,{alt:"France flag",src:p,display:"inline-block",width:"20px",mx:.5,imageProps:{loading:"eager"},verticalAlign:-4})," ","French natively and"," ",(0,n.jsx)(l.E9,{alt:"UK flag",src:j,display:"inline-block",width:"20px",mx:.5,imageProps:{loading:"eager"},verticalAlign:-4})," ","English fluently."]})]})]});D.wrappers=e=>(0,n.jsx)(a.A,{children:e});let B=D}},e=>{var i=i=>e(e.s=i);e.O(0,[8916,5422,6379,7351,8593,1940,2503,5120,636,6593,8792],()=>i(95518)),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.