Help
RSS
API
Feed
Maltego
Contact
Domain > davidwellsthedeveloper.com
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-07-13
18.66.255.39
(
ClassC
)
2025-12-09
3.163.115.26
(
ClassC
)
2025-12-18
3.163.24.37
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Thu, 18 Dec 2025 20:18:27 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://davidwellsthedeveloper.com/X-Cache: Redirect from cloudfrontVia: 1.1 2f64e28be83a9bbc21e5afb1a93fec2c.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P2X-Amz-Cf-Id: hxUBEZNSuzOaKl-cOMBuYwO9kdI2aYr6OrnZmlALnF3meF7n9mQirA html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 142570Connection: keep-aliveDate: Thu, 18 Dec 2025 20:18:28 GMTLast-Modified: Sat, 15 Nov 2025 18:46:05 GMTETag: f11e9a4fbb73d30f41e890f5bebf270cServer: AmazonS3X-Cache: Miss from cloudfrontVia: 1.1 ac695892d6ed07904483819bdb88134e.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P2X-Amz-Cf-Id: VkkOMgn-P0wiQRSuexinRwzMnN8hCACnE_9lVhjI3oZuyGrXmzyI3Q !DOCTYPE html>html langen>head>meta charsetutf-8>meta nameviewport contentwidthdevice-width, initial-scale1>script typeimportmap>{imports:{#entry:/_nuxt/A3XNoKTE.js}}/script>title>Dave Wells - Professional Digital Resume/title>style>*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where(title){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where(typebutton),input:where(typereset),input:where(typesubmit){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}typesearch{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}rolebutton,button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}hidden:where(:not(hiddenuntil-found)){display:none}.container{width:100%}@media (min-width:475px){.container{max-width:475px}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-left-8{left:-2rem}.bottom-0{bottom:0}.left-8{left:2rem}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.top-6{top:1.5rem}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-10{margin-left:2.5rem}.ml-16{margin-left:4rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-96{height:24rem}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-2{width:.5rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.translate-x-1{--tw-translate-x:.25rem}.rotate-180,.translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.space-x-2>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-4>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-1>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-xl{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-blue-100{--tw-border-opacity:1;border-color:rgb(219 234 254/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-purple-100{--tw-border-opacity:1;border-color:rgb(243 232 255/var(--tw-border-opacity,1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-slate-700\/50{border-color:#33415580}.border-transparent{border-color:#0000}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-slate-700{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-slate-900\/20{background-color:#0f172a33}.bg-slate-900\/80{background-color:#0f172acc}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-200{--tw-gradient-from:#bfdbfe var(--tw-gradient-from-position);--tw-gradient-to:#bfdbfe00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-400\/20{--tw-gradient-from:#60a5fa33 var(--tw-gradient-from-position);--tw-gradient-to:#60a5fa00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-50{--tw-gradient-from:#eff6ff var(--tw-gradient-from-position);--tw-gradient-to:#eff6ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:#3b82f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-600{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:#2563eb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-600\/10{--tw-gradient-from:#2563eb1a var(--tw-gradient-from-position);--tw-gradient-to:#2563eb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-cyan-600{--tw-gradient-from:#0891b2 var(--tw-gradient-from-position);--tw-gradient-to:#0891b200 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gray-50{--tw-gradient-from:#f9fafb var(--tw-gradient-from-position);--tw-gradient-to:#f9fafb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gray-900{--tw-gradient-from:#111827 var(--tw-gradient-from-position);--tw-gradient-to:#11182700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-50{--tw-gradient-from:#faf5ff var(--tw-gradient-from-position);--tw-gradient-to:#faf5ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:#9333ea00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-50{--tw-gradient-from:#f8fafc var(--tw-gradient-from-position);--tw-gradient-to:#f8fafc00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-800{--tw-gradient-from:#1e293b var(--tw-gradient-from-position);--tw-gradient-to:#1e293b00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from:#0f172a var(--tw-gradient-from-position);--tw-gradient-to:#0f172a00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-transparent{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-white{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-blue-100{--tw-gradient-to:#dbeafe00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#dbeafe var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-blue-300{--tw-gradient-to:#93c5fd00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#93c5fd var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-blue-50{--tw-gradient-to:#eff6ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#eff6ff var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-blue-900{--tw-gradient-to:#1e3a8a00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#1e3a8a var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-gray-50{--tw-gradient-to:#f9fafb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#f9fafb var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-slate-50{--tw-gradient-to:#f8fafc00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#f8fafc var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-slate-900\/20{--tw-gradient-to:#0f172a00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#0f172a33 var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-blue-200{--tw-gradient-to:#bfdbfe var(--tw-gradient-to-position)}.to-blue-50{--tw-gradient-to:#eff6ff var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-blue-700{--tw-gradient-to:#1d4ed8 var(--tw-gradient-to-position)}.to-cyan-400\/20{--tw-gradient-to:#22d3ee33 var(--tw-gradient-to-position)}.to-gray-100{--tw-gradient-to:#f3f4f6 var(--tw-gradient-to-position)}.to-gray-50{--tw-gradient-to:#f9fafb var(--tw-gradient-to-position)}.to-gray-700{--tw-gradient-to:#374151 var(--tw-gradient-to-position)}.to-indigo-50{--tw-gradient-to:#eef2ff var(--tw-gradient-to-position)}.to-indigo-600{--tw-gradient-to:#4f46e5 var(--tw-gradient-to-position)}.to-pink-50{--tw-gradient-to:#fdf2f8 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)}.to-purple-600\/10{--tw-gradient-to:#9333ea1a var(--tw-gradient-to-position)}.to-slate-100{--tw-gradient-to:#f1f5f9 var(--tw-gradient-to-position)}.to-slate-50{--tw-gradient-to:#f8fafc var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to:#1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to:#0f172a var(--tw-gradient-to-position)}.to-slate-900\/40{--tw-gradient-to:#0f172a66 var(--tw-gradient-to-position)}.to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-3{padding-bottom:.75rem}.pb-6{padding-bottom:1.5rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.text-blue-100{--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-cyan-100{--tw-text-opacity:1;color:rgb(207 250 254/var(--tw-text-opacity,1))}.text-cyan-400{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-purple-100{--tw-text-opacity:1;color:rgb(243 232 255/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-transparent{color:#0000}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-75{opacity:.75}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-sm,.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-200{transition-delay:.2s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.hover\:-translate-y-1:hover{--tw-translate-y:-.25rem}.hover\:-translate-y-1:hover,.hover\:-translate-y-2:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-2:hover{--tw-translate-y:-.5rem}.hover\:border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-slate-300:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:from-blue-700:hover{--tw-gradient-from:#1d4ed8 var(--tw-gradient-from-position);--tw-gradient-to:#1d4ed800 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:from-gray-100:hover{--tw-gradient-from:#f3f4f6 var(--tw-gradient-from-position);--tw-gradient-to:#f3f4f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:to-blue-800:hover{--tw-gradient-to:#1e40af var(--tw-gradient-to-position)}.hover\:to-gray-200:hover{--tw-gradient-to:#e5e7eb var(--tw-gradient-to-position)}.hover\:text-blue-400:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.hover\:text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.hover\:text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:shadow-lg:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus,.focus\:ring-4:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-4:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-blue-500\/50:focus{--tw-ring-color:#3b82f680}.focus\:ring-slate-300\/50:focus{--tw-ring-color:#cbd5e180}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:translate-x-1{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:640px){.sm\:mt-0{margin-top:0}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-24{padding-bottom:6rem;padding-top:6rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}}@media (min-width:768px){.md\:block{display:block}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:py-24{padding-bottom:6rem;padding-top:6rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-7xl{font-size:4.5rem;line-height:1}}@media (prefers-color-scheme:dark){.dark\:border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.dark\:border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.dark\:border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.dark\:bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:bg-blue-900\/20{background-color:#1e3a8a33}.dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:from-blue-800{--tw-gradient-from:#1e40af var(--tw-gradient-from-position);--tw-gradient-to:#1e40af00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-blue-900\/20{--tw-gradient-from:#1e3a8a33 var(--tw-gradient-from-position);--tw-gradient-to:#1e3a8a00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-gray-800{--tw-gradient-from:#1f2937 var(--tw-gradient-from-position);--tw-gradient-to:#1f293700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-gray-900{--tw-gradient-from:#111827 var(--tw-gradient-from-position);--tw-gradient-to:#11182700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-purple-900\/20{--tw-gradient-from:#581c8733 var(--tw-gradient-from-position);--tw-gradient-to:#581c8700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-slate-800{--tw-gradient-from:#1e293b var(--tw-gradient-from-position);--tw-gradient-to:#1e293b00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-slate-900{--tw-gradient-from:#0f172a var(--tw-gradient-from-position);--tw-gradient-to:#0f172a00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-white{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:via-blue-700{--tw-gradient-to:#1d4ed800 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#1d4ed8 var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-blue-900{--tw-gradient-to:#1e3a8a00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#1e3a8a var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-gray-800{--tw-gradient-to:#1f293700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#1f2937 var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-slate-800{--tw-gradient-to:#1e293b00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#1e293b var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:to-blue-300{--tw-gradient-to:#93c5fd var(--tw-gradient-to-position)}.dark\:to-blue-800{--tw-gradient-to:#1e40af var(--tw-gradient-to-position)}.dark\:to-blue-900{--tw-gradient-to:#1e3a8a var(--tw-gradient-to-position)}.dark\:to-gray-200{--tw-gradient-to:#e5e7eb var(--tw-gradient-to-position)}.dark\:to-gray-700{--tw-gradient-to:#374151 var(--tw-gradient-to-position)}.dark\:to-gray-900{--tw-gradient-to:#111827 var(--tw-gradient-to-position)}.dark\:to-indigo-900\/20{--tw-gradient-to:#312e8133 var(--tw-gradient-to-position)}.dark\:to-pink-900\/20{--tw-gradient-to:#83184333 var(--tw-gradient-to-position)}.dark\:to-slate-900{--tw-gradient-to:#0f172a var(--tw-gradient-to-position)}.dark\:text-blue-200{--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.dark\:text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.dark\:text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:hover\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.dark\:hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:hover\:from-gray-700:hover{--tw-gradient-from:#374151 var(--tw-gradient-from-position);--tw-gradient-to:#37415100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:hover\:to-gray-600:hover{--tw-gradient-to:#4b5563 var(--tw-gradient-to-position)}.dark\:hover\:text-blue-300:hover{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:hover\:text-blue-400:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}}/style>style>:root{--primary:100 116 139;--primary-container:241 245 249;--on-primary:255 255 255;--on-primary-container:15 23 42;--secondary:238 111 30;--secondary-container:253 236 214;--on-secondary:255 255 255;--on-secondary-container:118 66 18;--surface:255 255 255;--surface-container:250 250 250;--surface-container-low:245 245 245;--surface-container-high:229 229 229;--on-surface:23 23 23;--on-surface-variant:115 115 115;--background:255 255 255;--on-background:23 23 23;--outline:212 212 212;--outline-variant:229 229 229;--success:34 197 94;--error:239 68 68;--warning:245 158 11;--info:59 130 246;--shadow:0 0 0;--scrim:0 0 0}@media (prefers-color-scheme:dark){:root{--primary:148 163 184;--primary-container:51 65 85;--on-primary:15 23 42;--on-primary-container:241 245 249;--secondary:251 146 60;--secondary-container:154 52 18;--on-secondary:15 23 42;--on-secondary-container:253 236 214;--surface:2 6 23;--surface-container:15 23 42;--surface-container-low:30 41 59;--surface-container-high:51 65 85;--on-surface:248 250 252;--on-surface-variant:148 163 184;--background:2 6 23;--on-background:248 250 252;--outline:71 85 105;--outline-variant:51 65 85}}html{scroll-behavior:smooth}body{background-color:rgb(var(--background));color:rgb(var(--on-background));font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.headline-large{font-size:2rem;font-weight:400;letter-spacing:0;line-height:2.5rem}.headline-medium{font-size:1.75rem;font-weight:400;letter-spacing:0;line-height:2.25rem}.headline-small{font-size:1.5rem;line-height:2rem}.headline-small,.title-large{font-weight:400;letter-spacing:0}.title-large{font-size:1.375rem;line-height:1.75rem}.title-medium{font-size:1rem;font-weight:500;letter-spacing:.0094rem;line-height:1.5rem}.title-small{font-size:.875rem;font-weight:500;letter-spacing:.0071rem;line-height:1.25rem}.body-large{font-size:1rem;font-weight:400;letter-spacing:.0094rem;line-height:1.5rem}.body-medium{font-size:.875rem;font-weight:400;letter-spacing:.0178rem;line-height:1.25rem}.body-small{font-size:.75rem;font-weight:400;letter-spacing:.025rem;line-height:1rem}.label-large{font-size:.875rem;font-weight:500;letter-spacing:.0071rem;line-height:1.25rem}.label-medium{font-size:.75rem}.label-medium,.label-small{font-weight:500;letter-spacing:.0313rem;line-height:1rem}.label-small{font-size:.6875rem}.resume-section{margin-bottom:2rem}.resume-section:last-child{margin-bottom:0}.resume-section-title{border-bottom-width:1px;margin-bottom:1rem;--tw-border-opacity:1;border-color:rgb(212 212 212/var(--tw-border-opacity,1));font-size:1.5rem;font-weight:500;line-height:2rem;padding-bottom:.5rem;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.resume-card{border-radius:.75rem;--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1));padding:1.5rem;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);transition-duration:.2s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.resume-card,.resume-card:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.resume-card:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.skill-tag{align-items:center;border-radius:9999px;display:inline-flex;font-size:.875rem;font-weight:500;line-height:1.25rem;padding:.25rem .75rem;--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.timeline-item{padding-bottom:2rem;padding-left:2rem;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{background-color:rgb(100 116 139/var(--tw-bg-opacity,1));border-radius:9999px;height:.75rem;left:0;top:.5rem;width:.75rem}.timeline-item:after,.timeline-item:before{content:;position:absolute;--tw-bg-opacity:1}.timeline-item:after{background-color:rgb(212 212 212/var(--tw-bg-opacity,1));height:calc(100% - 1rem);left:.375rem;top:1.25rem;width:.125rem}.timeline-item:last-child:after{display:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fadeInUp .5s ease-out}.focus-ring:focus-visible{outline:2px solid rgb(var(--primary));outline-offset:2px}@media print{.no-print{display:none!important}.print-break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.print-break-before{-moz-column-break-before:page;break-before:page}}@media (max-width:640px){.headline-large{font-size:1.75rem;line-height:2.25rem}.headline-medium{font-size:1.5rem;line-height:2rem}}/style>style>@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:400;src:url(/_nuxt/Fira_Code-normal-400-cyrillic-ext.DhYMMuQd.woff2) format(woff2);unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:400;src:url(/_nuxt/Fira_Code-normal-400-cyrillic.Y3u8pIsh.woff2) format(woff2);unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:400;src:url(/_nuxt/Fira_Code-normal-400-greek-ext.wWus70Ix.woff2) format(woff2);unicode-range:u+1f??}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:400;src:url(/_nuxt/Fira_Code-normal-400-greek.B2SviObF.woff2) format(woff2);unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:400;src:url(/_nuxt/Fira_Code-normal-400-symbols2.CE6EOz_n.woff2) format(woff2);unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:400;src:url(/_nuxt/Fira_Code-normal-400-latin-ext.Dvfvaomy.woff2) format(woff2);unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:400;src:url(/_nuxt/Fira_Code-normal-400-latin.CHoedHDv.woff2) format(woff2);unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:500;src:url(/_nuxt/Fira_Code-normal-400-cyrillic-ext.DhYMMuQd.woff2) format(woff2);unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:500;src:url(/_nuxt/Fira_Code-normal-400-cyrillic.Y3u8pIsh.woff2) format(woff2);unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:500;src:url(/_nuxt/Fira_Code-normal-400-greek-ext.wWus70Ix.woff2) format(woff2);unicode-range:u+1f??}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:500;src:url(/_nuxt/Fira_Code-normal-400-greek.B2SviObF.woff2) format(woff2);unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:500;src:url(/_nuxt/Fira_Code-normal-400-symbols2.CE6EOz_n.woff2) format(woff2);unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:500;src:url(/_nuxt/Fira_Code-normal-400-latin-ext.Dvfvaomy.woff2) format(woff2);unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:500;src:url(/_nuxt/Fira_Code-normal-400-latin.CHoedHDv.woff2) format(woff2);unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/_nuxt/Inter-normal-400-cyrillic-ext.BOeWTOD4.woff2) format(woff2);unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/_nuxt/Inter-normal-400-cyrillic.DqGufNeO.woff2) format(woff2);unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/_nuxt/Inter-normal-400-greek-ext.DlzME5K_.woff2) format(woff2);unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/_nuxt/Inter-normal-400-greek.CkhJZR-_.woff2) format(woff2);unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/_nuxt/Inter-normal-400-vietnamese.CBcvBZtf.woff2) format(woff2);unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/_nuxt/Inter-normal-400-latin-ext.DO1Apj_S.woff2) format(woff2);unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/_nuxt/Inter-normal-400-latin.Dx4kXJAl.woff2) format(woff2);unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/_nuxt/Inter-normal-400-cyrillic-ext.BOeWTOD4.woff2) format(woff2);unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/_nuxt/Inter-normal-400-cyrillic.DqGufNeO.woff2) format(woff2);unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/_nuxt/Inter-normal-400-greek-ext.DlzME5K_.woff2) format(woff2);unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/_nuxt/Inter-normal-400-greek.CkhJZR-_.woff2) format(woff2);unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/_nuxt/Inter-normal-400-vietnamese.CBcvBZtf.woff2) format(woff2);unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/_nuxt/Inter-normal-400-latin-ext.DO1Apj_S.woff2) format(woff2);unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/_nuxt/Inter-normal-400-latin.Dx4kXJAl.woff2) format(woff2);unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/_nuxt/Inter-normal-400-cyrillic-ext.BOeWTOD4.woff2) format(woff2);unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/_nuxt/Inter-normal-400-cyrillic.DqGufNeO.woff2) format(woff2);unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/_nuxt/Inter-normal-400-greek-ext.DlzME5K_.woff2) format(woff2);unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/_nuxt/Inter-normal-400-greek.CkhJZR-_.woff2) format(woff2);unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/_nuxt/Inter-normal-400-vietnamese.CBcvBZtf.woff2) format(woff2);unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/_nuxt/Inter-normal-400-latin-ext.DO1Apj_S.woff2) format(woff2);unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/_nuxt/Inter-normal-400-latin.Dx4kXJAl.woff2) format(woff2);unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/_nuxt/Inter-normal-400-cyrillic-ext.BOeWTOD4.woff2) format(woff2);unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/_nuxt/Inter-normal-400-cyrillic.DqGufNeO.woff2) format(woff2);unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/_nuxt/Inter-normal-400-greek-ext.DlzME5K_.woff2) format(woff2);unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/_nuxt/Inter-normal-400-greek.CkhJZR-_.woff2) format(woff2);unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/_nuxt/Inter-normal-400-vietnamese.CBcvBZtf.woff2) format(woff2);unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/_nuxt/Inter-normal-400-latin-ext.DO1Apj_S.woff2) format(woff2);unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/_nuxt/Inter-normal-400-latin.Dx4kXJAl.woff2) format(woff2);unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}/style>style>.min-h-screendata-v-55d9f6ef{min-height:100vh;min-height:100dvh}/style>style>.mobile-nav-linkdata-v-8f290f3a,.nav-linkdata-v-8f290f3a{transition-property:color,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion:reduce){.mobile-nav-linkdata-v-8f290f3a,.nav-linkdata-v-8f290f3a{transition:none}}@media (prefers-contrast:high){.mobile-nav-linkdata-v-8f290f3a:hover,.nav-linkdata-v-8f290f3a:hover{background-color:ButtonHighlight;color:ButtonText}}@media print{navdata-v-8f290f3a{display:none}}/style>style>@keyframes fade-in-up-3667c25f{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-updata-v-3667c25f{animation:fade-in-up-3667c25f 1.2s ease-out forwards}.hero-parallaxdata-v-3667c25f{border-bottom:1px solid transparent;transform:translateZ(0);will-change:transform}.hero-parallaxdata-v-3667c25f *{backface-visibility:hidden;perspective:1000px}.hero-parallax .absolutedata-v-3667c25f{clip-path:inset(0)}.group:hover .group-hover\:translate-x-1data-v-3667c25f{transform:translate(.25rem)}.backdrop-blur-smdata-v-3667c25f{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}@media (max-width:768px){.hero-parallax .space-y-8data-v-3667c25f>*+*{margin-top:1.5rem}}@media (prefers-reduced-motion:reduce){.hero-parallax style*transformdata-v-3667c25f{transform:none!important}.animate-bouncedata-v-3667c25f{animation:none}}/style>style>.experience-detailsdata-v-df309331{transition:all .3s ease-in-out}.experience-carddata-v-df309331:hover{transform:translateY(-1px)}.bg-gradient-to-brdata-v-df309331{background-attachment:fixed}/style>style>.social-linkdata-v-5d3d2c4b{transition-duration:.2s;transition-property:color,background-color,border-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion:reduce){.social-linkdata-v-5d3d2c4b{transition:none}}@media (prefers-contrast:high){.social-linkdata-v-5d3d2c4b:hover{background-color:ButtonHighlight;border-color:ButtonText;color:ButtonText}}@media print{.social-linkdata-v-5d3d2c4b{background:#fff!important;border:1px solid #000!important;color:#000!important}}/style>link relstylesheet href/_nuxt/HeroSectionParallax.BTIdxB9i.css crossorigin>link relpreload asfetch crossoriginanonymous href/_payload.json?c0f8dfbd-72a2-4e0a-b159-107abb8c32d8>link relmodulepreload asscript crossorigin href/_nuxt/A3XNoKTE.js>link relmodulepreload asscript crossorigin href/_nuxt/8OPrARcm.js>link relmodulepreload asscript crossorigin href/_nuxt/BxiilQob.js>link relmodulepreload asscript crossorigin href/_nuxt/DdRiDv2p.js>link relmodulepreload asscript crossorigin href/_nuxt/DlAUqK2U.js>link relpreload asfetch fetchprioritylow crossoriginanonymous href/_nuxt/builds/meta/c0f8dfbd-72a2-4e0a-b159-107abb8c32d8.json>link relprefetch asscript crossorigin href/_nuxt/Doe2Uepc.js>link relprefetch asscript crossorigin href/_nuxt/D2Rf__x5.js>meta namedescription contentMinimalist digital resume showcasing authentic professional experience and verified skills.>link relicon typeimage/svg+xml href/favicon.svg>link relicon typeimage/svg+xml sizes16x16 href/favicon-16x16.svg>link relapple-touch-icon href/favicon.svg>meta nametheme-color content#ffffff>meta propertyog:image content/og-image.jpg>meta nametwitter:card contentsummary_large_image>script typemodule src/_nuxt/A3XNoKTE.js crossorigin>/script>/head>body>div id__nuxt>div>div classmin-h-screen bg-white dark:bg-gray-900 data-v-55d9f6ef>nav rolenavigation aria-labelMain navigation data-testidnavigation-bar classbg-white dark:bg-gray-900 border-b border-gray-200 dark:border-gray-700 sticky top-0 z-50 data-v-55d9f6ef data-v-8f290f3a>div classmax-w-4xl mx-auto px-4 sm:px-6 lg:px-8 data-v-8f290f3a>div classflex justify-between items-center h-16 data-v-8f290f3a>div classflex-shrink-0 data-v-8f290f3a>a href#hero data-testidnav-logo classtext-xl font-bold text-gray-900 dark:text-white hover:text-blue-600 dark:hover:text-blue-400 transition-colors duration-200 data-v-8f290f3a>David T. Wells/a>/div>div classhidden md:block data-v-8f290f3a>div classml-10 flex items-baseline space-x-4 data-v-8f290f3a>!---->a href#about classtext-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 px-3 py-2 text-sm font-medium transition-colors duration-200 data-v-8f290f3a>About/a>a href#experience classtext-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 px-3 py-2 text-sm font-medium transition-colors duration-200 data-v-8f290f3a>Experience/a>a href#skills classtext-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 px-3 py-2 text-sm font-medium transition-colors duration-200 data-v-8f290f3a>Skills/a>a href#contact classtext-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 px-3 py-2 text-sm font-medium transition-colors duration-200 data-v-8f290f3a>Contact/a>!---->div classml-4 data-v-8f290f3a>div classinline-flex items-center data-v-8f290f3a data-v-4fa17b1b>button classinline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed transition-colors duration-200 data-v-4fa17b1b>svg classw-4 h-4 mr-2 fillnone strokecurrentColor viewBox0 0 24 24 data-v-4fa17b1b>path stroke-linecapround stroke-linejoinround stroke-width2 dM12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z data-v-4fa17b1b>/path>/svg> Download Resume/button>/div>/div>/div>/div>div classmd:hidden data-v-8f290f3a>button typebutton data-testidmobile-menu-button classp-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-2 focus:ring-blue-500 transition-colors duration-200 aria-expandedfalse aria-controlsmobile-menu data-v-8f290f3a>span classsr-only data-v-8f290f3a>Open main menu/span>svg classh-6 w-6 fillnone viewBox0 0 24 24 strokecurrentColor data-v-8f290f3a>path stroke-linecapround stroke-linejoinround stroke-width2 dM4 6h16M4 12h16M4 18h16 data-v-8f290f3a>/path>/svg>/button>/div>/div>/div>div idmobile-menu classmd:hidden border-t border-gray-200 dark:border-gray-700 styledisplay:none; data-v-8f290f3a>div classpx-2 pt-2 pb-3 space-y-1 bg-white dark:bg-gray-900 data-v-8f290f3a>a href#about classmobile-nav-link block px-3 py-2 rounded-md text-base font-medium text-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors duration-200 data-v-8f290f3a> About /a>a href#experience classmobile-nav-link block px-3 py-2 rounded-md text-base font-medium text-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors duration-200 data-v-8f290f3a> Experience /a>a href#skills classmobile-nav-link block px-3 py-2 rounded-md text-base font-medium text-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors duration-200 data-v-8f290f3a> Skills /a>a href#contact classmobile-nav-link block px-3 py-2 rounded-md text-base font-medium text-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors duration-200 data-v-8f290f3a> Contact /a>div classpx-3 py-2 data-v-8f290f3a>div classinline-flex items-center data-v-8f290f3a data-v-4fa17b1b>button classinline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed transition-colors duration-200 data-v-4fa17b1b>svg classw-4 h-4 mr-2 fillnone strokecurrentColor viewBox0 0 24 24 data-v-4fa17b1b>path stroke-linecapround stroke-linejoinround stroke-width2 dM12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z data-v-4fa17b1b>/path>/svg> Download Resume/button>/div>/div>/div>/div>/nav>section classhero-parallax relative min-h-screen flex items-center justify-center overflow-hidden rolebanner aria-labelledbyhero-heading data-v-55d9f6ef data-v-3667c25f>div classabsolute inset-0 z-0 data-v-3667c25f>div classabsolute inset-0 bg-cover bg-center bg-no-repeat stylebackground-image:url('/images/hero-bg-neural.svg');transform:translateY(0px) scale(1.1); data-v-3667c25f>/div>div classabsolute inset-0 opacity-30 styletransform:translateY(0px); data-v-3667c25f>!---->div classabsolute rounded-full bg-gradient-to-r from-blue-400/20 to-cyan-400/20 animate-pulse styleleft:10%;top:20%;width:4px;height:4px;animation-delay:0s;transform:translateY(0px); data-v-3667c25f>/div>div classabsolute rounded-full bg-gradient-to-r from-blue-400/20 to-cyan-400/20 animate-pulse styleleft:80%;top:30%;width:6px;height:6px;animation-delay:1s;transform:translateY(0px); data-v-3667c25f>/div>div classabsolute rounded-full bg-gradient-to-r from-blue-400/20 to-cyan-400/20 animate-pulse styleleft:15%;top:70%;width:3px;height:3px;animation-delay:2s;transform:translateY(0px); data-v-3667c25f>/div>div classabsolute rounded-full bg-gradient-to-r from-blue-400/20 to-cyan-400/20 animate-pulse styleleft:90%;top:60%;width:5px;height:5px;animation-delay:0.5s;transform:translateY(0px); data-v-3667c25f>/div>div classabsolute rounded-full bg-gradient-to-r from-blue-400/20 to-cyan-400/20 animate-pulse styleleft:50%;top:15%;width:4px;height:4px;animation-delay:1.5s;transform:translateY(0px); data-v-3667c25f>/div>div classabsolute rounded-full bg-gradient-to-r from-blue-400/20 to-cyan-400/20 animate-pulse styleleft:25%;top:85%;width:7px;height:7px;animation-delay:0.8s;transform:translateY(0px); data-v-3667c25f>/div>div classabsolute rounded-full bg-gradient-to-r from-blue-400/20 to-cyan-400/20 animate-pulse styleleft:75%;top:80%;width:3px;height:3px;animation-delay:2.2s;transform:translateY(0px); data-v-3667c25f>/div>div classabsolute rounded-full bg-gradient-to-r from-blue-400/20 to-cyan-400/20 animate-pulse styleleft:60%;top:45%;width:5px;height:5px;animation-delay:1.8s;transform:translateY(0px); data-v-3667c25f>/div>!---->/div>div classabsolute inset-0 opacity-20 styletransform:translateY(0px); data-v-3667c25f>div classabsolute inset-0 bg-gradient-to-b from-transparent via-slate-900/20 to-slate-900/40 data-v-3667c25f>/div>/div>/div>div classrelative z-10 max-w-6xl mx-auto text-center px-4 py-16 md:py-24 data-v-3667c25f>div classspace-y-8 data-v-3667c25f>h1 idhero-heading classtext-4xl md:text-6xl lg:text-7xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-white via-blue-100 to-blue-200 leading-tight transform transition-all duration-1000 styletransform:translateY(0px);opacity:1; data-v-3667c25f>David T. Wells/h1>h2 classtext-xl md:text-2xl lg:text-3xl font-medium text-slate-200 max-w-4xl mx-auto transform transition-all duration-1000 delay-200 styletransform:translateY(0px);opacity:1; data-v-3667c25f>Senior Full Stack Developer & Scrum Master/h2>p classtext-lg md:text-xl text-slate-300 max-w-3xl mx-auto leading-relaxed backdrop-blur-sm bg-slate-900/20 rounded-lg p-6 border border-slate-700/50 transform transition-all duration-1000 delay-400 styletransform:translateY(0px);opacity:1; data-v-3667c25f>Senior Full Stack Developer with 8+ years of experience building scalable web applications. Currently serving as Scrum Master for a 7-person development team while maintaining hands-on development responsibilities. Proven track record of database optimization (50x performance improvements), team leadership, and implementing modern development workflows including AI-assisted development practices./p>div classflex flex-col sm:flex-row gap-4 justify-center items-center pt-8 transform transition-all duration-1000 delay-600 styletransform:translateY(0px);opacity:1; data-v-3667c25f>a href#contact classgroup inline-flex items-center px-8 py-4 bg-gradient-to-r from-blue-600 to-blue-700 hover:from-blue-700 hover:to-blue-800 text-white font-semibold rounded-lg shadow-lg hover:shadow-xl transform hover:-translate-y-2 transition-all duration-300 focus:outline-none focus:ring-4 focus:ring-blue-500/50 backdrop-blur-sm aria-describedbyhero-contact-desc data-v-3667c25f> Get In Touch svg classml-2 w-5 h-5 group-hover:translate-x-1 transition-transform fillnone strokecurrentColor viewBox0 0 24 24 data-v-3667c25f>path stroke-linecapround stroke-linejoinround stroke-width2 dM17 8l4 4m0 0l-4 4m4-4H3 data-v-3667c25f>/path>/svg>/a>a href#experience classgroup inline-flex items-center px-8 py-4 border-2 border-slate-300 text-slate-200 hover:bg-slate-300 hover:text-slate-900 font-semibold rounded-lg transform hover:-translate-y-2 transition-all duration-300 focus:outline-none focus:ring-4 focus:ring-slate-300/50 backdrop-blur-sm aria-describedbyhero-work-desc data-v-3667c25f> View My Work svg classml-2 w-5 h-5 group-hover:translate-x-1 transition-transform fillnone strokecurrentColor viewBox0 0 24 24 data-v-3667c25f>path stroke-linecapround stroke-linejoinround stroke-width2 dM19 14l-7 7m0 0l-7-7m7 7V3 data-v-3667c25f>/path>/svg>/a>/div>div classsr-only data-v-3667c25f>p idhero-contact-desc data-v-3667c25f>Navigate to contact section to get in touch/p>p idhero-work-desc data-v-3667c25f>Navigate to work experience section/p>/div>div classpt-16 animate-bounce transform transition-all duration-1000 delay-800 styletransform:translateY(0px);opacity:0.8; data-v-3667c25f>svg classw-6 h-6 mx-auto text-slate-400 hover:text-blue-400 transition-colors cursor-pointer fillnone strokecurrentColor viewBox0 0 24 24 data-v-3667c25f>path stroke-linecapround stroke-linejoinround stroke-width2 dM19 14l-7 7m0 0l-7-7m7 7V3 data-v-3667c25f>/path>/svg>/div>/div>/div>!---->/section>section idabout roleregion aria-labelledbyabout-heading data-testidabout-section classrelative z-10 bg-gradient-to-br from-slate-50 via-blue-50 to-slate-100 dark:from-slate-800 dark:via-blue-900 dark:to-slate-900 py-16 data-v-55d9f6ef data-v-fd552a7e>div classmax-w-4xl mx-auto px-4 sm:px-6 data-v-fd552a7e>h2 idabout-heading data-testidabout-title classtext-3xl font-bold text-center text-transparent bg-clip-text bg-gradient-to-r from-slate-800 to-blue-600 dark:from-white dark:to-blue-300 mb-12 data-v-fd552a7e> About Me /h2>div classgrid grid-cols-1 lg:grid-cols-2 gap-12 items-center data-v-fd552a7e>div classspace-y-6 data-v-fd552a7e>div classprose prose-gray dark:prose-invert max-w-none data-v-fd552a7e>p data-testidabout-intro classtext-lg text-gray-600 dark:text-gray-300 leading-relaxed data-v-fd552a7e>Transitioned from sociology to computer science, bringing a unique perspective on user experience and team dynamics. Passionate about creating technology that genuinely improves people's lives and building collaborative development environments./p>div classspace-y-4 mt-6 data-v-fd552a7e>h3 data-testidapproach-heading classtext-xl font-semibold text-gray-900 dark:text-white data-v-fd552a7e> My Approach /h3>p data-testidabout-approach classtext-gray-600 dark:text-gray-300 data-v-fd552a7e>I believe the best software solutions come from understanding both the technical requirements and the human needs behind them. My background in sociology gives me insight into user behavior and team communication that enhances my technical work./p>/div>div classspace-y-4 mt-6 data-v-fd552a7e>h3 data-testidpassion-heading classtext-xl font-semibold text-gray-900 dark:text-white data-v-fd552a7e> What Drives Me /h3>p data-testidabout-passion classtext-gray-600 dark:text-gray-300 data-v-fd552a7e>Team leadership and agile transformation. Database optimization and performance improvements. User experience and interface design. AI-assisted development and modern workflows. Building scalable, maintainable systems/p>/div>/div>/div>div classbg-white dark:bg-gray-900 rounded-lg p-8 shadow-sm data-v-fd552a7e>h3 data-testidhighlights-heading classtext-xl font-semibold text-gray-900 dark:text-white mb-6 data-v-fd552a7e> Key Highlights /h3>div classspace-y-4 data-v-fd552a7e>!---->div data-testidhighlight-item classflex items-start data-v-fd552a7e>div classflex-shrink-0 w-6 h-6 bg-blue-100 dark:bg-blue-900 rounded-full flex items-center justify-center mt-1 data-v-fd552a7e>div classw-2 h-2 bg-blue-600 rounded-full data-v-fd552a7e>/div>/div>div classml-4 data-v-fd552a7e>h4 data-testidhighlight-title classfont-medium text-gray-900 dark:text-white data-v-fd552a7e>Full-Stack Expertise/h4>p data-testidhighlight-description classtext-sm text-gray-600 dark:text-gray-300 mt-1 data-v-fd552a7e>8+ years building scalable web applications with Vue.js, PHP, and modern development practices/p>/div>/div>div data-testidhighlight-item classflex items-start data-v-fd552a7e>div classflex-shrink-0 w-6 h-6 bg-blue-100 dark:bg-blue-900 rounded-full flex items-center justify-center mt-1 data-v-fd552a7e>div classw-2 h-2 bg-blue-600 rounded-full data-v-fd552a7e>/div>/div>div classml-4 data-v-fd552a7e>h4 data-testidhighlight-title classfont-medium text-gray-900 dark:text-white data-v-fd552a7e>Team Leadership/h4>p data-testidhighlight-description classtext-sm text-gray-600 dark:text-gray-300 mt-1 data-v-fd552a7e>Currently serving as Scrum Master for 7-person development team with proven track record in agile transformation/p>/div>/div>div data-testidhighlight-item classflex items-start data-v-fd552a7e>div classflex-shrink-0 w-6 h-6 bg-blue-100 dark:bg-blue-900 rounded-full flex items-center justify-center mt-1 data-v-fd552a7e>div classw-2 h-2 bg-blue-600 rounded-full data-v-fd552a7e>/div>/div>div classml-4 data-v-fd552a7e>h4 data-testidhighlight-title classfont-medium text-gray-900 dark:text-white data-v-fd552a7e>Performance Optimization/h4>p data-testidhighlight-description classtext-sm text-gray-600 dark:text-gray-300 mt-1 data-v-fd552a7e>Expert in database performance analysis, query optimization, and strategic system improvements delivering significant performance gains/p>/div>/div>div data-testidhighlight-item classflex items-start data-v-fd552a7e>div classflex-shrink-0 w-6 h-6 bg-blue-100 dark:bg-blue-900 rounded-full flex items-center justify-center mt-1 data-v-fd552a7e>div classw-2 h-2 bg-blue-600 rounded-full data-v-fd552a7e>/div>/div>div classml-4 data-v-fd552a7e>h4 data-testidhighlight-title classfont-medium text-gray-900 dark:text-white data-v-fd552a7e>AI-Assisted Development/h4>p data-testidhighlight-description classtext-sm text-gray-600 dark:text-gray-300 mt-1 data-v-fd552a7e>Pioneer in implementing AI-assisted workflows with GitHub Copilot and comprehensive code review processes/p>/div>/div>!---->/div>/div>/div>/div>/section>section idexperience roleregion aria-labelledbyexperience-heading data-testidexperience-timeline classbg-gradient-to-br from-white via-gray-50 to-gray-100 dark:from-gray-900 dark:via-gray-800 dark:to-gray-900 py-16 data-v-55d9f6ef data-v-cbab71bb>div classmax-w-4xl mx-auto px-4 sm:px-6 data-v-cbab71bb>h2 idexperience-heading data-testidexperience-title classtext-3xl font-bold text-center bg-gradient-to-r from-gray-900 to-gray-700 dark:from-white dark:to-gray-200 bg-clip-text text-transparent mb-12 data-v-cbab71bb> Professional Experience /h2>div classrelative data-v-cbab71bb>div classabsolute left-8 top-0 bottom-0 w-0.5 bg-gradient-to-b from-blue-200 via-blue-300 to-blue-200 dark:from-blue-800 dark:via-blue-700 dark:to-blue-800 data-v-cbab71bb>/div>div classspace-y-8 data-v-cbab71bb>!---->div classrelative flex items-start data-v-cbab71bb>div classml-16 w-full data-v-cbab71bb>div classrelative bg-gradient-to-br from-white to-gray-50 dark:from-gray-800 dark:to-gray-900 rounded-xl shadow-sm hover:shadow-md transition-all duration-300 border border-gray-100 dark:border-gray-700 data-testidexperience-card data-v-cbab71bb data-v-df309331>div classabsolute -left-8 top-6 w-4 h-4 bg-gradient-to-br from-blue-500 to-blue-600 rounded-full border-4 border-white dark:border-gray-900 shadow-sm data-v-df309331>/div>div classp-6 data-v-df309331>div classflex flex-col sm:flex-row sm:justify-between sm:items-start mb-4 data-v-df309331>div classflex-1 data-v-df309331>h3 data-testidexperience-position classtext-lg font-semibold text-gray-900 dark:text-white mb-1 data-v-df309331>Senior Full Stack Developer & Scrum Master/h3>div classflex items-center space-x-2 mb-2 data-v-df309331>p data-testidexperience-company classtext-blue-600 dark:text-blue-400 font-medium data-v-df309331>MeasuringU/p>span classtext-gray-400 data-v-df309331>•/span>span data-testidexperience-location classtext-sm text-gray-500 dark:text-gray-400 data-v-df309331>Remote/span>/div>/div>span data-testidexperience-duration classtext-sm text-gray-500 dark:text-gray-400 font-medium bg-gray-100 dark:bg-gray-700 px-3 py-1 rounded-full mt-2 sm:mt-0 self-start data-v-df309331>4 years, 8 months/span>/div>p data-testidexperience-description classtext-gray-600 dark:text-gray-300 mb-4 leading-relaxed data-v-df309331>Lead full-stack development and serve as Scrum Master for a 7-person development team. Architect scalable solutions, conduct technical interviews, and drive agile transformation initiatives./p>div classmb-4 data-v-df309331>div classflex flex-wrap gap-2 data-v-df309331>!---->span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Vue.js/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>PHP/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Material Design/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>JavaScript/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>TypeScript/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>CSS3/span>!---->button classpx-3 py-1 text-xs text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 transition-colors data-v-df309331>+5 more/button>/div>/div>/div>div classborder-t border-gray-100 dark:border-gray-700 data-v-df309331>button aria-expandedfalse aria-controlsexperience-details-measuringu-senior data-testidexpand-button classw-full px-6 py-3 flex items-center justify-between text-left bg-gradient-to-r from-gray-50 to-gray-100 dark:from-gray-800 dark:to-gray-700 hover:from-gray-100 hover:to-gray-200 dark:hover:from-gray-700 dark:hover:to-gray-600 transition-all duration-200 rounded-b-xl data-v-df309331>span classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-df309331>View Key Achievements/span>svg classw-4 h-4 text-gray-500 dark:text-gray-400 transition-transform duration-200 fillnone strokecurrentColor viewBox0 0 24 24 data-v-df309331>path stroke-linecapround stroke-linejoinround stroke-width2 dM19 9l-7 7-7-7 data-v-df309331>/path>/svg>/button>div idexperience-details-measuringu-senior data-testidexperience-details classexperience-details px-6 pb-6 bg-gradient-to-br from-gray-50 to-white dark:from-gray-800 dark:to-gray-900 styledisplay:none; data-v-df309331>div classpt-4 data-v-df309331>div classmb-4 data-v-df309331>h4 classtext-sm font-semibold text-gray-900 dark:text-white mb-3 flex items-center data-v-df309331>svg classw-4 h-4 mr-2 text-green-600 dark:text-green-400 fillcurrentColor viewBox0 0 20 20 data-v-df309331>path fill-ruleevenodd dM10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z clip-ruleevenodd data-v-df309331>/path>/svg> Key Achievements /h4>ul classspace-y-2 data-v-df309331>!---->li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Serve as Scrum Master for 7-person development team since February 2025, facilitating 2-week sprints with 30/60/90 day strategic planning/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Led complete frontend overhaul implementing Material Design methodology across entire platform/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Redesigned components, navigation, and information architecture improving user experience/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Implemented AI-assisted development workflows with comprehensive team code review processes ensuring all merged code meets quality standards/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Adopted spec-driven development methodologies using Spec Kit for project planning and execution/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Conducted technical interviews and onboarded new developers, establishing team growth processes/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Architected full-stack solutions with focus on scalability and minimal technical debt/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Built comprehensive data visualization dashboard with advanced statistics and interactive charts/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Mentored junior developers and established code quality standards across the team/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Implemented Behavior Driven Design practices for loosely coupled, scalable systems/li>!---->/ul>/div>div classmb-4 data-v-df309331>h4 classtext-sm font-semibold text-gray-900 dark:text-white mb-3 flex items-center data-v-df309331>svg classw-4 h-4 mr-2 text-purple-600 dark:text-purple-400 fillcurrentColor viewBox0 0 20 20 data-v-df309331>path fill-ruleevenodd dM12.316 3.051a1 1 0 01.633 1.265l-4 12a1 1 0 11-1.898-.632l4-12a1 1 0 011.265-.633zM5.707 6.293a1 1 0 010 1.414L3.414 10l2.293 2.293a1 1 0 11-1.414 1.414l-3-3a1 1 0 010-1.414l3-3a1 1 0 011.414 0zm8.586 0a1 1 0 011.414 0l3 3a1 1 0 010 1.414l-3 3a1 1 0 11-1.414-1.414L16.586 10l-2.293-2.293a1 1 0 010-1.414z clip-ruleevenodd data-v-df309331>/path>/svg> Additional Technologies /h4>div classflex flex-wrap gap-2 data-v-df309331>!---->span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>SASS/span>span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>RESTful APIs/span>span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>Database Design/span>span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>GitHub Copilot/span>span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>Spec Kit/span>!---->/div>/div>/div>/div>/div>/div>/div>/div>div classrelative flex items-start data-v-cbab71bb>div classml-16 w-full data-v-cbab71bb>div classrelative bg-gradient-to-br from-white to-gray-50 dark:from-gray-800 dark:to-gray-900 rounded-xl shadow-sm hover:shadow-md transition-all duration-300 border border-gray-100 dark:border-gray-700 data-testidexperience-card data-v-cbab71bb data-v-df309331>div classabsolute -left-8 top-6 w-4 h-4 bg-gradient-to-br from-blue-500 to-blue-600 rounded-full border-4 border-white dark:border-gray-900 shadow-sm data-v-df309331>/div>div classp-6 data-v-df309331>div classflex flex-col sm:flex-row sm:justify-between sm:items-start mb-4 data-v-df309331>div classflex-1 data-v-df309331>h3 data-testidexperience-position classtext-lg font-semibold text-gray-900 dark:text-white mb-1 data-v-df309331>Full Stack Web Application Developer/h3>div classflex items-center space-x-2 mb-2 data-v-df309331>p data-testidexperience-company classtext-blue-600 dark:text-blue-400 font-medium data-v-df309331>Mountain Data Group/p>span classtext-gray-400 data-v-df309331>•/span>span data-testidexperience-location classtext-sm text-gray-500 dark:text-gray-400 data-v-df309331>Fort Collins, CO/span>/div>/div>span data-testidexperience-duration classtext-sm text-gray-500 dark:text-gray-400 font-medium bg-gray-100 dark:bg-gray-700 px-3 py-1 rounded-full mt-2 sm:mt-0 self-start data-v-df309331>1 year/span>/div>p data-testidexperience-description classtext-gray-600 dark:text-gray-300 mb-4 leading-relaxed data-v-df309331>Integrated full stack web application solutions with Mountain Data Group's primary client, showcasing client focused development and big data analytics./p>div classmb-4 data-v-df309331>div classflex flex-wrap gap-2 data-v-df309331>!---->span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Python/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Django/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Data Analytics/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Statistical Modeling/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>GIS/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Census Data/span>!---->button classpx-3 py-1 text-xs text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 transition-colors data-v-df309331>+4 more/button>/div>/div>/div>div classborder-t border-gray-100 dark:border-gray-700 data-v-df309331>button aria-expandedfalse aria-controlsexperience-details-mountain-data-fullstack data-testidexpand-button classw-full px-6 py-3 flex items-center justify-between text-left bg-gradient-to-r from-gray-50 to-gray-100 dark:from-gray-800 dark:to-gray-700 hover:from-gray-100 hover:to-gray-200 dark:hover:from-gray-700 dark:hover:to-gray-600 transition-all duration-200 rounded-b-xl data-v-df309331>span classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-df309331>View Key Achievements/span>svg classw-4 h-4 text-gray-500 dark:text-gray-400 transition-transform duration-200 fillnone strokecurrentColor viewBox0 0 24 24 data-v-df309331>path stroke-linecapround stroke-linejoinround stroke-width2 dM19 9l-7 7-7-7 data-v-df309331>/path>/svg>/button>div idexperience-details-mountain-data-fullstack data-testidexperience-details classexperience-details px-6 pb-6 bg-gradient-to-br from-gray-50 to-white dark:from-gray-800 dark:to-gray-900 styledisplay:none; data-v-df309331>div classpt-4 data-v-df309331>div classmb-4 data-v-df309331>h4 classtext-sm font-semibold text-gray-900 dark:text-white mb-3 flex items-center data-v-df309331>svg classw-4 h-4 mr-2 text-green-600 dark:text-green-400 fillcurrentColor viewBox0 0 20 20 data-v-df309331>path fill-ruleevenodd dM10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z clip-ruleevenodd data-v-df309331>/path>/svg> Key Achievements /h4>ul classspace-y-2 data-v-df309331>!---->li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Integrated full stack web application solutions with Mountain Data Group's primary client, showcasing client focused development/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Conducted database benchmarking to track optimizations and improve query speeds, achieving significant performance improvements/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Utilized Python's data analytics libraries and statistical modeling to gain insights into census & weather datasets with over 1 billion records each/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Developed Django APIs to serve data needs quickly and securely/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Automated monthly updates to eliminate data downtime and improve speeds by orders of magnitude/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Gained experience working with GIS and census data to improve statistical analysis and enhance data-driven decision making/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Developed big data solutions utilizing time series modeling to assist in data forecasting/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Analyzed and searched for datasets to improve forecasting models including demographic and weather data across the UK/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Met weekly in a modified scrum environment for team meetings to share project developments and progress/li>!---->/ul>/div>div classmb-4 data-v-df309331>h4 classtext-sm font-semibold text-gray-900 dark:text-white mb-3 flex items-center data-v-df309331>svg classw-4 h-4 mr-2 text-purple-600 dark:text-purple-400 fillcurrentColor viewBox0 0 20 20 data-v-df309331>path fill-ruleevenodd dM12.316 3.051a1 1 0 01.633 1.265l-4 12a1 1 0 11-1.898-.632l4-12a1 1 0 011.265-.633zM5.707 6.293a1 1 0 010 1.414L3.414 10l2.293 2.293a1 1 0 11-1.414 1.414l-3-3a1 1 0 010-1.414l3-3a1 1 0 011.414 0zm8.586 0a1 1 0 011.414 0l3 3a1 1 0 010 1.414l-3 3a1 1 0 11-1.414-1.414L16.586 10l-2.293-2.293a1 1 0 010-1.414z clip-ruleevenodd data-v-df309331>/path>/svg> Additional Technologies /h4>div classflex flex-wrap gap-2 data-v-df309331>!---->span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>Time Series Modeling/span>span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>Big Data/span>span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>Database Optimization/span>span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>APIs/span>!---->/div>/div>/div>/div>/div>/div>/div>/div>div classrelative flex items-start data-v-cbab71bb>div classml-16 w-full data-v-cbab71bb>div classrelative bg-gradient-to-br from-white to-gray-50 dark:from-gray-800 dark:to-gray-900 rounded-xl shadow-sm hover:shadow-md transition-all duration-300 border border-gray-100 dark:border-gray-700 data-testidexperience-card data-v-cbab71bb data-v-df309331>div classabsolute -left-8 top-6 w-4 h-4 bg-gradient-to-br from-blue-500 to-blue-600 rounded-full border-4 border-white dark:border-gray-900 shadow-sm data-v-df309331>/div>div classp-6 data-v-df309331>div classflex flex-col sm:flex-row sm:justify-between sm:items-start mb-4 data-v-df309331>div classflex-1 data-v-df309331>h3 data-testidexperience-position classtext-lg font-semibold text-gray-900 dark:text-white mb-1 data-v-df309331>Data Science Intern/h3>div classflex items-center space-x-2 mb-2 data-v-df309331>p data-testidexperience-company classtext-blue-600 dark:text-blue-400 font-medium data-v-df309331>Mountain Data Group/p>span classtext-gray-400 data-v-df309331>•/span>span data-testidexperience-location classtext-sm text-gray-500 dark:text-gray-400 data-v-df309331>Fort Collins, CO/span>/div>/div>span data-testidexperience-duration classtext-sm text-gray-500 dark:text-gray-400 font-medium bg-gray-100 dark:bg-gray-700 px-3 py-1 rounded-full mt-2 sm:mt-0 self-start data-v-df309331>10 months/span>/div>p data-testidexperience-description classtext-gray-600 dark:text-gray-300 mb-4 leading-relaxed data-v-df309331>Data science internship focused on analytics and data processing for university client projects, building foundational skills in big data and statistical analysis./p>div classmb-4 data-v-df309331>div classflex flex-wrap gap-2 data-v-df309331>!---->span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Python/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Data Analysis/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Statistical Modeling/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Database Management/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Data Visualization/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Big Data/span>!---->!---->/div>/div>/div>div classborder-t border-gray-100 dark:border-gray-700 data-v-df309331>button aria-expandedfalse aria-controlsexperience-details-mountain-data-intern data-testidexpand-button classw-full px-6 py-3 flex items-center justify-between text-left bg-gradient-to-r from-gray-50 to-gray-100 dark:from-gray-800 dark:to-gray-700 hover:from-gray-100 hover:to-gray-200 dark:hover:from-gray-700 dark:hover:to-gray-600 transition-all duration-200 rounded-b-xl data-v-df309331>span classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-df309331>View Key Achievements/span>svg classw-4 h-4 text-gray-500 dark:text-gray-400 transition-transform duration-200 fillnone strokecurrentColor viewBox0 0 24 24 data-v-df309331>path stroke-linecapround stroke-linejoinround stroke-width2 dM19 9l-7 7-7-7 data-v-df309331>/path>/svg>/button>div idexperience-details-mountain-data-intern data-testidexperience-details classexperience-details px-6 pb-6 bg-gradient-to-br from-gray-50 to-white dark:from-gray-800 dark:to-gray-900 styledisplay:none; data-v-df309331>div classpt-4 data-v-df309331>div classmb-4 data-v-df309331>h4 classtext-sm font-semibold text-gray-900 dark:text-white mb-3 flex items-center data-v-df309331>svg classw-4 h-4 mr-2 text-green-600 dark:text-green-400 fillcurrentColor viewBox0 0 20 20 data-v-df309331>path fill-ruleevenodd dM10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z clip-ruleevenodd data-v-df309331>/path>/svg> Key Achievements /h4>ul classspace-y-2 data-v-df309331>!---->li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Gained foundational experience in data analysis and processing for large-scale datasets/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Supported senior developers on data management and optimization projects with census and weather data/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Developed skills in statistical modeling and data visualization techniques for 1+ billion record datasets/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Contributed to big data solutions and time series modeling projects/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Participated in modified scrum environment and collaborative team development processes/li>!---->/ul>/div>!---->/div>/div>/div>/div>/div>/div>div classrelative flex items-start data-v-cbab71bb>div classml-16 w-full data-v-cbab71bb>div classrelative bg-gradient-to-br from-white to-gray-50 dark:from-gray-800 dark:to-gray-900 rounded-xl shadow-sm hover:shadow-md transition-all duration-300 border border-gray-100 dark:border-gray-700 data-testidexperience-card data-v-cbab71bb data-v-df309331>div classabsolute -left-8 top-6 w-4 h-4 bg-gradient-to-br from-blue-500 to-blue-600 rounded-full border-4 border-white dark:border-gray-900 shadow-sm data-v-df309331>/div>div classp-6 data-v-df309331>div classflex flex-col sm:flex-row sm:justify-between sm:items-start mb-4 data-v-df309331>div classflex-1 data-v-df309331>h3 data-testidexperience-position classtext-lg font-semibold text-gray-900 dark:text-white mb-1 data-v-df309331>Web Application Developer/h3>div classflex items-center space-x-2 mb-2 data-v-df309331>p data-testidexperience-company classtext-blue-600 dark:text-blue-400 font-medium data-v-df309331>Colorado State University/p>span classtext-gray-400 data-v-df309331>•/span>span data-testidexperience-location classtext-sm text-gray-500 dark:text-gray-400 data-v-df309331>Fort Collins, CO/span>/div>/div>span data-testidexperience-duration classtext-sm text-gray-500 dark:text-gray-400 font-medium bg-gray-100 dark:bg-gray-700 px-3 py-1 rounded-full mt-2 sm:mt-0 self-start data-v-df309331>2 years/span>/div>p data-testidexperience-description classtext-gray-600 dark:text-gray-300 mb-4 leading-relaxed data-v-df309331>Provided programming solutions and technical support for administrators in Environmental Health, Public Health, and Risk Management departments using .NET and database technologies./p>div classmb-4 data-v-df309331>div classflex flex-wrap gap-2 data-v-df309331>!---->span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>.NET/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>C#/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>SQL/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Database Design/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>Relational Databases/span>span data-testidexperience-tech classpx-3 py-1 bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 text-blue-700 dark:text-blue-300 text-xs rounded-full border border-blue-100 dark:border-blue-800 data-v-df309331>SOLID Principles/span>!---->button classpx-3 py-1 text-xs text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 transition-colors data-v-df309331>+2 more/button>/div>/div>/div>div classborder-t border-gray-100 dark:border-gray-700 data-v-df309331>button aria-expandedfalse aria-controlsexperience-details-csu-web-developer data-testidexpand-button classw-full px-6 py-3 flex items-center justify-between text-left bg-gradient-to-r from-gray-50 to-gray-100 dark:from-gray-800 dark:to-gray-700 hover:from-gray-100 hover:to-gray-200 dark:hover:from-gray-700 dark:hover:to-gray-600 transition-all duration-200 rounded-b-xl data-v-df309331>span classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-df309331>View Key Achievements/span>svg classw-4 h-4 text-gray-500 dark:text-gray-400 transition-transform duration-200 fillnone strokecurrentColor viewBox0 0 24 24 data-v-df309331>path stroke-linecapround stroke-linejoinround stroke-width2 dM19 9l-7 7-7-7 data-v-df309331>/path>/svg>/button>div idexperience-details-csu-web-developer data-testidexperience-details classexperience-details px-6 pb-6 bg-gradient-to-br from-gray-50 to-white dark:from-gray-800 dark:to-gray-900 styledisplay:none; data-v-df309331>div classpt-4 data-v-df309331>div classmb-4 data-v-df309331>h4 classtext-sm font-semibold text-gray-900 dark:text-white mb-3 flex items-center data-v-df309331>svg classw-4 h-4 mr-2 text-green-600 dark:text-green-400 fillcurrentColor viewBox0 0 20 20 data-v-df309331>path fill-ruleevenodd dM10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z clip-ruleevenodd data-v-df309331>/path>/svg> Key Achievements /h4>ul classspace-y-2 data-v-df309331>!---->li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Provided programming solutions and technical support for administrators in the Environmental Health, Public Health, and Risk Management departments/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Designed and implemented relational databases to ensure data integrity and accurate relational models/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Acted as the lead developer for select .NET data-driven solutions, including tracking university drones, logging public health complaints, and performing risk management assessments for international travel/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Worked directly with clients to develop custom pages and tools addressing specific administrative needs/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Worked as a team on projects utilizing agile and pair programming practices/li>li data-testidexperience-achievement classflex items-start text-sm text-gray-600 dark:text-gray-300 data-v-df309331>div classflex-shrink-0 w-1.5 h-1.5 bg-gradient-to-r from-blue-500 to-blue-600 rounded-full mt-2 mr-3 data-v-df309331>/div> Wrote well documented code using SOLID development principles of object oriented design/li>!---->/ul>/div>div classmb-4 data-v-df309331>h4 classtext-sm font-semibold text-gray-900 dark:text-white mb-3 flex items-center data-v-df309331>svg classw-4 h-4 mr-2 text-purple-600 dark:text-purple-400 fillcurrentColor viewBox0 0 20 20 data-v-df309331>path fill-ruleevenodd dM12.316 3.051a1 1 0 01.633 1.265l-4 12a1 1 0 11-1.898-.632l4-12a1 1 0 011.265-.633zM5.707 6.293a1 1 0 010 1.414L3.414 10l2.293 2.293a1 1 0 11-1.414 1.414l-3-3a1 1 0 010-1.414l3-3a1 1 0 011.414 0zm8.586 0a1 1 0 011.414 0l3 3a1 1 0 010 1.414l-3 3a1 1 0 11-1.414-1.414L16.586 10l-2.293-2.293a1 1 0 010-1.414z clip-ruleevenodd data-v-df309331>/path>/svg> Additional Technologies /h4>div classflex flex-wrap gap-2 data-v-df309331>!---->span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>Agile Development/span>span classpx-3 py-1 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 text-purple-700 dark:text-purple-300 text-xs rounded-full border border-purple-100 dark:border-purple-800 data-v-df309331>Pair Programming/span>!---->/div>/div>/div>/div>/div>/div>/div>/div>!---->/div>/div>/div>/section>section idskills roleregion aria-labelledbyskills-heading data-testidskills-matrix classbg-gradient-to-br from-white via-slate-50 to-blue-50 dark:from-slate-900 dark:via-slate-800 dark:to-blue-900 py-16 data-v-55d9f6ef data-v-a344d033>div classmax-w-4xl mx-auto px-4 sm:px-6 data-v-a344d033>h2 idskills-heading data-testidskills-title classtext-3xl font-bold text-center text-transparent bg-clip-text bg-gradient-to-r from-slate-800 to-blue-600 dark:from-white dark:to-blue-300 mb-12 data-v-a344d033> Skills & Expertise /h2>div classgrid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 data-v-a344d033>!---->div data-testidskill-category classbg-gradient-to-br from-white to-slate-50 dark:from-slate-800 dark:to-slate-900 rounded-lg p-6 shadow-sm border border-slate-200 dark:border-slate-700 hover:shadow-lg transition-all duration-300 data-v-a344d033>h3 data-testidcategory-title classtext-lg font-semibold text-gray-900 dark:text-white mb-4 flex items-center data-v-a344d033>span classtext-2xl mr-3 data-v-a344d033>💻/span> Frontend/h3>div classspace-y-3 data-v-a344d033>!---->div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Vue.js/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Expert/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:90%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>JavaScript/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Expert/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:90%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>TypeScript/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Intermediate/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:60%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>HTML5/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Expert/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:90%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>CSS3/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Expert/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:90%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>SASS/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Material Design/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>React/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Intermediate/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:60%; data-v-a344d033>/div>/div>/div>!---->/div>/div>div data-testidskill-category classbg-gradient-to-br from-white to-slate-50 dark:from-slate-800 dark:to-slate-900 rounded-lg p-6 shadow-sm border border-slate-200 dark:border-slate-700 hover:shadow-lg transition-all duration-300 data-v-a344d033>h3 data-testidcategory-title classtext-lg font-semibold text-gray-900 dark:text-white mb-4 flex items-center data-v-a344d033>span classtext-2xl mr-3 data-v-a344d033>💻/span> Backend/h3>div classspace-y-3 data-v-a344d033>!---->div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>PHP/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Expert/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:90%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Python/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>C#/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>.NET/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Django/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>RESTful APIs/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>!---->/div>/div>div data-testidskill-category classbg-gradient-to-br from-white to-slate-50 dark:from-slate-800 dark:to-slate-900 rounded-lg p-6 shadow-sm border border-slate-200 dark:border-slate-700 hover:shadow-lg transition-all duration-300 data-v-a344d033>h3 data-testidcategory-title classtext-lg font-semibold text-gray-900 dark:text-white mb-4 flex items-center data-v-a344d033>span classtext-2xl mr-3 data-v-a344d033>💻/span> Database/h3>div classspace-y-3 data-v-a344d033>!---->div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>SQL/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>MySQL/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Database Design/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Database Optimization/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Relational Databases/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>!---->/div>/div>div data-testidskill-category classbg-gradient-to-br from-white to-slate-50 dark:from-slate-800 dark:to-slate-900 rounded-lg p-6 shadow-sm border border-slate-200 dark:border-slate-700 hover:shadow-lg transition-all duration-300 data-v-a344d033>h3 data-testidcategory-title classtext-lg font-semibold text-gray-900 dark:text-white mb-4 flex items-center data-v-a344d033>span classtext-2xl mr-3 data-v-a344d033>💻/span> Data Science/h3>div classspace-y-3 data-v-a344d033>!---->div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Data Analytics/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Statistical Modeling/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Intermediate/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:60%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Big Data/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Intermediate/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:60%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Time Series Modeling/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Intermediate/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:60%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>GIS/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Intermediate/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:60%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Census Data/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Data Visualization/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>!---->/div>/div>div data-testidskill-category classbg-gradient-to-br from-white to-slate-50 dark:from-slate-800 dark:to-slate-900 rounded-lg p-6 shadow-sm border border-slate-200 dark:border-slate-700 hover:shadow-lg transition-all duration-300 data-v-a344d033>h3 data-testidcategory-title classtext-lg font-semibold text-gray-900 dark:text-white mb-4 flex items-center data-v-a344d033>span classtext-2xl mr-3 data-v-a344d033>💻/span> Leadership/h3>div classspace-y-3 data-v-a344d033>!---->div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Scrum Master/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Team Leadership/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Agile Development/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Pair Programming/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>SOLID Principles/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Behavior Driven Design/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>!---->/div>/div>div data-testidskill-category classbg-gradient-to-br from-white to-slate-50 dark:from-slate-800 dark:to-slate-900 rounded-lg p-6 shadow-sm border border-slate-200 dark:border-slate-700 hover:shadow-lg transition-all duration-300 data-v-a344d033>h3 data-testidcategory-title classtext-lg font-semibold text-gray-900 dark:text-white mb-4 flex items-center data-v-a344d033>span classtext-2xl mr-3 data-v-a344d033>💻/span> Tools/h3>div classspace-y-3 data-v-a344d033>!---->div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Git/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>GitHub Copilot/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>Spec Kit/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Intermediate/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:60%; data-v-a344d033>/div>/div>/div>!---->/div>/div>div data-testidskill-category classbg-gradient-to-br from-white to-slate-50 dark:from-slate-800 dark:to-slate-900 rounded-lg p-6 shadow-sm border border-slate-200 dark:border-slate-700 hover:shadow-lg transition-all duration-300 data-v-a344d033>h3 data-testidcategory-title classtext-lg font-semibold text-gray-900 dark:text-white mb-4 flex items-center data-v-a344d033>span classtext-2xl mr-3 data-v-a344d033>💻/span> Modern Development/h3>div classspace-y-3 data-v-a344d033>!---->div data-testidskill-item classflex flex-col data-v-a344d033>div classflex justify-between items-center mb-2 data-v-a344d033>span data-testidskill-name classtext-sm font-medium text-gray-700 dark:text-gray-300 data-v-a344d033>AI-Assisted Development/span>span data-testidskill-level classtext-xs text-gray-500 dark:text-gray-400 data-v-a344d033>Advanced/span>/div>div classw-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 data-v-a344d033>div data-testidskill-progress classbg-blue-600 h-2 rounded-full transition-all duration-300 stylewidth:75%; data-v-a344d033>/div>/div>/div>!---->/div>/div>!---->/div>/div>/section>section idcontact roleregion aria-labelledbycontact-heading data-testidcontact-section classbg-gradient-to-br from-slate-800 via-blue-900 to-slate-900 py-16 sm:py-24 data-v-55d9f6ef data-v-5d3d2c4b>div classmax-w-4xl mx-auto px-4 sm:px-6 lg:px-8 data-v-5d3d2c4b>div classtext-center mb-12 data-v-5d3d2c4b>h2 idcontact-heading data-testidcontact-title classtext-3xl sm:text-4xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-white to-blue-200 mb-4 data-v-5d3d2c4b> Get In Touch /h2>p classtext-lg text-slate-200 max-w-2xl mx-auto data-v-5d3d2c4b> I'm always interested in discussing new opportunities and collaborative projects. Whether you're looking for a senior developer, team lead, or technical consultant, I'd love to hear about your challenges and see how I can help your team succeed. /p>/div>div classgrid md:grid-cols-2 gap-12 data-v-5d3d2c4b>div data-testidcontact-info classspace-y-6 data-v-5d3d2c4b>h3 classtext-xl font-semibold text-gray-900 dark:text-white mb-6 data-v-5d3d2c4b> Contact Information /h3>div classspace-y-4 data-v-5d3d2c4b>div classflex items-center space-x-4 data-v-5d3d2c4b>div classflex-shrink-0 w-12 h-12 bg-blue-100 dark:bg-blue-900 rounded-lg flex items-center justify-center data-v-5d3d2c4b>svg classw-6 h-6 text-blue-600 dark:text-blue-400 fillnone strokecurrentColor viewBox0 0 24 24 data-v-5d3d2c4b>path stroke-linecapround stroke-linejoinround stroke-width2 dM3 8l7.89 4.6a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z data-v-5d3d2c4b>/path>/svg>/div>div data-v-5d3d2c4b>h4 classtext-sm font-medium text-gray-900 dark:text-white data-v-5d3d2c4b>Email/h4>a hrefmailto:dave1twells@gmail.com classtext-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 transition-colors duration-200 underline data-v-5d3d2c4b>dave1twells@gmail.com/a>/div>/div>/div>/div>div data-testidsocial-links classspace-y-6 data-v-5d3d2c4b>h3 classtext-xl font-semibold text-gray-900 dark:text-white mb-6 data-v-5d3d2c4b> Connect Online /h3>div classspace-y-4 data-v-5d3d2c4b>!---->a hrefhttps://www.linkedin.com/in/davidwellsdeveloper/ data-testidlinkedin-link classflex items-center space-x-4 p-4 rounded-lg border border-gray-200 dark:border-gray-700 hover:border-blue-300 dark:hover:border-blue-600 hover:bg-white dark:hover:bg-gray-700 transition-colors duration-200 target_blank relnoopener noreferrer data-v-5d3d2c4b>div classbg-blue-600 text-white flex-shrink-0 w-10 h-10 rounded-lg flex items-center justify-center data-v-5d3d2c4b>svg fillcurrentColor viewBox0 0 24 24 classw-5 h-5 data-v-5d3d2c4b>path dM20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z>/path>/svg>/div>div data-v-5d3d2c4b>h4 classtext-sm font-medium text-gray-900 dark:text-white capitalize data-v-5d3d2c4b>linkedin/h4>p classtext-xs text-gray-500 dark:text-gray-400 data-v-5d3d2c4b> Professional linkedin profile /p>/div>/a>a hrefhttps://github.com/DavidWellsTheDeveloper data-testidgithub-link classflex items-center space-x-4 p-4 rounded-lg border border-gray-200 dark:border-gray-700 hover:border-blue-300 dark:hover:border-blue-600 hover:bg-white dark:hover:bg-gray-700 transition-colors duration-200 target_blank relnoopener noreferrer data-v-5d3d2c4b>div classbg-gray-800 text-white flex-shrink-0 w-10 h-10 rounded-lg flex items-center justify-center data-v-5d3d2c4b>svg fillcurrentColor viewBox0 0 24 24 classw-5 h-5 data-v-5d3d2c4b>path dM12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z>/path>/svg>/div>div data-v-5d3d2c4b>h4 classtext-sm font-medium text-gray-900 dark:text-white capitalize data-v-5d3d2c4b>github/h4>p classtext-xs text-gray-500 dark:text-gray-400 data-v-5d3d2c4b> Professional github profile /p>/div>/a>!---->/div>/div>/div>div classmt-12 p-4 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg data-v-5d3d2c4b>h4 classtext-sm font-medium text-blue-800 dark:text-blue-200 mb-2 data-v-5d3d2c4b> Contact Section - Constitutional Compliance /h4>div classtext-xs text-blue-600 dark:text-blue-300 data-v-5d3d2c4b> ✅ Authentic representation with TODO markersbr data-v-5d3d2c4b> ✅ Clean design with organized contact layoutbr data-v-5d3d2c4b> ✅ Fast loading with optimized icons and minimal JavaScriptbr data-v-5d3d2c4b> ✅ Deployment ready with accessible markup /div>/div>/div>/section>/div>/div>/div>div idteleports>/div>script typeapplication/json data-nuxt-datanuxt-app data-ssrtrue id__NUXT_DATA__ data-src/_payload.json?c0f8dfbd-72a2-4e0a-b159-107abb8c32d8>{state:1,once:19,_errors:20,serverRendered:22,path:23,prerenderedAt:24},Reactive,2,{$sresume.config:3},{name:4,description:5,url:6,environment:7,constitutional:8,performance:10,contact:14,social:16,analytics:17,features:18},David T. Wells - Digital Resume,Professional digital resume and portfolio for David T. Wells - Senior Full Stack Developer & Scrum Master,http://localhost:3000,production,{authenticRepresentation:9,cleanDesign:9,fastLoading:9},false,{targetLoadTime:11,targetFCP:12,targetLCP:13},3000,1500,2500,{email:15,phone:15,location:15},,{linkedin:15,github:15},{googleAnalytics:15,gtmId:15},{devTools:9,cspEnabled:9,contactForm:9},Set,ShallowReactive,21,{},true,/,1763232103377/script>script>window.__NUXT__{};window.__NUXT__.config{public:{nodeEnv:production,appUrl:http://localhost:3000,appName:David T. Wells - Digital Resume,appDescription:Professional digital resume and portfolio for David T. Wells - Senior Full Stack Developer & Scrum Master,authenticRepresentation:true,cleanDesign:true,fastLoading:true,targetLoadTime:3000,targetFCP:1500,targetLCP:2500,email:,phone:,location:,linkedin:,github:,twitter:,googleAnalytics:,gtmId:,cspEnabled:true,logRocketAppId:,mdc:{components:{prose:true,map:{p:prose-p,a:prose-a,blockquote:prose-blockquote,code-inline:prose-code-inline,code:ProseCodeInline,em:prose-em,h1:prose-h1,h2:prose-h2,h3:prose-h3,h4:prose-h4,h5:prose-h5,h6:prose-h6,hr:prose-hr,img:prose-img,ul:prose-ul,ol:prose-ol,li:prose-li,strong:prose-strong,table:prose-table,thead:prose-thead,tbody:prose-tbody,td:prose-td,th:prose-th,tr:prose-tr}},headings:{anchorLinks:{h1:false,h2:true,h3:true,h4:true,h5:false,h6:false}}},content:{locales:,defaultLocale:,integrity:1763232084534,experimental:{stripQueryParameters:false,advanceQuery:false,clientDB:false},respectPathCase:false,api:{baseURL:/api/_content},navigation:{fields:},tags:{p:prose-p,a:prose-a,blockquote:prose-blockquote,code-inline:prose-code-inline,code:ProseCodeInline,em:prose-em,h1:prose-h1,h2:prose-h2,h3:prose-h3,h4:prose-h4,h5:prose-h5,h6:prose-h6,hr:prose-hr,img:prose-img,ul:prose-ul,ol:prose-ol,li:prose-li,strong:prose-strong,table:prose-table,thead:prose-thead,tbody:prose-tbody,td:prose-td,th:prose-th,tr:prose-tr},highlight:false,wsUrl:,documentDriven:false,host:,trailingSlash:false,search:,contentHead:true,anchorLinks:{depth:4,exclude:1}}},app:{baseURL:/,buildId:c0f8dfbd-72a2-4e0a-b159-107abb8c32d8,buildAssetsDir:/_nuxt/,cdnURL:}}/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]