PageSourceSearch

https://elpea.net/work

html elpea.net collected 2026-10-03 02:53:44 UTC 29,136 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/18awkz15dip51.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/3ll07n217cgxf.js"/>
1<script src="/_next/static/chunks/15orcrkp-_9ct.js" async=""></script>
1<script src="/_next/static/chunks/1upe53-127sm4.js" async=""></script>
1<script src="/_next/static/chunks/29194twgvgfhb.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-0pra4-w96jr8q.js" async=""></script>
1<script src="/_next/static/chunks/2mjhq8j8vall3.js" async=""></script>
1<script src="/_next/static/chunks/14mrh2-p_w84d.js" async=""></script>
1<script src="/_next/static/chunks/3-9v5llyj1vf9.js" async=""></script>
1<title>Work · Elle Pereira</title><meta name="description" content="Selected projects and professional experience, Elle Pereira."/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
1</head><body class="bg-background text-foreground flex min-h-screen flex-col font-sans antialiased"><div hidden=""><!--$--><!--/$--></div>
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
1<header class="border-border border-b"><nav class="mx-auto flex w-full max-w-3xl items-center justify-between px-6 py-5"><a class="font-medium tracking-tight" href="/">Elle Pereira</a><div class="flex items-center gap-6"><ul class="flex gap-6 text-sm"><li><a class="text-muted hover:text-foreground transition-colors" href="/work">Work</a></li><li><a class="text-muted hover:text-foreground transition-colors" href="/blog">Writing</a></li><li><a class="text-muted hover:text-foreground transition-colors" href="/about">About</a></li></ul><button type="button" aria-label="Toggle theme" class="text-muted hover:text-foreground -m-2 cursor-pointer p-2 transition-colors"><span class="block size-5"></span></button></div></nav></header><main class="mx-auto w-full max-w-3xl flex-1 px-6 py-12"><div class="space-y-14"><section><h1 class="text-2xl font-medium tracking-tight">Work</h1><h2 class="mt-8 mb-6 text-sm font-medium">Projects</h2><div class="grid gap-8 sm:grid-cols-2"><article class="flex flex-col gap-3"><div class="border-border bg-surface relative aspect-[16/10] overflow-hidden rounded-xl border"><img alt="Project Celeste screenshot" loading="lazy" decoding="async" data-nimg="fill" class="object-cover" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(min-width: 640px) 50vw, 100vw" srcSet="/_next/image?url=%2Fprojects%2Fceleste.png&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fprojects%2Fceleste.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fprojects%2Fceleste.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fprojects%2Fceleste.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fprojects%2Fceleste.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fprojects%2Fceleste.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fprojects%2Fceleste.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fprojects%2Fceleste.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fprojects%2Fceleste.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fprojects%2Fceleste.png&amp;w=3840&amp;q=75"/></div><div><div class="flex items-baseline justify-between gap-3"><h3 class="font-medium">Project Celeste</h3><span class="text-muted shrink-0 text-xs">2016 — present</span></div><p class="text-muted mt-1 text-sm leading-relaxed">Community effort that resurrected Age of Empires Online after its shutdown. Leads a 30-person global team building a C# game server supporting thousands of concurrent players.</p><div class="mt-2 flex flex-wrap gap-4"><a href="https://projectceleste.com" target="_blank" rel="noreferrer" class="text-accent text-sm hover:underline">Project</a><a href="https://github.com/ellepereira/aoeo" target="_blank" rel="noreferrer" class="text-accent text-sm hover:underline">AoEO tools</a></div></div></article><article class="flex flex-col gap-3"><div class="border-border bg-surface relative aspect-[16/10] overflow-hidden rounded-xl border"><div aria-hidden="true" class="text-muted/40 flex h-full items-center justify-center text-5xl font-semibold">F</div></div><div><div class="flex items-baseline justify-between gap-3"><h3 class="font-medium">File Upload SVG Animation</h3></div><p class="text-muted mt-1 text-sm leading-relaxed">A file-upload workflow prototype exploring how SVG animation shapes perceived performance. Built with Vue.js.</p><div class="mt-2 flex flex-wrap gap-4"><a href="https://github.com/ellepereira/file-upload-vue" target="_blank" rel="noreferrer" class="text-accent text-sm hover:underline">GitHub</a></div></div></article></div></section><section><h2 class="mb-6 text-sm font-medium">Experience</h2><div class="space-y-8"><article class="flex gap-4"><div class="border-border bg-surface relative size-12 shrink-0 overflow-hidden rounded-lg border"><img alt="StyleSeat logo" loading="lazy" decoding="async" data-nimg="fill" class="object-contain p-1.5" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="48px" srcSet="/_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fwork%2Fstyleseat.png&amp;w=3840&amp;q=75"/></div><div class="min-w-0"><div class="flex items-baseline justify-between gap-3"><h3 class="font-medium"><a href="https://www.styleseat.com" target="_blank" rel="noreferrer" class="hover:text-accent transition-colors">StyleSeat</a></h3><span class="text-muted shrink-0 text-xs">2019 — present</span></div><p class="text-muted text-sm">
1Senior Software Engineer II — Frontend Architecture</p><p class="mt-1 text-sm leading-relaxed">Led the frontend architecture behind StyleSeat&#x27;s design system and its multi-year migration off AngularJS to React and TypeScript, plus the Next.js SSR infrastructure serving its high-traffic, SEO-sensitive pages.</p><div class="mt-2 flex flex-wrap gap-4"><a href="https://medium.com/@styleseat-engineering/uniting-react-router-and-angulars-ui-router-e94d43954468" target="_blank" rel="noreferrer" class="text-accent text-sm hover:underline">Blog post</a></div></div></article><article class="flex gap-4"><div class="border-border bg-surface relative size-12 shrink-0 overflow-hidden rounded-lg border"><div aria-hidden="true" class="text-muted/40 flex h-full items-center justify-center text-lg font-semibold">M</div></div><div class="min-w-0"><div class="flex items-baseline justify-between gap-3"><h3 class="font-medium">Maestro Healthcare Technologies</h3><span class="text-muted shrink-0 text-xs">2013 — 2019</span></div><p class="text-muted text-sm">Senior Software Engineer / Software Architect</p><p class="mt-1 text-sm leading-relaxed">Architected a HIPAA-compliant benefits administration platform in Vue.js, AngularJS, and Angular 2+, leading teams of up to seven engineers across parallel projects.</p></div></article><article class="flex gap-4"><div class="border-border bg-surface relative size-12 shrink-0 overflow-hidden rounded-lg border"><div aria-hidden="true" class="text-muted/40 flex h-full items-center justify-center text-lg font-semibold">F</div></div><div class="min-w-0"><div class="flex items-baseline justify-between gap-3"><h3 class="font-medium">Famedays</h3><span class="text-muted shrink-0 text-xs">2012 — 2013</span></div><p class="text-muted text-sm">Full Stack Engineer</p><p class="mt-1 text-sm leading-relaxed">Built a Node.js pipeline ingesting millions of Instagram and Twitter posts in real time, with an AngularJS front end and an Ionic-based mobile app sharing the same codebase.</p></div></article><article class="flex gap-4"><div class="border-border bg-surface relative size-12 shrink-0 overflow-hidden rounded-lg border"><img alt="Best Buy logo" loading="lazy" decoding="async" data-nimg="fill" class="object-contain p-1.5" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="48px" srcSet="/_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fwork%2Fbestbuy.png&amp;w=3840&amp;q=75"/></div><div class="min-w-0"><div class="flex items-baseline justify-between gap-3"><h3 class="font-medium"><a href="https://www.bestbuy.com" target="_blank" rel="noreferrer" class="hover:text-accent transition-colors">Best Buy</a></h3><span class="text-muted shrink-0 text-xs">2010 — 2013</span></div><p class="text-muted text-sm">Software Engineer</p><p class="mt-1 text-sm leading-relaxed">Built real-time metrics tooling in C# and PHP for the remote IT support department, winning the Chairman&#x27;s Award for Innovation.</p></div></article><article class="flex gap-4"><div class="border-border bg-surface relative size-12 shrink-0 overflow-hidden rounded-lg border"><div aria-hidden="true" class="text-muted/40 flex h-full items-center justify-center text-lg font-semibold">A</div></div><div class="min-w-0"><div class="flex items-baseline justify-between gap-3"><h3 class="font-medium">Amazon Biotechnology Center</h3><span class="text-muted shrink-0 text-xs">2008 — 2009</span></div><p class="text-muted text-sm">Software Engineer</p><p class="mt-1 text-sm leading-relaxed">Built the center&#x27;s research-management intranet on a custom PHP MVC framework, including a data scraper with community voting for the landing page.</p></div></article></div></section></div><!--$--><!--/$--></main><footer class="border-border mt-16 border-t"><div class="text-muted mx-auto w-full max-w-3xl px-6 py-8 text-sm"><p>© <!-- -->2026<!-- --> Elle Pereira</p></div></footer>
1<script src="/_next/static/chunks/3ll07n217cgxf.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[63178,[\"/_next/static/chunks/2mjhq8j8vall3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ThemeProvider\"]\n3:I[22016,[\"/_next/static/chunks/2mjhq8j8vall3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"\"]\n4:I[93539,[\"/_next/static/chunks/2mjhq8j8vall3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ThemeToggle\"]\n5:I[39756,[\"/_next/static/chunks/2mjhq8j8vall3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/2mjhq8j8vall3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n7:I[5500,[\"/_next/static/chunks/2mjhq8j8vall3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/3-9v5llyj1vf9.js\"],\"Image\"]\n10:I[68027,[\"/_next/static/chunks/2mjhq8j8vall3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/18awkz15dip51.css\",\"style\"]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"work\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"work\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/18awkz15dip51.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2mjhq8j8vall3.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14mrh2-p_w84d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"bg-background text-foreground flex min-h-screen flex-col font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[[\"$\",\"header\",null,{\"className\":\"border-border border-b\",\"children\":[\"$\",\"nav\",null,{\"className\":\"mx-auto flex w-full max-w-3xl items-center justify-between px-6 py-5\",\"children\":[[\"$\",\"$L3\",null,{\"href\":\"/\",\"className\":\"font-medium tracking-tight\",\"children\":\"Elle Pereira\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-6\",\"children\":[[\"$\",\"ul\",null,{\"className\":\"flex gap-6 text-sm\",\"children\":[[\"$\",\"li\",\"/work\",{\"children\":[\"$\",\"$L3\",null,{\"href\":\"/work\",\"className\":\"text-muted hover:text-foreground transition-colors\",\"children\":\"Work\"}]}],[\"$\",\"li\",\"/blog\",{\"children\":[\"$\",\"$L3\",null,{\"href\":\"/blog\",\"className\":\"text-muted hover:text-foreground transition-colors\",\"children\":\"Writing\"}]}],[\"$\",\"li\",\"/about\",{\"children\":[\"$\",\"$L3\",null,{\"href\":\"/about\",\"className\":\"text-muted hover:text-foreground transition-colors\",\"children\":\"About\"}]}]]}],[\"$\",\"$L4\",null,{}]]}]]}]}],[\"$\",\"main\",null,{\"className\":\"mx-auto w-full max-w-3xl flex-1 px-6 py-12\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"border-border mt-16 border-t\",\"children\":[\"$\",\"div\",null,{\"className\":\"text-muted mx-auto w-full max-w-3xl px-6 py-8 text-sm\",\"children\":[\"$\",\"p\",null,{\"children\":[\"© \",2026,\" Elle Pereira\"]}]}]}]]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"space-y-14\",\"children\":[[\"$\",\"section\",null,{\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-2xl font-medium tracking-tight\",\"children\":\"Work\"}],[[\"$\",\"h2\",null,{\"className\":\"mt-8 mb-6 text-sm font-medium\",\"children\":\"Projects\"}],[\"$\",\"div\",null,{\"className\":\"grid gap-8 sm:grid-cols-2\",\"children\":[[\"$\",\"article\",\"project-celeste\",{\"className\":\"flex flex-col gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-border bg-surface relative aspect-[16/10] overflow-hidden rounded-xl border\",\"children\":[\"$\",\"$L7\",null,{\"src\":\"/projects/celeste.png\",\"alt\":\"Project Celeste screenshot\",\"fill\":true,\"sizes\":\"(min-width: 640px) 50vw, 100vw\",\"className\":\"object-cover\"}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between gap-3\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-medium\",\"children\":\"Project Celeste\"}],[\"$\",\"span\",null,{\"className\":\"text-muted shrink-0 text-xs\",\"children\":\"2016 — present\"}]]}],\"$L8\",\"$L9\"]}]]}],\"$La\"]}]]]}],\"$Lb\"]}],[\"$Lc\"],\"$Ld\"]}],{}
1,null,false,null]},null,false,\"$@e\"]},null,false,null],\"$Lf\",false]],\"m\":\"$undefined\",\"G\":[\"$10\",[\"$L11\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"qsYycwMIEkIvz5h9UBVz1\"}\n"])</script>
1<script>self.__next_f.push([1,"16:I[97367,[\"/_next/static/chunks/2mjhq8j8vall3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"OutletBoundary\"]\n17:\"$Sreact.suspense\"\n1a:I[97367,[\"/_next/static/chunks/2mjhq8j8vall3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ViewportBoundary\"]\n1c:I[97367,[\"/_next/static/chunks/2mjhq8j8vall3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"MetadataBoundary\"]\n8:[\"$\",\"p\",null,{\"className\":\"text-muted mt-1 text-sm leading-relaxed\",\"children\":\"Community effort that resurrected Age of Empires Online after its shutdown. Leads a 30-person global team building a C# game server supporting thousands of concurrent players.\"}]\n9:[\"$\",\"div\",null,{\"className\":\"mt-2 flex flex-wrap gap-4\",\"children\":[[\"$\",\"a\",\"https://projectceleste.com\",{\"href\":\"https://projectceleste.com\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"text-accent text-sm hover:underline\",\"children\":\"Project\"}],[\"$\",\"a\",\"https://github.com/ellepereira/aoeo\",{\"href\":\"https://github.com/ellepereira/aoeo\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"text-accent text-sm hover:underline\",\"children\":\"AoEO tools\"}]]}]\na:[\"$\",\"article\",\"file-upload-vue\",{\"className\":\"flex flex-col gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-border bg-surface relative aspect-[16/10] overflow-hidden rounded-xl border\",\"children\":[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"text-muted/40 flex h-full items-center justify-center text-5xl font-semibold\",\"children\":\"F\"}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between gap-3\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-medium\",\"children\":\"File Upload SVG Animation\"}],null]}],[\"$\",\"p\",null,{\"className\":\"text-muted mt-1 text-sm leading-relaxed\",\"children\":\"A file-upload workflow prototype exploring how SVG animation shapes perceived performance. Built with Vue.js.\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 flex flex-wrap gap-4\",\"children\":[[\"$\",\"a\",\"https://github.com/ellepereira/file-upload-vue\",{\"href\":\"https://github.com/ellepereira/file-upload-vue\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"text-accent text-sm hover:underline\",\"children\":\"GitHub\"}]]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"b:[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-6 text-sm font-medium\",\"children\":\"Experience\"}],[\"$\",\"div\",null,{\"className\":\"space-y-8\",\"children\":[[\"$\",\"article\",\"StyleSeat\",{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-border bg-surface relative size-12 shrink-0 overflow-hidden rounded-lg border\",\"children\":[\"$\",\"$L7\",null,{\"src\":\"/work/styleseat.png\",\"alt\":\"StyleSeat logo\",\"fill\":true,\"sizes\":\"48px\",\"className\":\"object-contain p-1.5\"}]}],[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between gap-3\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-medium\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.styleseat.com\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"hover:text-accent transition-colors\",\"children\":\"StyleSeat\"}]}],[\"$\",\"span\",null,{\"className\":\"text-muted shrink-0 text-xs\",\"children\":\"2019 — present\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-muted text-sm\",\"children\":\"Senior Software Engineer II — Frontend Architecture\"}],[\"$\",\"p\",null,{\"className\":\"mt-1 text-sm leading-relaxed\",\"children\":\"Led the frontend architecture behind StyleSeat's design system and its multi-year migration off AngularJS to React and TypeScript, plus the Next.js SSR infrastructure serving its high-traffic, SEO-sensitive pages.\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 flex flex-wrap gap-4\",\"children\":[[\"$\",\"a\",\"https://medium.com/@styleseat-engineering/uniting-react-router-and-angulars-ui-router-e94d43954468\",{\"href\":\"https://medium.com/@styleseat-engineering/uniting-react-router-and-angulars-ui-router-e94d43954468\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"text-accent text-sm hover:underline\",\"children\":\"Blog post\"}]]}]]}]]}],[\"$\",\"article\",\"Maestro Healthcare Technologies\",{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-border bg-surface relative size-12 shrink-0 overflow-hidden rounded-lg border\",\"children\":[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"text-muted/40 flex h-full items-center justify-center text-lg font-semibold\",\"children\":\"M\"}]}],[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between gap-3\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-medium\",\"children\":\"Maestro Healthcare Technologies\"}],[\"$\",\"span\",null,{\"className\":\"text-muted shrink-0 text-xs\",\"children\":\"2013 — 2019\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-muted text-sm\",\"children\":\"Senior Software Engineer / Software Architect\"}],[\"$\",\"p\",null,{\"className\":\"mt-1 text-sm leading-relaxed\",\"children\":\"Architected a HIPAA-compliant benefits administration platform in Vue.js, AngularJS, and Angular 2+, leading teams of up to seven engineers across parallel projects.\"}],null]}]]}],[\"$\",\"article\",\"Famedays\",{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-border bg-surface relative size-12 shrink-0 overflow-hidden rounded-lg border\",\"children\":[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"text-muted/40 flex h-full items-center justify-center text-lg font-semibold\",\"children\":\"F\"}]}],[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between gap-3\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-medium\",\"children\":\"Famedays\"}],[\"$\",\"span\",null,{\"className\":\"text-muted shrink-0 text-xs\",\"children\":\"2012 — 2013\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-muted text-sm\",\"children\":\"Full Stack Engineer\"}],[\"$\",\"p\",null,{\"className\":\"mt-1 text-sm leading-relaxed\",\"children\":\"Built a Node.js pipeline ingesting millions of Instagram and Twitter posts in real time, with an AngularJS front end and an Ionic-based mobile app sharing the same codebase.\"}],null]}]]}],[\"$\",\"article\",\"Best Buy\",{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-border bg-surface relative size-12 shrink-0 overflow-hidden rounded-lg border\",\"children\":[\"$\",\"$L7\",null,{\"src\":\"/work/bestbuy.png\",\"alt\":\"Best Buy logo\",\"fill\":true,\"sizes\":\"48px\",\"className\":\"object-contain p-1.5\"}]}],[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[\"$L12\",\"$L13\",\"$L14\",null]}]]}],\"$L15\"]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"c:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3-9v5llyj1vf9.js\",\"async\":true,\"nonce\":\"$undefined\"}]\nd:[\"$\",\"$L16\",null,{\"children\":[\"$\",\"$17\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@18\"}]}]\n19:[]\ne:\"$W19\"\nf:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1a\",null,{\"children\":\"$L1b\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1c\",null,{\"children\":[\"$\",\"$17\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1d\"}]}]}],null]}]\n11:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/18awkz15dip51.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script>
1<script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between gap-3\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-medium\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.bestbuy.com\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"hover:text-accent transition-colors\",\"children\":\"Best Buy\"}]}],[\"$\",\"span\",null,{\"className\":\"text-muted shrink-0 text-xs\",\"children\":\"2010 — 2013\"}]]}]\n13:[\"$\",\"p\",null,{\"className\":\"text-muted text-sm\",\"children\":\"Software Engineer\"}]\n14:[\"$\",\"p\",null,{\"className\":\"mt-1 text-sm leading-relaxed\",\"children\":\"Built real-time metrics tooling in C# and PHP for the remote IT support department, winning the Chairman's Award for Innovation.\"}]\n15:[\"$\",\"article\",\"Amazon Biotechnology Center\",{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-border bg-surface relative size-12 shrink-0 overflow-hidden rounded-lg border\",\"children\":[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"text-muted/40 flex h-full items-center justify-center text-lg font-semibold\",\"children\":\"A\"}]}],[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between gap-3\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-medium\",\"children\":\"Amazon Biotechnology Center\"}],[\"$\",\"span\",null,{\"className\":\"text-muted shrink-0 text-xs\",\"children\":\"2008 — 2009\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-muted text-sm\",\"children\":\"Software Engineer\"}],[\"$\",\"p\",null,{\"className\":\"mt-1 text-sm leading-relaxed\",\"children\":\"Built the center's research-management intranet on a custom PHP MVC framework, including a data scraper with community voting for the landing page.\"}],null]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
1<script>self.__next_f.push([1,"18:null\n1d:[[\"$\",\"title\",\"0\",{\"children\":\"Work · Elle Pereira\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Selected projects and professional experience, Elle Pereira.\"}]]\n"])</script>
1</body></html>

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.