Help
RSS
API
Feed
Maltego
Contact
Domain > www.richdeane.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2017-02-06
52.200.131.123
(
ClassC
)
2026-02-08
66.33.60.193
(
ClassC
)
Port 443
HTTP/1.1 200 OKAccept-Ranges: bytesAccess-Control-Allow-Origin: *Age: 774931Cache-Control: public, max-age0, must-revalidateContent-Disposition: inlineContent-Length: 60676Content-Type: text/html; charsetutf-8Date: Sun, 08 Feb 2026 17:40:37 GMTEtag: d75dfc4a7481ef0ce2fbe323f074e96fServer: VercelStrict-Transport-Security: max-age63072000Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-PrefetchX-Matched-Path: /X-Nextjs-Prerender: 1X-Nextjs-Stale-Time: 4294967294X-Vercel-Cache: HITX-Vercel-Id: pdx1::tpht5-1770572437276-ca1ddd416aec !DOCTYPE html>html langen classtransition duration-300 ease-in-out dark scroll-smooth>head>meta charSetutf-8/>meta nameviewport contentwidthdevice-width, initial-scale1/>link relpreload href/_next/static/media/44c515b3114427f5-s.p.woff2 asfont crossorigin typefont/woff2/>link relpreload href/_next/static/media/98e3f34639aea112-s.p.woff2 asfont crossorigin typefont/woff2/>link relpreload asimage href/images/richie-rich.png/>link relstylesheet href/_next/static/css/2aeaa1e9b4cb1777.css?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP data-precedencenext/>link relpreload asscript fetchPrioritylow href/_next/static/chunks/webpack-0f227bdf2b0304ee.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP/>script src/_next/static/chunks/11eacf67-ea4a9de50358b893.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/954-cb1d4944672c6ce7.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/main-app-cab89fa599454fd8.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/27163a17-e194dbd8fe5a90cf.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/4a8527dd-0146de3001ab789c.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/91c6c604-1693fcd73d36a55f.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/790-766f31ba3f84145b.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/113-b41c1215282d7809.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/app/layout-8460d4d794a73f11.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/955-1de83b1b9a303945.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/433-f8c7c4a844dee2f1.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/app/page-c93b4e27d12c9ae5.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script src/_next/static/chunks/app/global-error-aea8267a951958cb.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>meta namenext-size-adjust content/>title>Rich Deane || Senior Full Stack Developer & Solutions Engineer/title>meta namedescription contentExperienced Full Stack Developer specializing in building solutions./>link relicon href/favicon.ico typeimage/x-icon sizes32x32/>script src/_next/static/chunks/polyfills-42372ed130431b0a.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP noModule>/script>/head>body class__variable_869334 __variable_f228ab antialiased flex flex-col p-4 lg:p-8 xl:p-16 bg-gray-100 dark:bg-black/90>script>((e,t,n,r,i,a,o,s)>{let ldocument.documentElement,ulight,dark;function c(t){var n;(Array.isArray(e)?e:e).forEach(e>{let nclasse,rn&&a?i.map(e>ae||e):i;n?(l.classList.remove(...r),l.classList.add(a&&at?at:t)):l.setAttribute(e,t)}),nt,s&&u.includes(n)&&(l.style.colorSchemen)}if(r)c(r);else try{let elocalStorage.getItem(t)||n,ro&&systeme?window.matchMedia((prefers-color-scheme: dark)).matches?dark:light:e;c(r)}catch(e){}})(class,theme,dark,null,light,dark,null,true,true)/script>div classfixed inset-0 -z-10 pointer-events-none>div styleposition:relative;width:100%;height:100%;overflow:hidden;pointer-events:auto classw-full h-full>div stylewidth:100%;height:100%>canvas styledisplay:block>/canvas>/div>/div>/div>header classflex items-center justify-between z-50>div classw-auto lg:w-1/4 xl:w-2/6 lg:max-w-180px xl:max-w-300px 2xl:max-w-300px 3xl:max-w-350px fixed top-4 lg:top-auto lg:left-8 lg:bottom-8 xl:left-16 xl:bottom-16 flex flex-row lg:flex-col gap-2 lg:gap-0 p-2 rounded-2xl backdrop-blur-md lg:backdrop-blur-none pointer-events-auto font-funnel-display h-64px md:h-auto drop-shadow-md lg:drop-shadow-none >a href/#hello>div classflex flex-row lg:flex-col gap-1>div classimage lg:mb-4 rich-image-wrapper-outer>div classrich-image-wrapper>div classimage-content group relative>div classimage-bg bg-var(--green) >/div>div classimage-wrap overflow-visible xl:overflow-hidden>img src/images/richie-rich.png altRich Deane classw-full h-auto/>/div>/div>/div>/div>div classtext-xl md:text-2xl lg:text-4rem lx:text-6rem leading-0.8 font-black font-funnel-display tabular-nums lining-nums lg:mb-4 lg:h-auto flex flex-col justify-center drop-shadow-md lg:drop-shadow-none>span>Richbr/>Deane/span>/div>/div>/a>div classhidden lg:block tagline lg:text-1rem xl:text-1.2rem leading-1.2 font-medium font-funnel-display w-full max-w-300>span>Senior Full Stack Developer & Solutions Engineer @ Futureverse/span>/div>/div>nav classhidden md:flex items-center w-4/6 ml-auto mr-0 space-x-2 justify-end fixed right-4 top-4 lg:right-8 lg:top-8 xl:right-16 xl:top-16 pointer-events-none >ul classflex justify-between max-h-64px px-6 py-4 items-center lg:space-x-2 rounded-2xl bg-gray-200/25 dark:bg-gray-700/25 drop-shadow-md backdrop-blur-md pointer-events-auto font-funnel-display>li classw-full>a classinline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:not(class*'size-'):size-4 shrink-0 &_svg:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3px aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-9 px-4 py-2 has->svg:px-3 cursor-pointer hover:!bg-var(--green) hover:!text-white dark:hover:!text-gray-800 transition-all duration-300 ease-in-out text-gray-800 dark:text-white hover:!bg-var(--green) hover:!text-white dark:hover:!text-gray-800 transition-all duration-300 ease-in-out" data-slotbutton href/#hello>Hello/a>/li>li classw-full>a classinline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:not(class*'size-'):size-4 shrink-0 &_svg:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3px aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-9 px-4 py-2 has->svg:px-3 cursor-pointer hover:!bg-var(--green) hover:!text-white dark:hover:!text-gray-800 transition-all duration-300 ease-in-out text-gray-800 dark:text-white hover:!bg-var(--green) hover:!text-white dark:hover:!text-gray-800 transition-all duration-300 ease-in-out" data-slotbutton href/#work>Work/a>/li>li classw-full>a classinline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:not(class*'size-'):size-4 shrink-0 &_svg:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3px aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-9 px-4 py-2 has->svg:px-3 cursor-pointer hover:!bg-var(--green) hover:!text-white dark:hover:!text-gray-800 transition-all duration-300 ease-in-out text-gray-800 dark:text-white hover:!bg-var(--green) hover:!text-white dark:hover:!text-gray-800 transition-all duration-300 ease-in-out" data-slotbutton href/#about>About/a>/li>li classw-full>a classinline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:not(class*'size-'):size-4 shrink-0 &_svg:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3px aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-9 px-4 py-2 has->svg:px-3 cursor-pointer hover:!bg-var(--green) hover:!text-white dark:hover:!text-gray-800 transition-all duration-300 ease-in-out text-gray-800 dark:text-white hover:!bg-var(--green) hover:!text-white dark:hover:!text-gray-800 transition-all duration-300 ease-in-out" data-slotbutton href/#skills>Skills/a>/li>li>button data-slotbutton classinline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:not(class*'size-'):size-4 shrink-0 &_svg:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3px aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9 cursor-pointer dark:text-white hover:!bg-var(--green) hover:!text-white dark:hover:!text-gray-800 dark:hover:!bg-var(--green)>svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-sun h-1.2rem w-1.2rem rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0>circle cx12 cy12 r4>/circle>path dM12 2v2>/path>path dM12 20v2>/path>path dm4.93 4.93 1.41 1.41>/path>path dm17.66 17.66 1.41 1.41>/path>path dM2 12h2>/path>path dM20 12h2>/path>path dm6.34 17.66-1.41 1.41>/path>path dm19.07 4.93-1.41 1.41>/path>/svg>svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-moon absolute h-1.2rem w-1.2rem rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100>path dM12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z>/path>/svg>span classsr-only>Toggle theme/span>/button>/li>/ul>/nav>nav classflex md:hidden items-center space-y-2 justify-end fixed right-4 top-4 >button data-slotbutton classinline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:not(class*'size-'):size-4 shrink-0 &_svg:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3px aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive shadow-xs h-9 has->svg:px-3 cursor-pointer aspect-square py-8 px-8 w-full max-w-64px max-h-64px bg-gray-200/15 dark:bg-gray-700/15 backdrop-blur-md lg:backdrop-blur-none text-gray-800 dark:text-white rounded-2xl hover:bg-accent hover:dark:bg-accent transition duration-300 ease-in-out drop-shadow-md lg:drop-shadow-none>svg xmlnshttp://www.w3.org/2000/svg width28 height28 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width1 stroke-linecapround stroke-linejoinround classlucide lucide-menu>line x14 x220 y112 y212>/line>line x14 x220 y16 y26>/line>line x14 x220 y118 y218>/line>/svg>/button>/nav>/header>div classflex flex-col gap-16 md:gap-16 md:landscape:gap-24 lg:landscape:gap-32 lg:gap-40 xl:landscape:gap-40 2xl:landscape:gap-48 2xl:gap-56 pt-35dvh md:landscape:pt-20dvh lg:landscape:pt-15dvh lg:pt-16dvh pl-4 pr-4>div classflex flex-col items-start 2xl:w-auto 2xl:ml-auto 2xl:mr-calc(100%/10) 3xl:m-auto mr-0 pl-0 lg:pl-12 >/div>div classflex flex-col items-start lg:w-3/4 xl:w-4/6 2xl:w-auto 2xl:ml-auto 2xl:mr-calc(100%/10) 3xl:m-auto lg:ml-auto mr-0 pl-0 lg:pl-12 section-title scroll-mt-52 data-title//hello idhello>div classfont-black font-funnel-display tabular-nums lining-nums mb-4 max-w-4xl gap-x-2 text-xl md:text-3xl lg:text-3xl xl:text-4xl flex flex-row flex-wrap justify-between>span classrelative inline-block>span>span classrelative opacity-20>H/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>,/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>I/span>/span>span>span classrelative opacity-20>'/span>/span>span>span classrelative opacity-20>m/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>R/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>c/span>/span>span>span classrelative opacity-20>h/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>—/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>a/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>s/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>o/span>/span>span>span classrelative opacity-20>r/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>f/span>/span>span>span classrelative opacity-20>u/span>/span>span>span classrelative opacity-20>l/span>/span>span>span classrelative opacity-20>l/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>s/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>c/span>/span>span>span classrelative opacity-20>k/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>d/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>v/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>l/span>/span>span>span classrelative opacity-20>o/span>/span>span>span classrelative opacity-20>p/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>r/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>d/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>s/span>/span>span>span classrelative opacity-20>o/span>/span>span>span classrelative opacity-20>l/span>/span>span>span classrelative opacity-20>u/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>o/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>s/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>g/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>r/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>t/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>F/span>/span>span>span classrelative opacity-20>u/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>u/span>/span>span>span classrelative opacity-20>r/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>v/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>r/span>/span>span>span classrelative opacity-20>s/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>./span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>I/span>/span>span>span classrelative opacity-20>'/span>/span>span>span classrelative opacity-20>m/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>p/span>/span>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>s/span>/span>span>span classrelative opacity-20>s/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>o/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>e/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>b/span>/span>span>span classrelative opacity-20>o/span>/span>span>span classrelative opacity-20>u/span>/span>span>span classrelative opacity-20>t/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>c/span>/span>span>span classrelative opacity-20>r/span>/span>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>f/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>g/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>u/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>v/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>,/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>u/span>/span>span>span classrelative opacity-20>s/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>r/span>/span>span>span classrelative opacity-20>-/span>/span>span>span classrelative opacity-20>f/span>/span>span>span classrelative opacity-20>o/span>/span>span>span classrelative opacity-20>c/span>/span>span>span classrelative opacity-20>u/span>/span>span>span classrelative opacity-20>s/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>d/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>d/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>g/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>l/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>x/span>/span>span>span classrelative opacity-20>p/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>r/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>c/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>s/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>h/span>/span>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>t/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>b/span>/span>span>span classrelative opacity-20>l/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>d/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>c/span>/span>span>span classrelative opacity-20>r/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>v/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>y/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>w/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>h/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>t/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>c/span>/span>span>span classrelative opacity-20>h/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>c/span>/span>span>span classrelative opacity-20>a/span>/span>span>span classrelative opacity-20>l/span>/span>/span> span classrelative inline-block>span>span classrelative opacity-20>p/span>/span>span>span classrelative opacity-20>r/span>/span>span>span classrelative opacity-20>e/span>/span>span>span classrelative opacity-20>c/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>s/span>/span>span>span classrelative opacity-20>i/span>/span>span>span classrelative opacity-20>o/span>/span>span>span classrelative opacity-20>n/span>/span>span>span classrelative opacity-20>./span>/span>/span> /div>/div>div classflex flex-col items-start lg:w-3/4 xl:w-4/6 2xl:w-auto 2xl:ml-auto 2xl:mr-calc(100%/10) 3xl:m-auto lg:ml-auto mr-0 pl-0 lg:pl-12 section-title scroll-mt-52 data-title//recent projects I've worked on idwork>div classtext-base lg:text-2xl font-normal leading-1.5 font-funnel-display max-w-4xl grid grid-cols-1 gap-8 md:gap-8 lg:gap-8>div classmax-w-4xl text-justify text-lg lg:text-xl xl:text-2xl styleopacity:0;transform:translateY(20px)>With over a decade of experience building things on the web — from community focused tools to highly scalable apps & experiences used by thousands. I've worked across all kinds of stacks and teams, but these days I mostly find myself deep in JavaScript/TypeScript land./div>ul classflex-col items-start justify-center space-y-8 lg:space-y-16 h-full w-full perspective-origin-left center perspective-150vw will-change-perspective-origin relative translate-z-0 preserve-3d projects>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/the-playground>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>The Playground/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>A playground for Futureverse SDKs & The Root Network./p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/transact-sdk>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>Transact SDK/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Seamlessly build & send transactions on The Root Network/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/the-third-kingdom>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>The Third Kingdom/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Fair Value Sale / Prysm Redemption & Mint / Team Token Mint/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/reebok-impact>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>Reebok Impact/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Digital Shoe Mint/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/the-next-legends>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>The Next Legends/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Smart Contract Bag Opening & Equipment Claim / Mint/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/raicers>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>Raicers/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Smart Contract Kart Claim / Mint/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/atem-car-club>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>ATEM Vehicles/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Smart Contract Vehicle Claim / Mint/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/on-track>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>ATEM OnTrack/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Dapp for minting OnTrack NFTs/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/atem-car-club-garage>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>ATEM Car Club/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>3D Garage Experience/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/loaded-reports-hub>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>Loaded Reports Hub & App/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Web App and Marketing Site/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/motatapu>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>Motatapu/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Marketing Site/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/remada-newmarket>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>Ramada Newmarket/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Marketing Site/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/safari-hotels>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>Safari Hotels/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Web App and Marketing Site/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/tryp-wellington>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>Tryp Wellington/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Marketing Site/p>/div>/a>/li>li classtransform-3d origin-left group styleopacity:0;transform:none>a classw-full href/project/the-crown-pub>div classflex flex-col items-start justify-center font-funnel-display origin-top-left transition-all duration-1000 ease-in-out>h1 classtext-2rem sm:text-2.5rem md:text-3rem lg:text-3.5rem xl:text-4rem 2xl:text-4.5rem font-black lg:text-foreground tracking-tight group-hover:text-foreground group-hover:dark:text-white mb-2 lg:mb-0.5 stroke-1 group-hover:stroke-0 transition-all duration-300 leading-1 ease-in-out>The Crown Pub/h1>p classtext-1rem sm:text-1.2rem md:text-1.4rem lg:text-1.6rem xl:text-1.8rem 2xl:text-2rem font-medium lg:leading-1 lg:text-foreground/20 mt-0 md:mt-0.5 lg:mt-1 xl:mt-2.5 2xl:mt-4 group-hover:text-foreground transition-all duration-300 ease-in-out>Marketing Site/p>/div>/a>/li>/ul>/div>/div>div classflex flex-col items-start lg:w-3/4 xl:w-4/6 2xl:w-auto 2xl:ml-auto 2xl:mr-calc(100%/10) 3xl:m-auto lg:ml-auto mr-0 pl-0 lg:pl-12 section-title scroll-mt-52 data-title//a little about me idabout>div classfont-normal font-funnel-display tabular-nums lining-nums mb-4 max-w-4xl gap-x-1.5 text-justify text-lg lg:text-xl xl:text-2xl>div classflex flex-col w-full styleopacity:0;transform:translateY(20px)>After a couple of years working as a software developer for an accounting firm in England, I set off on a 3 month travelling adventure in 2007 — only to fall in love with New Zealand where I ended up staying for 17 years./div>/div>div classfont-normal font-funnel-display tabular-nums lining-nums mb-4 max-w-4xl gap-x-1.5 text-justify text-lg lg:text-xl xl:text-2xl>div classflex flex-col w-full styleopacity:0;transform:translateY(20px)>During that time, I ran my own web agency, working with mostly hospitality and tourism businesses. I handled everything from project scoping and custom builds to plugin development and marketing strategy. It was a crash course in wearing all the hats, and it taught me a lot about managing clients, juggling deadlines, and building lasting relationships (with people and code alike)./div>/div>div classfont-normal font-funnel-display tabular-nums lining-nums mb-4 max-w-4xl gap-x-1.5 text-justify text-lg lg:text-xl xl:text-2xl>div classflex flex-col w-full styleopacity:0;transform:translateY(20px)>For the last 4 years, I've been working in and around the Web3 space and I have been lucky enough to work on some amazing projects, creating web apps and developer tools, including SDKs, dApps, and blockchain integrations./div>/div>div classfont-normal font-funnel-display tabular-nums lining-nums mb-4 max-w-4xl gap-x-1.5 text-justify text-lg lg:text-xl xl:text-2xl>div classflex flex-col w-full styleopacity:0;transform:translateY(20px)>I've now moved to Scotland with my young family, and these days you'll find me building experiences and tools for Futureverse and helping developers navigate the Root Network and Futureverse Toolset./div>/div>/div>div classflex flex-col items-start lg:w-3/4 xl:w-4/6 2xl:w-auto 2xl:ml-auto 2xl:mr-calc(100%/10) 3xl:m-auto lg:ml-auto mr-0 pl-0 lg:pl-12 section-title scroll-mt-52 data-title//Skills idskills>div classtext-base lg:text-2xl font-normal leading-1.5 font-funnel-display tabular-nums lining-nums max-w-4xl grid grid-cols-1 gap-4 mb-16>div classmax-w-4xl text-justify text-lg lg:text-xl xl:text-2xl styleopacity:0;transform:translateY(20px)>Working mostly with JavaScript and TypeScript, and having over 5 years experience in frameworks like React and Next.js, I have a solid understanding of the frontend ecosystem and the tools that come with it. I am comfortable building out complex UIs, working with design systems and component libraries, and implementing state management solutions./div>div classmax-w-4xl text-justify text-lg lg:text-xl xl:text-2xl styleopacity:0;transform:translateY(20px)>I am also just as comfortable building out the backend with Node.js and Express or NestJS, and I have a solid understanding of databases like MySQL, Postgres and MongoDB. Also, having spent a fair bit of time in the Web3 world, I know my way around Solidity and smart contract development/div>div classmt-4 md:mt-6 lg:mt-8 styleopacity:0;transform:translateY(20px)>h2 classtext-xs tracking-wider font-bold text-foreground/50 mb-1 uppercase>Languages/h2>ul classlist-none list-inside items-center rounded-2xl bg-gray-200/25 dark:bg-gray-700/25 drop-shadow-md backdrop-blur-md pointer-events-auto p-4 text-lg grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-x-1 gap-y-3>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>JavaScript/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>TypeScript/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Solidity/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>GraphQL/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>SQL/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>HTML5/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>CSS/li>/ul>/div>div classmt-4 md:mt-6 lg:mt-8 styleopacity:0;transform:translateY(20px)>h2 classtext-xs tracking-wider font-bold text-foreground/50 mb-1 uppercase>Frontend/h2>ul classlist-none list-inside items-center rounded-2xl bg-gray-200/25 dark:bg-gray-700/25 drop-shadow-md backdrop-blur-md pointer-events-auto p-4 text-lg grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-x-1 gap-y-3>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>React/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>NextJS/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Vite/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Gatsby/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Angular/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Redux/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Zustand/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Tanstack (React) Query/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>ThreeJS/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Framer Motion/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>GSAP/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Tailwind/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>shadcn/ui/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>SASS/SCSS/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Styled Components/li>/ul>/div>div classmt-4 md:mt-6 lg:mt-8 styleopacity:0;transform:translateY(20px)>h2 classtext-xs tracking-wider font-bold text-foreground/50 mb-1 uppercase>Backend & Databases/h2>ul classlist-none list-inside items-center rounded-2xl bg-gray-200/25 dark:bg-gray-700/25 drop-shadow-md backdrop-blur-md pointer-events-auto p-4 text-lg grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-x-1 gap-y-3>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>NodeJS/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Express/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>NestJS/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Postgres/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>MySQL/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>MongoDB/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Redis/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Prisma/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Drizzle/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Socket.IO/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Hardhat/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Foundry/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Viem/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Ethers.js/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Polkadot.js/li>/ul>/div>div classmt-4 md:mt-6 lg:mt-8 styleopacity:0;transform:translateY(20px)>h2 classtext-xs tracking-wider font-bold text-foreground/50 mb-1 uppercase>DevOps & Tooling/h2>ul classlist-none list-inside items-center rounded-2xl bg-gray-200/25 dark:bg-gray-700/25 drop-shadow-md backdrop-blur-md pointer-events-auto p-4 text-lg grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-x-1 gap-y-3>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>AWS/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Terraform/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Cloudflare/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Docker/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Git/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>CI/CD/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>GitHub Actions/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Vercel/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Netlify/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Webpack/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Babel/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>CI/CD/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Vitest/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Jest/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Mocha/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Chai/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>NX/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Turborepo/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>GitHub/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Bitbucket/li>/ul>/div>div classmt-4 md:mt-6 lg:mt-8 styleopacity:0;transform:translateY(20px)>h2 classtext-xs tracking-wider font-bold text-foreground/50 mb-1 uppercase>Tools & Project Management/h2>ul classlist-none list-inside items-center rounded-2xl bg-gray-200/25 dark:bg-gray-700/25 drop-shadow-md backdrop-blur-md pointer-events-auto p-4 text-lg grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-x-1 gap-y-3>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Figma/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Postman/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Insomnia/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Jira/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Notion/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Agile/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Professional Scrum Master I/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Professional Scrum Product Owner I/li>/ul>/div>div classmt-4 md:mt-6 lg:mt-8 styleopacity:0;transform:translateY(20px)>h2 classtext-xs tracking-wider font-bold text-foreground/50 mb-1 uppercase>Learning & Development/h2>ul classlist-none list-inside items-center rounded-2xl bg-gray-200/25 dark:bg-gray-700/25 drop-shadow-md backdrop-blur-md pointer-events-auto p-4 text-lg grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-x-1 gap-y-3>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>GO Lang/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Rust/li>li classtext-gray-800 dark:text-white leading-tight text-sm styleopacity:0;transform:translateX(-10px)>Python/li>/ul>/div>/div>/div>div classpointer-events-none fixed inset-0 z--1 overflow-hidden w-full h-full >div styleposition:relative;width:100%;height:100%;overflow:hidden;pointer-events:auto classw-full h-full point-events-none absolute top-0 left-0 opacity-80 dark:opacity-50 >div stylewidth:100%;height:100%>canvas styledisplay:block>/canvas>/div>/div>/div>/div>script src/_next/static/chunks/webpack-0f227bdf2b0304ee.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP async>/script>script>(self.__next_fself.__next_f||).push(0)/script>script>self.__next_f.push(1,1:\$Sreact.fragment\\n2:I7135,\667\,\static/chunks/27163a17-e194dbd8fe5a90cf.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\970\,\static/chunks/4a8527dd-0146de3001ab789c.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\269\,\static/chunks/91c6c604-1693fcd73d36a55f.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\790\,\static/chunks/790-766f31ba3f84145b.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\113\,\static/chunks/113-b41c1215282d7809.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\177\,\static/chunks/app/layout-8460d4d794a73f11.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\ThemeProvider\\n3:I5744,\667\,\static/chunks/27163a17-e194dbd8fe5a90cf.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\970\,\static/chunks/4a8527dd-0146de3001ab789c.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\269\,\static/chunks/91c6c604-1693fcd73d36a55f.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\790\,\static/chunks/790-766f31ba3f84145b.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\113\,\static/chunks/113-b41c1215282d7809.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\177\,\static/chunks/app/layout-8460d4d794a73f11.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\Inner\\n4:I5069,\667\,\static/chunks/27163a17-e194dbd8fe5a90cf.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\970\,\static/chunks/4a8527dd-0146de3001ab789c.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\269\,\static/chunks/91c6c604-1693fcd73d36a55f.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\790\,\static/chunks/790-766f31ba3f84145b.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\113\,\static/chunks/113-b41c1215282d7809.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\177\,\static/chunks/app/layout-8460d4d794a73f11.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\Header\\n5:I7420,\667\,\static/chunks/27163a17-e194dbd8fe5a90cf.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\970\,\static/chunks/4a8527dd-0146de3001ab789c.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\269\,\static/chunks/91c6c604-1693fcd73d36a55f.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\790\,\static/chunks/790-766f31ba3f84145b.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\113\,\static/chunks/113-b41c1215282d7809)/script>script>self.__next_f.push(1,.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\177\,\static/chunks/app/layout-8460d4d794a73f11.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\AnimatePresence\\n6:I1063,,\\\n7:I1483,,\\\n8:I8533,\667\,\static/chunks/27163a17-e194dbd8fe5a90cf.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\970\,\static/chunks/4a8527dd-0146de3001ab789c.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\269\,\static/chunks/91c6c604-1693fcd73d36a55f.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\790\,\static/chunks/790-766f31ba3f84145b.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\955\,\static/chunks/955-1de83b1b9a303945.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\433\,\static/chunks/433-f8c7c4a844dee2f1.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\974\,\static/chunks/app/page-c93b4e27d12c9ae5.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\Home\\n9:I5125,,\OutletBoundary\\nc:I5125,,\ViewportBoundary\\ne:I5125,,\MetadataBoundary\\n10:I6137,\219\,\static/chunks/app/global-error-aea8267a951958cb.js?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\default\\n:HL\/_next/static/media/44c515b3114427f5-s.p.woff2\,\font\,{\crossOrigin\:\\,\type\:\font/woff2\}\n:HL\/_next/static/media/98e3f34639aea112-s.p.woff2\,\font\,{\crossOrigin\:\\,\type\:\font/woff2\}\n:HL\/_next/static/css/2aeaa1e9b4cb1777.css?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\style\\n)/script>script>self.__next_f.push(1,0:{\P\:null,\b\:\DKdfIYC2J2Y9Y0cd_Bwlo\,\p\:\\,\c\:\\,\\,\i\:false,\f\:\\,{\children\:\__PAGE__\,{}},\$undefined\,\$undefined\,true,\\,\$\,\$1\,\c\,{\children\:\$\,\link\,\0\,{\rel\:\stylesheet\,\href\:\/_next/static/css/2aeaa1e9b4cb1777.css?dpldpl_Et7tHixkSDwzoj8HRqiA3MEG2spP\,\precedence\:\next\,\crossOrigin\:\$undefined\,\nonce\:\$undefined\},\$\,\html\,null,{\lang\:\en\,\suppressHydrationWarning\:true,\className\:\transition duration-300 ease-in-out dark scroll-smooth\,\children\:\$\,\body\,null,{\className\:\__variable_869334 __variable_f228ab antialiased flex flex-col p-4 lg:p-8 xl:p-16 bg-gray-100 dark:bg-black/90\,\children\:\$\,\$L2\,null,{\attribute\:\class\,\defaultTheme\:\dark\,\disableTransitionOnChange\:true,\children\:\$\,\$L3\,null,{},\$\,\$L4\,null,{},\$\,\div\,null,{\className\:\flex flex-col gap-16 md:gap-16 md:landscape:gap-24 lg:landscape:gap-32 lg:gap-40 xl:landscape:gap-40 2xl:landscape:gap-48 2xl:gap-56 pt-35dvh md:landscape:pt-20dvh lg:landscape:pt-15dvh lg:pt-16dvh pl-4 pr-4\,\children\:\$\,\div\,null,{\className\:\flex flex-col items-start 2xl:w-auto 2xl:ml-auto 2xl:mr-calc(100%/10) 3xl:m-auto mr-0 pl-0 lg:pl-12 \},\$\,\$L5\,null,{\children\:\$\,\$L6\,null,{\parallelRouterKey\:\children\,\error\:\$undefined\,\errorStyles\:\$undefined\,\errorScripts\:\$undefined\,\template\:\$\,\$L7\,null,{},\templateStyles\:\$undefined\,\templateScripts\:\$undefined\,\notFound\:\$\,\title\,null,{\children\:\404: This page could not be found.\},\$\,\div\,null,{\style\:{\fontFamily\:\system-ui,\\\Segoe UI\\\,Roboto,Helvetica,Arial,sans-serif,\\\Apple Color Emoji\\\,\\\Segoe UI Emoji\\\\,\height\:\100vh\,\textAlign\:\center\,\display\:\flex\,\flexDirection\:\column\,\alignItems\:\center\,\justifyContent\:\center\},\children\:\$\,\div\,null,{\children\:\$\,\style\,null,{\dangerouslySetInnerHTML\:{\__html\:\body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\}},\$\,\h1\,null,{\className\:\next-error-h1\,\style\:{\display\:\inline-block\,\margin\:\0 20px 0 0\,\padding\:\0 23px 0 0\,\fontSize\:24,\fontWeight\:500,\verticalAlign\:\top\,\lineHeight\:\49px\},\children\:404},\$\,\div\,null,{\style\:{\display\:\inline-block\},\children\:\$\,\h2\,null,{\style\:{\fontSize\:14,\fontWeight\:400,\lineHeight\:\49px\,\margin\:0},\children\:\This page could not be found.\}}}},,\forbidden\:\$undefined\,\unauthorized\:\$undefined\}}}}}}},{\children\:\__PAGE__\,\$\,\$1\,\c\,{\children\:\$\,\$L8\,null,{},\$undefined\,null,\$\,\$L9\,null,{\children\:\$La\,\$Lb\,null}},{},null,false},null,false,\$\,\$1\,\h\,{\children\:null,\$\,\$1\,\Nj2GnF1nQJF43K-gqFswI\,{\children\:\$\,\$Lc\,null,{\children\:\$Ld\},\$\,\meta\,null,{\name\:\next-size-adjust\,\content\:\\}},\$\,\$Le\,null,{\children\:\$Lf\}},false,\m\:\$undefined\,\G\:\$10\,,\s\:false,\S\:true}\n)/script>script>self.__next_f.push(1,d:\$\,\meta\,\0\,{\charSet\:\utf-8\},\$\,\meta\,\1\,{\name\:\viewport\,\content\:\widthdevice-width, initial-scale1\}\na:null\n)/script>script>self.__next_f.push(1,b:null\nf:\$\,\title\,\0\,{\children\:\Rich Deane || Senior Full Stack Developer \u0026 Solutions Engineer\},\$\,\meta\,\1\,{\name\:\description\,\content\:\Experienced Full Stack Developer specializing in building solutions.\},\$\,\link\,\2\,{\rel\:\icon\,\href\:\/favicon.ico\,\type\:\image/x-icon\,\sizes\:\32x32\}\n)/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
]