PageSourceSearch

https://ttod-dev.vercel.app/resume

html ttod-dev.vercel.app collected 2026-10-03 07:54:39 UTC 16,981 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="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/7cbdb7ac9f856336.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-f6456a514cc941ef.js"/>
1<script src="/_next/static/chunks/fd9d1056-e3680af195b857b1.js" async=""></script>
1<script src="/_next/static/chunks/23-f1d18e12607b573b.js" async=""></script>
1<script src="/_next/static/chunks/main-app-f73cdb3bce740b12.js" async=""></script>
1<script src="/_next/static/chunks/8e1d74a4-7db5b98a9c3bb9fd.js" async=""></script>
1<script src="/_next/static/chunks/30a37ab2-56e5c58e1401a86f.js" async=""></script>
1<script src="/_next/static/chunks/a0f462e1-b9564803991dc02f.js" async=""></script>
1<script src="/_next/static/chunks/635-2d38995b8444cb0a.js" async=""></script>
1<script src="/_next/static/chunks/504-20df1a5a7fe91f63.js" async=""></script>
1<script src="/_next/static/chunks/533-56e58da014d7c5f4.js" async=""></script>
1<script src="/_next/static/chunks/727-6ba64cf065e49ff8.js" async=""></script>
1<script src="/_next/static/chunks/app/resume/page-2a4885476308e0fa.js" async=""></script>
1<script src="/_next/static/chunks/231-f1a83046d59487e5.js" async=""></script>
1<script src="/_next/static/chunks/218-5d63338e6a8bc283.js" async=""></script>
1<script src="/_next/static/chunks/app/page-440959018122a997.js" async=""></script>
1<script src="/_next/static/chunks/5e22fd23-e76aa9e72758504b.js" async=""></script>
1<script src="/_next/static/chunks/e34aaff9-13e912b2c32c0724.js" async=""></script>
1<script src="/_next/static/chunks/730-e34b8d3426b45841.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-c1695ed5a8fd1359.js" async=""></script>
1<title>Teodor Todorov | Web Developer Portfolio</title><meta name="description" content="Explore the portfolio of Teodor Todorov, a full-stack web developer specializing in modern, responsive web applications. View services, skills, and contact information."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="16x16"/><meta name="next-size-adjust"/>
1<script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script>
1</head><body class="__className_c5dbd7"><header class="py-8 xl:py-12 text-white bg-pink-50/20 mb-2"><div class="container mx-auto flex justify-between items-center"><a href="/"><h1 class="text-4xl font-semibold">TTod<span class="text-orange-400">.</span></h1></a><div class="hidden xl:flex items-center gap-8"><nav class="flex gap-8"><a class="false capitalize font-medium hover:text-orange-400 transition-all" href="/">home</a><a class="false capitalize font-medium hover:text-orange-400 transition-all" href="/services">services</a><a class="text-orange-400 border-b-2 border-orange-400 capitalize font-medium hover:text-orange-400 transition-all" href="/resume">resume</a><a class="false capitalize font-medium hover:text-orange-400 transition-all" href="/contact">contact</a></nav><a href="/contact"><button class="inline-flex items-center justify-center whitespace-nowrap rounded-full text-base font-semibold ring-offset-white transition-colors bg-accent text-primary hover:bg-accent-hover h-[44px] px-6">Hire me</button></a></div><div class="xl:hidden"><button type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-:R3ba:" data-state="closed" class="flex justify-center items-center"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="text=[32px] text-orange-400" style="font-size:32px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><g id="Menu_Fries"><path d="M20.437,19.937c0.276,0 0.5,0.224 0.5,0.5c0,0.276 -0.224,0.5 -0.5,0.5l-16.874,0.002c-0.276,-0 -0.5,-0.224 -0.5,-0.5c-0,-0.276 0.224,-0.5 0.5,-0.5l16.874,-0.002Z"></path><path d="M20.437,11.5c0.276,-0 0.5,0.224 0.5,0.5c0,0.276 -0.224,0.5 -0.5,0.5l-10,0.001c-0.276,-0 -0.5,-0.224 -0.5,-0.5c-0,-0.276 0.224,-0.5 0.5,-0.5l10,-0.001Z"></path><path d="M20.437,3.062c0.276,-0 0.5,0.224 0.5,0.5c0,0.276 -0.224,0.5 -0.5,0.5l-16.874,0.001c-0.276,-0 -0.5,-0.224 -0.5,-0.5c-0,-0.276 0.224,-0.5 0.5,-0.5l16.874,-0.001Z"></path></g></svg></button></div></div></header><div><div class="h-screen w-screen fixed bg-primary top-0 pointer-events-none" style="opacity:1;will-change:opacity"></div><div class="min-h-[80vh] flex items-center justify-center py-12 xl:py-0 " style="opacity:0;will-change:opacity"><div class="container mx-auto"><div dir="ltr" data-orientation="horizontal" class="flex flex-col xl:flex-row gap-[60px]"><div role="tablist" aria-orientation="horizontal" class="h-auto rounded-md p-1 text-primary flex flex-col w-full max-w-[380px] mx-auto xl:mx-0 gap-6" tabindex="-1" data-orientation="horizontal" style="outline:none"><button type="button" role="tab" aria-selected="true" aria-controls="radix-:Rkvfbja:-content-about" data-state="active" id="radix-:Rkvfbja:-trigger-about" class="inline-flex items-center w-full bg-[#27272c] justify-center whitespace-nowrap text-white rounded-lg p-3 text-balance font-medium ring-offset-white transition-all disabled:pointer-events-none disabled:opacity-50 text-base cursor-pointer hover:bg-accent hover:text-gray-700 data-[state=active]:bg-accent data-[state=active]:text-primary data-[state=active]:font-bold data-[state=active]:shadow-sm" tabindex="-1" data-orientation="horizontal" data-radix-collection-item="">About me</button><button type="button" role="tab" aria-selected="false" aria-controls="radix-:Rkvfbja:-content-skills" data-state="inactive" id="radix-:Rkvfbja:-trigger-skills" class="inline-flex items-center w-full bg-[#27272c] justify-center whitespace-nowrap text-white rounded-lg p-3 text-balance font-medium ring-offset-white transition-all disabled:pointer-events-none disabled:opacity-50 text-base cursor-pointer hover:bg-accent hover:text-gray-700 data-[state=active]:bg-accent data-[state=active]:text-primary data-[state=active]:font-bold data-[state=active]:shadow-sm" tabindex="-1" data-orientation="horizontal" data-radix-collection-item="">Skills</button></div><div class="min-h-[70vh] w-full"><div data-state="active" data-orientation="horizontal" role="tabpanel" aria-labelledby="radix-:Rkvfbja:-trigger-about" id="radix-:Rkvfbja:-content-about" tabindex="0" class="min-h-[480px] ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-950 focus-visible:ring-offset-2 dark:ring-offset-slate-950 dar
1k:focus-visible:ring-slate-300 w-full text-center xl:text-left" style="animation-duration:0s"><div class="flex flex-col gap-[30px]"><h3 class="text-4xl font-bold">About me</h3><p class="max-w-[600px] text-white/60 mx-auto xl:mx-0 ">I’m a Senior Frontend &amp; Full-Stack Developer with strong experience building scalable, maintainable, and user-focused web applications. My core expertise is in Angular, React, TypeScript, Node.js, and modern full-stack development. I focus on clean architecture, performance, reusable solutions, and reliable integrations, with an emphasis on delivering high-quality software that solves real business needs.</p><ul class="grid grid-cols-1 xl:grid-cols-2 gap-y-6 max-w-[620px] mx-auto xl:mx-0"><li class="grid grid-cols-[auto,1fr] gap-4 items-center"><span class="text-white/60">Name</span><span class="text-xl xl:min-w-[313px]">Teodor Todorov</span></li><li class="grid grid-cols-[auto,1fr] gap-4 items-center"><span class="text-white/60">Phone</span><span class="text-xl xl:min-w-[313px]">(+359) 883 474 455</span></li><li class="grid grid-cols-[auto,1fr] gap-4 items-center"><span class="text-white/60">Experience</span><span class="text-xl xl:min-w-[313px]">5+ Years</span></li><li class="grid grid-cols-[auto,1fr] gap-4 items-center"><span class="text-white/60">Email</span><span class="text-xl xl:min-w-[313px]">[email protected]</span></li><li class="grid grid-cols-[auto,1fr] gap-4 items-center"><span class="text-white/60">Freelance</span><span class="text-xl xl:min-w-[313px]">Available</span></li><li class="grid grid-cols-[auto,1fr] gap-4 items-center"><span class="text-white/60">Languages</span><span class="text-xl xl:min-w-[313px]">Bulgarian, English, German</span></li></ul></div></div><div data-state="inactive" data-orientation="horizontal" role="tabpanel" aria-labelledby="radix-:Rkvfbja:-trigger-skills" hidden="" id="radix-:Rkvfbja:-content-skills" tabindex="0" class="min-h-[480px] ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-950 focus-visible:ring-offset-2 dark:ring-offset-slate-950 dark:focus-visible:ring-slate-300 w-full h-full"></div></div></div></div></div></div><div><div class="h-screen w-screen fixed top-0 left-0 right-0 pointer-events-none z-40 flex"><div class="h-full w-full bg-white relative" style="top:0%"></div><div class="h-full w-full bg-white relative" style="top:0%"></div><div class="h-full w-full bg-white relative" style="top:0%"></div><div class="h-full w-full bg-white relative" style="top:0%"></div><div class="h-full w-full bg-white relative" style="top:0%"></div><div class="h-full w-full bg-white relative" style="top:0%"></div></div><div class="h-screen w-screen fixed bg-primary top-0 pointer-events-none" style="opacity:1;will-change:opacity"></div></div>
1<script src="/_next/static/chunks/webpack-f6456a514cc941ef.js" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script>
1<script>self.__next_f.push([1,"1:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/css/7cbdb7ac9f856336.css\",\"style\"]\n"])</script>
1<script>self.__next_f.push([1,"3:I[5751,[],\"\"]\n5:I[6513,[],\"ClientPageRoot\"]\n6:I[1211,[\"699\",\"static/chunks/8e1d74a4-7db5b98a9c3bb9fd.js\",\"957\",\"static/chunks/30a37ab2-56e5c58e1401a86f.js\",\"44\",\"static/chunks/a0f462e1-b9564803991dc02f.js\",\"635\",\"static/chunks/635-2d38995b8444cb0a.js\",\"504\",\"static/chunks/504-20df1a5a7fe91f63.js\",\"533\",\"static/chunks/533-56e58da014d7c5f4.js\",\"727\",\"static/chunks/727-6ba64cf065e49ff8.js\",\"890\",\"static/chunks/app/resume/page-2a4885476308e0fa.js\"],\"default\"]\n7:I[9275,[],\"\"]\n8:I[1343,[],\"\"]\n9:I[231,[\"635\",\"static/chunks/635-2d38995b8444cb0a.js\",\"231\",\"static/chunks/231-f1a83046d59487e5.js\",\"218\",\"static/chunks/218-5d63338e6a8bc283.js\",\"931\",\"static/chunks/app/page-440959018122a997.js\"],\"\"]\na:I[6153,[\"452\",\"static/chunks/5e22fd23-e76aa9e72758504b.js\",\"994\",\"static/chunks/e34aaff9-13e912b2c32c0724.js\",\"635\",\"static/chunks/635-2d38995b8444cb0a.js\",\"504\",\"static/chunks/504-20df1a5a7fe91f63.js\",\"231\",\"static/chunks/231-f1a83046d59487e5.js\",\"533\",\"static/chunks/533-56e58da014d7c5f4.js\",\"730\",\"static/chunks/730-e34b8d3426b45841.js\",\"185\",\"static/chunks/app/layout-c1695ed5a8fd1359.js\"],\"default\"]\nb:I[7702,[\"452\",\"static/chunks/5e22fd23-e76aa9e72758504b.js\",\"994\",\"static/chunks/e34aaff9-13e912b2c32c0724.js\",\"635\",\"static/chunks/635-2d38995b8444cb0a.js\",\"504\",\"static/chunks/504-20df1a5a7fe91f63.js\",\"231\",\"static/chunks/231-f1a83046d59487e5.js\",\"533\",\"static/chunks/533-56e58da014d7c5f4.js\",\"730\",\"static/chunks/730-e34b8d3426b45841.js\",\"185\",\"static/chunks/app/layout-c1695ed5a8fd1359.js\"],\"default\"]\nc:I[6073,[\"452\",\"static/chunks/5e22fd23-e76aa9e72758504b.js\",\"994\",\"static/chunks/e34aaff9-13e912b2c32c0724.js\",\"635\",\"static/chunks/635-2d38995b8444cb0a.js\",\"504\",\"static/chunks/504-20df1a5a7fe91f63.js\",\"231\",\"static/chunks/231-f1a83046d59487e5.js\",\"533\",\"static/chunks/533-56e58da014d7c5f4.js\",\"730\",\"static/chunks/730-e34b8d3426b45841.js\",\"185\",\"static/chunks/app/layout-c1695ed5a8fd1359.js\"],\"default\"]\nd:I[1050,[\"452\",\"static/chunks/5e22fd23-e76aa9e72758504b.js\",\"994\",\"static/chunks/e34aaff9-13e912b2c32c0724.js\",\"635\",\"static/chun"])</script>
1<script>self.__next_f.push([1,"ks/635-2d38995b8444cb0a.js\",\"504\",\"static/chunks/504-20df1a5a7fe91f63.js\",\"231\",\"static/chunks/231-f1a83046d59487e5.js\",\"533\",\"static/chunks/533-56e58da014d7c5f4.js\",\"730\",\"static/chunks/730-e34b8d3426b45841.js\",\"185\",\"static/chunks/app/layout-c1695ed5a8fd1359.js\"],\"default\"]\nf:I[6130,[],\"\"]\n10:[]\n"])</script>
1<script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7cbdb7ac9f856336.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L3\",null,{\"buildId\":\"lYdeBMq9WihVEDPJViv5p\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/resume\",\"initialTree\":[\"\",{\"children\":[\"resume\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"resume\",{\"children\":[\"__PAGE__\",{},[[\"$L4\",[\"$\",\"$L5\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$6\"}]],null],null]},[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"resume\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_c5dbd7\",\"children\":[[\"$\",\"header\",null,{\"className\":\"py-8 xl:py-12 text-white bg-pink-50/20 mb-2\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto flex justify-between items-center\",\"children\":[[\"$\",\"$L9\",null,{\"href\":\"/\",\"children\":[\"$\",\"h1\",null,{\"className\":\"text-4xl font-semibold\",\"children\":[\"TTod\",[\"$\",\"span\",null,{\"className\":\"text-orange-400\",\"children\":\".\"}]]}]}],[\"$\",\"div\",null,{\"className\":\"hidden xl:flex items-center gap-8\",\"children\":[[\"$\",\"$La\",null,{}],[\"$\",\"$L9\",null,{\"href\":\"/contact\",\"children\":[\"$\",\"button\",null,{\"className\":\"inline-flex items-center justify-center whitespace-nowrap rounded-full text-base font-semibold ring-offset-white transition-colors bg-accent text-primary hover:bg-accent-hover h-[44px] px-6\",\"children\":\"Hire me\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"xl:hidden\",\"children\":[\"$\",\"$Lb\",null,{}]}]]}]}],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",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.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}],[\"$\",\"$Ld\",null,{}]]}]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Le\"],\"globalErrorComponent\":\"$f\",\"missingSlots\":\"$W10\"}]]\n"])</script>
1<script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Teodor Todorov | Web Developer Portfolio\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Explore the portfolio of Teodor Todorov, a full-stack web developer specializing in modern, responsive web applications. View services, skills, and contact information.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"meta\",\"5\",{\"name\":\"next-size-adjust\"}]]\n4:null\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.