1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8088],{67548:(e,r,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/consulting",function(){return t(43294)}])},6963:(e,r,t)=>{"use strict";t.d(r,{A:()=>a});var n=t(74848),s=t(96540),i=t(56972);let a=e=>{let{email:r,fakeEmail:t,...a}=e,[l,o]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{o(!0)},[]),(0,n.jsx)(i.N_,{href:"mailto:".concat(l?r:"[email protected]"),...a,children:l?r:t})}},77083:(e,r,t)=>{"use strict";t.d(r,{A:()=>H});var n=t(74848),s=t(45703),i=t.n(s),a=t(79237),l=t(96540),o=t(62539),c=t(93809),d=t(41662),h=t(89260),p=t(95643),x=t(48996),u=t(48706),m=t(11692),f=t(50303),j=t(14320),g=t(74892),v=t(56972),b=t(20053),w=t(86715),y=t(96452),k=t(39605),z=t(73374),E=t(49752),S=t(91588),_=t(15741),I=t(79167),A=t(67764);let C=[{path:_.gs,matchRule:e=>e.startsWith("/blog"),label:"Blog & Projects",icon:y.EmU,iconColor:I.K2},{path:_.qu,label:"Resume",icon:z.bGE,iconColor:I.RP}],F=e=>{let{path:r,label:t,icon:s,iconColor:i,closeModal:a,matchRule:l=null}=e,{pathname:d}=(0,w.useRouter)(),h=l?l(d):d.startsWith(r);return(0,n.jsx)(o.az,{_hover:{"& svg":{color:i}},children:(0,n.jsx)(v.z9,{pl:5,className:(0,b.A)(h&&"active-nav"),justifyContent:"left",variant:"ghost",href:r,onClick:a,size:"lg",w:"full",leftIcon:(0,n.jsx)(c.I,{as:s,boxSize:4,mr:1,color:h&&i,transitionProperty:"color",transitionDuration:"var(--chakra-transition-duration-normal)"}),children:t},r)},r)},P=e=>{let{closeModal:r}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.c,{px:2,children:(0,n.jsx)(g.YC,{spacing:0,children:C.map(e=>(0,n.jsx)(F,{closeModal:r,...e},e.path))})}),(0,n.jsx)(h.j,{pt:0,justifyContent:"center",children:(0,n.jsx)(p.$,{onClick:r,children:"Close"})})]})},D=e=>{let{toggleColorMode:r}=(0,x.G6)(),t=(0,x.dU)(E.vVA,E.q9U),s=(0,x.dU)("Dark mode","Light mode");return(0,n.jsx)(u.K,{variant:"ghost","aria-label":s,icon:(0,n.jsx)(c.I,{as:t,boxSize:5}),onClick:r,...e})},M=e=>{let{path:r,label:t,icon:s,iconColor:i,matchRule:a=null}=e,{pathname:l}=(0,w.useRouter)(),d=a?a(l):l.startsWith(r);return(0,n.jsx)(o.az,{_hover:{"& svg":{color:i}},children:(0,n.jsxs)(v.z9,{className:(0,b.A)(d&&"active-nav"),variant:"ghost",href:r,children:[(0,n.jsx)(c.I,{sx:(0,A.x)("".concat(830,"px")),as:s,boxSize:3.5,mr:2,color:d&&i,transitionProperty:"color",transitionDuration:"var(--chakra-transition-duration-normal)"}),t]})})},q=(0,l.memo)(e=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.az,{className:"header",shadow:"md",py:2,pos:"fixed",top:0,w:"full",zIndex:10,sx:{"@media print":{display:"none"}},...e,children:(0,n.jsx)(a.m,{maxW:"container.lg",children:(0,n.jsxs)(m.s,{align:"center",justify:"space-between",children:[(0,n.jsx)(v.N_,{href:_.Pm,mr:2,children:(0,n.jsx)(o.az,{sx:{"@media screen and (max-width: 310px)":{width:"26px",overflowX:"hidden"}},children:(0,n.jsx)(k.A,{className:"body-color",width:"110px",title:"V1V2"})})}),(0,n.jsx)(f.z,{sx:(0,A.x)("".concat(730,"px")),spacing:.5,children:C.map(e=>(0,n.jsx)(M,{...e},e.path))}),(0,n.jsxs)(f.z,{children:[(0,n.jsx)(j.N,{href:"https://x.com/verekia",isExternal:!0,sx:(0,A.x)("230px"),children:(0,n.jsx)(u.K,{tabIndex:-1,icon:(0,n.jsx)(c.I,{as:y.feZ,boxSize:6,fillOpacity:.9}),variant:"ghost","aria-label":"GitHub logo"})}),(0,n.jsx)(j.N,{href:_.xD,isExternal:!0,sx:(0,A.x)("356px"),children:(0,n.jsx)(u.K,{tabIndex:-1,icon:(0,n.jsx)(c.I,{as:y.hL4,boxSize:6,fillOpacity:.9}),variant:"ghost","aria-label":"GitHub logo"})}),(0,n.jsx)(D,{}),(0,n.jsx)(g.g6,{modalProps:{preserveScrollBarGap:!0,isCentered:!0},contentProps:{width:"auto"},trigger:e=>(0,n.jsx)(u.K,{"aria-label":"Menu",variant:"ghost",icon:(0,n.jsx)(c.I,{as:S.vIB,boxSize:6}),onClick:e,sx:(0,A.u)("".concat(731,"px"))}),children:e=>(0,n.jsx)(P,{closeModal:e})})]})]})})}),(0,n.jsx)(o.az,{h:14,sx:{"@media print":{display:"none"}}})]})),R={a:{textDecor:"underline"}},N=e=>{let{children:r,maxW:t,...s}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i(),{id:"75b87823bb2211a2",children:"html{overflow-y:scroll}"}),(0,n.jsx)(q,{mb:5}),(0,n.jsx)(a.m,{maxW:null!=t?t:"container.lg",pb:"200px",sx:R,...s,children:r})]})};var T=t(53924);let H=e=>{let{children:r}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i(),{id:"e3d2254df3ae0ad9",children:"article header>:last-child{margin-bottom:0}article footer>:first-child{margin-top:0}article section>:first-child{margin-top:0}article section>:last-child{margin-bottom:0}"}),(0,n.jsx)(N,{as:"article",maxW:"730px",sx:{fontSize:T.fQ,lineHeight:T.UH,h1:{fontWeight:600},h2:{textAlign:"center",fontSize:24,mt:12,mb:6,fontWeight:600},h3:{fontSize:18,mt:10,mb:4,fontWeight:600},h4:{fontSize:16,my:6,mb:4},"ul, ol":{my:T.vU,ml:7},"ul > ul, ol > ol":{my:1,ml:5},"ul li, ol li":{pl:1},"p + ul":{mt:3},"ul + p":{mt:3},"p, ul":{fontWeight:T.Im},"b, strong":{fontWeight:T.uf},".chakra-wrap__list":{m:0},".chakra-wrap__listitem":{pl:0},"> header":{mb:T.rf},"> footer":{mt:T.rf},"> section":{my:T.rf},"> section > section":{my:T.vU},"> section > section > section":{my:T.vU}
1,".deprecation-warning":{bg:"orange.100",[(0,T.XT)()]:{bg:"#735016"}},"@media print":{mb:0}},children:r})]})}},21055:(e,r,t)=>{"use strict";t.d(r,{A:()=>c.N_,Cy:()=>l.C,E9:()=>j,H2:()=>u,H3:()=>m,H4:()=>f,L9:()=>p,Li:()=>o.ck,P:()=>a.E,Ul:()=>o.Xy,nC:()=>x,nz:()=>g,uQ:()=>v});var n=t(74848),s=t(62539),i=t(91311),a=t(27821),l=t(29818),o=t(55462),c=t(56972),d=t(29965),h=t.n(d);let p=e=>(0,n.jsx)(s.az,{as:"span",...e}),x=e=>(0,n.jsx)(s.az,{as:"aside",...e}),u=e=>(0,n.jsx)(i.D,{as:"h2",...e}),m=e=>(0,n.jsx)(i.D,{as:"h3",...e}),f=e=>(0,n.jsx)(i.D,{as:"h4",...e}),j=e=>{let{alt:r,src:t,borderRadius:i=5,style:a,center:l,imageProps:o,...c}=e;return(0,n.jsx)(s.az,{...l?{display:"flex",justifyContent:"center",w:"full"}:{},...c,children:(0,n.jsx)(h(),{alt:r,style:{borderRadius:i,...a},src:t,quality:100,...o})})},g=e=>{let{children:r,...t}=e;return(0,n.jsx)(a.E,{mb:3,...t,children:r})},v=e=>{let{children:r,...t}=e;return(0,n.jsx)(s.az,{as:"ul",mb:"var(--chakra-space-3) !important",...t,children:r})}},85044:(e,r,t)=>{"use strict";t.d(r,{A:()=>o});var n=t(74848),s=t(91311),i=t(49497),a=t(21055),l=t(67764);let o=e=>{let{children:r,headTitle:t,icon:o,...c}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.A,{title:null!=t?t:String(r)}),(0,n.jsxs)(s.D,{as:"h1",textAlign:"center",fontSize:"3xl",my:8,...c,children:[o&&(0,n.jsx)(a.L9,{sx:(0,l.u)("".concat(830,"px")),children:o}),r]})]})}},43294:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>_});var n,s,i,a=t(74848),l=t(93809),o=t(77638),c=t(56972),d=t(86715),h=t(77083),p=t(21055),x=t(85044),u=t(6963),m=t(90841),f=t(96540),j=["title","titleId"];function g(){return(g=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(null,arguments)}let v=function(e){var r=e.title,t=e.titleId,a=function(e,r){if(null==e)return{};var t,n,s=function(e,r){if(null==e)return{};var t={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(r.includes(n))continue;t[n]=e[n]}return t}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)t=i[n],r.includes(t)||({}).propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,j);return f.createElement("svg",g({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -5 60 40",preserveAspectRatio:"none",width:1200,height:600,"aria-labelledby":t},a),r?f.createElement("title",{id:t},r):null,n||(n=f.createElement("clipPath",{id:"uk_svg__a"},f.createElement("path",{d:"M0 0v30h60V0z"}))),s||(s=f.createElement("clipPath",{id:"uk_svg__b"},f.createElement("path",{d:"M30 15h30v15zv15H0zH0V0zV0h30z"}))),i||(i=f.createElement("g",{clipPath:"url(#uk_svg__a)"},f.createElement("path",{d:"M0 0v30h60V0z",fill:"#012169"}),f.createElement("path",{d:"m0 0 60 30m0-30L0 30",stroke:"#fff",strokeWidth:6}),f.createElement("path",{d:"m0 0 60 30m0-30L0 30",clipPath:"url(#uk_svg__b)",stroke:"#C8102E",strokeWidth:4}),f.createElement("path",{d:"M30 0v30M0 15h60",stroke:"#fff",strokeWidth:10}),f.createElement("path",{d:"M30 0v30M0 15h60",stroke:"#C8102E",strokeWidth:6}))))};var b=t(73374),w=t(91588),y=t(17041),k=t(15741);let z=e=>{let{fr:r,en:t}=e,{query:n}=(0,d.useRouter)();return"fr"==("fr"===n.lang?"fr":"en")?r:t},E=e=>{let{query:r}=(0,d.useRouter)(),t="fr"===r.lang?"fr":"en";return(0,a.jsx)(c.z9,{size:"sm",variant:"outline",textDecor:"none !important",leftIcon:(0,a.jsx)(l.I,{boxSize:6,as:"fr"===t?v:m.A}),href:"fr"===t?k.Zq:{pathname:k.Zq,query:{lang:"fr"}},...e,children:"fr"===t?"Version anglaise":"French version"})},S=()=>{let{query:e}=(0,d.useRouter)(),r="fr"===e.lang?"fr":"en";return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{icon:(0,a.jsx)(l.I,{as:b.bGE,verticalAlign:"middle",boxSize:7,mr:3,pos:"relative",top:"-2px"}),headTitle:"fr"===r?"Conseil":"Consulting",mb:4,children:(0,a.jsx)(z,{fr:"Conseil",en:"Consulting"})}),(0,a.jsx)(o.o,{mb:7,children:(0,a.jsx)(E,{})}),(0,a.jsx)("p",{children:(0,a.jsx)(z,{en:(0,a.jsxs)(a.Fragment,{children:["Hi there, I am ",(0,a.jsx)("b",{children:"Verekia"}),", a French freelance Full Stack JavaScript/TypeScript developer specialized in React, previously employed at"," ",(0,a.jsx)(p.A,{isExternal:!0,href:"http://www.yelp.com",children:"Yelp"}),", with"," ",Math.round((new Date().getTime()-new Date("2010-07-01").getTime())/1e3/60/60/24/365)," ","years of professional experience. I wrote a book about HTML5, created one of the most popular JavaScript tutorials on GitHub (",(0,a.jsx)(p.A,{href:k.R3,isExternal:!0,children:"20k stars"}),"), and I spoke at plenty of web"," ",(0,a.jsx)(p.A,{href:k.pp,children:"developer conferences"}),". Here is my"," ",(0,a.jsx)(p.A,{href:k.qu,children:"resume"}),"."]}),fr:(0,a.jsxs)(a.Fragment,{children:["Bonjour, je suis ",(0,a.jsx)("b",{children:"Verekia"}),", d\xe9veloppeur full-stack JavaScript/TypeScript freelance sp\xe9cialis\xe9 en React, ayant travaill\xe9 chez"," ",(0,a.jsx)(p.A,{isExternal:!0,href:"http://www.yelp.com",children:"Yelp"}),", avec"," ",Math.round((new Date().getTime()-new Date("2010-07-01").getTime())/1e3/60/60/24/365)," ","ans d'exp\xe9rience professionnelle. J'ai \xe9crit un livre sur HTML5, cr\xe9\xe9 l'un des tutoriels JavaScript les plus populaires de GitHub (",(0,a.jsx)(p.A,{href:k.R3,isExternal:!0,children:"20k stars"}),"), et ai fait des pr\xe9sentations \xe0 de nombreuses"," ",(0,a.jsx)(p.A,{href:k.pp,children:"conf\xe9rences"}),". Voici"," ",(0,a.jsx)(p.A,{href:k.qu,children:" mon CV"}),"."]})})}),(0,a.jsx)("p",{children:(0,a.jsx)(z,{en:(0,a.jsxs)(a.Fragment,{children:["I can ",(0,a.jsx)("b",{children:"bootstrap"}),", ",(0,a.jsx)("b",{children:"architecture"}),", or ",(0,a.jsx)("b",{children:"upgrade your project"}),","," ",(0,a.jsx)("b",{children:"train your team"}),", offer ",(0,a.jsx)("b",{children:"counseling"}),", or ",(0,a.jsx)("b",{children:"review your code"}
1)," to help you take your codebase to the next level while following the best practices of modern web development."]}),fr:(0,a.jsxs)(a.Fragment,{children:["Je peux ",(0,a.jsx)("b",{children:"mettre en place"})," ou ",(0,a.jsx)("b",{children:"am\xe9liorer l'architecture"})," de votre projet,"," ",(0,a.jsx)("b",{children:"former"})," votre \xe9quipe, vous ",(0,a.jsx)("b",{children:"conseiller"}),", ou ",(0,a.jsx)("b",{children:"auditer"})," votre code, selon les meilleures pratiques de d\xe9veloppement web moderne."]})})}),(0,a.jsx)(p.P,{textAlign:"center",children:(0,a.jsx)(z,{en:(0,a.jsxs)(a.Fragment,{children:["I have been working remotely efficiently and smoothly for the past"," ",Math.round((new Date().getTime()-new Date("2013-04-02").getTime())/1e3/60/60/24/365)," ","years."]}),fr:(0,a.jsxs)(a.Fragment,{children:["Je travaille efficacement \xe0 distance depuis"," ",Math.round((new Date().getTime()-new Date("2013-04-02").getTime())/1e3/60/60/24/365)," ","ans."]})})}),(0,a.jsx)(p.nC,{textAlign:"center",mb:8,children:(0,a.jsxs)("p",{children:[(0,a.jsx)(l.I,{as:w.vD0,boxSize:5,verticalAlign:"middle",pos:"relative",top:"-2px",mr:2}),(0,a.jsx)(z,{en:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("b",{children:["Email me at ",(0,a.jsx)(u.A,{email:k.Es,fakeEmail:k.SK})]})," ","if you want to get in touch."]}),fr:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("b",{children:["Contactez moi \xe0 l'adresse"," ",(0,a.jsx)(u.A,{email:k.Es,fakeEmail:k.SK})]})," ","pour plus d'informations."]})})]})}),(0,a.jsxs)("section",{children:[(0,a.jsxs)(p.H2,{children:[(0,a.jsx)(l.I,{as:y.Bcn,verticalAlign:"middle",boxSize:7,mr:3,pos:"relative",top:"-2px"}),(0,a.jsx)(z,{en:"Training and Support",fr:"Formation et support"})]}),(0,a.jsx)(p.nC,{textAlign:"center",children:(0,a.jsx)(z,{en:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(p.P,{mb:0,children:["I offer private training and support for",(0,a.jsx)("br",{}),(0,a.jsx)("b",{children:"React"}),", ",(0,a.jsx)("b",{children:"front-end"})," or ",(0,a.jsx)("b",{children:"full-stack"})," development."]}),(0,a.jsx)(p.P,{mt:2,children:(0,a.jsx)(p.A,{href:k.wm,isExternal:!0,children:"See the program contents"})})]}),fr:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(p.P,{mb:0,children:["Je propose des formations et du support sur",(0,a.jsx)("br",{}),(0,a.jsx)("b",{children:"React"}),", le d\xe9veloppement ",(0,a.jsx)("b",{children:"front-end"}),", ou ",(0,a.jsx)("b",{children:"full-stack"}),"."]}),(0,a.jsx)(p.P,{mt:2,children:(0,a.jsx)(p.A,{href:k.wm,isExternal:!0,children:"Voir le contenu de la formation"})})]})})}),(0,a.jsx)("p",{children:(0,a.jsx)(z,{en:(0,a.jsx)(a.Fragment,{children:"My offer is particularly aimed at companies who have developers who need training. You may have back-end developers who want to become full-stack, front-end developers who want to learn React or Node, or junior hires who need a boost."}),fr:(0,a.jsx)(a.Fragment,{children:"Mon offre s'adresse en particulier aux entreprises ayant des d\xe9veloppeurs \xe0 former. Par exemple, vos d\xe9veloppeurs back-end veulent devenir full-stack, vos d\xe9veloppeurs front-end veulent apprendre React, ou vos juniors ont besoin d'un coup de boost."})})}),(0,a.jsx)("p",{children:(0,a.jsx)(z,{en:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("b",{children:"I teach on Slack / Discord"}),". Chat-based training is much more efficient than calls to learn code. It is better to share code samples and links with each other, gives time to the trainees to process information and come up with specific questions, and creates references for them to come back to. It is also easier to integrate to their schedule. We will have occasional video calls to check-in","."]}),fr:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("b",{children:"Je forme sur Slack / Discord"}),". Il est bien plus efficace de former au code par \xe9crit que par appels. Cela permet de s'\xe9changer du code et des liens, donne plus de temps \xe0 vos d\xe9veloppeurs pour assimiler les concepts et pr\xe9parer des questions, et leur permet de revenir sur nos conversations. Cela s'int\xe8gre \xe9galement plus facilement dans leur emploi du temps. Nous ferons aussi de
1s appels vid\xe9os pour faire le point."]})})}),(0,a.jsx)("p",{children:(0,a.jsx)(z,{en:(0,a.jsxs)(a.Fragment,{children:["My training is ",(0,a.jsx)("b",{children:"tailored to the needs of each trainee"}),". I will provide guidance, answer all their questions, and give them assignments specific to them to practice on. I will make sure they make fast progress, understand fundamental concepts well, and assimilate best practices. I also provide support if they need help with their work."]}),fr:(0,a.jsxs)(a.Fragment,{children:["Ma formation est ",(0,a.jsx)("b",{children:"sp\xe9ficique aux besoins de chacun"}),". Je les guiderai, r\xe9pondrai \xe0 toutes leurs questions, et leur donnerai des exercices personnalis\xe9s pour s'entra\xeener. Je m'assurerai qu'ils progressent vite, comprennent bien les concepts fondamentaux, et int\xe8grent les bonnes pratiques. Je les aiderai aussi sur leur travail en cas de besoin."]})})})]})]})};S.wrappers=e=>(0,a.jsx)(h.A,{children:e});let _=S},67764:(e,r,t)=>{"use strict";t.d(r,{u:()=>s,x:()=>n});let n=e=>
1({["@media screen and (max-width: ".concat(e,")")]:{display:"none"}}),s=e=>({["@media screen and (min-width: ".concat(e,")")]:{display:"none"}})},77638:(e,r,t)=>{"use strict";t.d(r,{o:()=>a});var n=t(85149),s=t(15284),i=t(74848),a=(0,n.B)("div",{baseStyle:{display:"flex",alignItems:"center",justifyContent:"center"}});a.displayName="Center";var l={horizontal:{insetStart:"50%",transform:"translateX(-50%)"},vertical:{top:"50%",transform:"translateY(-50%)"},both:{insetStart:"50%",top:"50%",transform:"translate(-50%, -50%)"}};(0,s.R)(function(e,r){let{axis:t="both",...s}=e;return(0,i.jsx)(n.B.div,{ref:r,__css:l[t],...s,position:"absolute"})})}},e=>{var r=r=>e(e.s=r);e.O(0,[8916,5422,6379,7351,203,8593,1940,2503,636,6593,8792],()=>r(67548)),_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.