@ -2,79 +2,115 @@
< html lang = "en" >
< html lang = "en" >
< head >
< head >
< title > Dustin Swan - Resume< / title >
< title > Dustin Swan - Resume< / title >
< meta charset = "UTF-8" >
< meta charset = "UTF-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< script src = "https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js" defer > < / script >
<!-- <script src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js" defer></script> -->
< script src = "https://cdn.tailwindcss.com" > < / script >
< script src = "https://cdn.tailwindcss.com" > < / script >
< script src = "https://kit.fontawesome.com/024d65f707.js" crossorigin = "anonymous" > < / script >
< script src = "https://kit.fontawesome.com/024d65f707.js" crossorigin = "anonymous" > < / script >
< script >
< link rel = "stylesheet" href = "https://code.cdn.mozilla.net/fonts/fira.css" >
< / script >
< link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/Iosevka/6.0.0/iosevka/iosevka.min.css" >
< style type = "text/tailwindcss" >
< style type = "text/tailwindcss" >
@font-face {
font-family: Iosevka;
src: url("https://dustinswan.com/iosevka-fixed-regular.woff2") format("woff2");
}
body {
body {
font-family: Iosevka, monospace ;
font-family: "Fira Sans", sans-serif;
}
}
@layer base {
@layer base {
.section-title {
.section-title {
@apply uppercase font-semibold text-lg border-b-2 mb-4;
@apply uppercase font-semibold text-lg border-b-2 mb-4;
font-family: Iosevka;
}
}
.subtitle {
.subtitle {
@apply uppercase font-bold text-sm my-1;
@apply uppercase font-bold text-sm my-1;
font-family: Iosevka;
}
}
a {
a {
@apply text-cyan-400 hover:text-cyan-200 transition-colors;
@apply text-cyan-400 hover:text-cyan-200 transition-colors;
}
}
.sidebar ul {
@apply mb-6;
}
.sidebar li {
@apply mb-2;
font-family: "Iosevka";
}
.main li {
list-style-type: "› ";
@apply mb-1;
}
}
}
< / style >
< / style >
< / head >
< / head >
< body class = "bg-slate-300 h-full" >
< body class = "bg-slate-300 h-full" >
< div class = "h-full lg:container lg:mx-auto lg:flex min-h-screen" >
< div class = "h-full lg:container lg:mx-auto lg:flex min-h-screen" >
< section class = "p-8 lg:px-12 lg:py-9 bg-slate-100" >
< section class = " main p-8 lg:px-12 lg:py-9 bg-slate-100">
< h1 class = "text-4xl mb-4 uppercase font-bold border-b-2 py-2" > Dustin Swan< / h1 >
< h1 class = "text-4xl mb-4 uppercase font- semi bold border-b-2 py-2"> Dustin Swan< / h1 >
< article class = "pb-8" >
< article class = "pb-8" >
< p class = "py-1" > < strong > Software Engineer< / strong > with over 12 years experience architecting, implementing, and shipping secure, cross-platform applications. Proficient in functional and object-oriented programming paradigms; delivering clean, maintainable code; utilizing modern, standards-based web technologies.
< p class = "py-1" > < strong > Software Engineer< / strong > with over 12 years experience architecting, implementing, and shipping secure, cross-platform applications. Proficient in functional and object-oriented programming paradigms; delivering clean, maintainable code; utilizing modern, standards-based web technologies.
< / article >
< / article >
< article class = "pb-8" >
< h3 class = "section-title" > Experience< / h3 >
< h3 class = "section-title" > Experience< / h3 >
Test
< article class = "pb-8" >
< img src = "static/visionable.png" class = "w-16 float-left mt-1 mr-4" / >
< h4 class = "text-lg font-bold" > Front End & API Lead Software Engineer< / h4 >
< div > Visionable UK Ltd < i class = "text-slate-500" > (previously IOCOM)< / i > | 2009 - present< / div >
< ul class = "clear-left m-4 ml-20" >
< li > Designed & developed our flagship responsive, cross-platform JavaScript video conferencing application< / li >
< li > Architected, developed & documented our original RESTful APIs< / li >
< li > Lead a team of 7 front- & back-end developers to create an AWS SaaS API platform and a React + NextJS web application< / li >
< li > Worked closely with Product & Design teams to quickly turn ideas into functional prototypes< / li >
< / ul >
< / article >
< / article >
< article class = "pb-8" >
< article class = "pb-8" >
< img src = "static/abbott.png" class = "w-16 float-left mr-4" / >
< h4 class = "text-lg font-bold" > Validation Engineer< / h4 >
< div > Abbott Laboratories | 2007 - 2009< / div >
< ul class = "clear-left m-4 ml-20" >
< li > Managed projects and assembled cross-functional teams to construct change plans and assess product impact< / li >
< li > Authored changes to testing documentation and product design records< / li >
< li > Processed changes to quality system and product documents to comply with medical device regulatory requirements< / li >
< li > Programmed automated testing control procedures using the Laboratory Information Management System (LIMS)< / li >
< / ul >
< / article >
< h3 class = "section-title" > Education< / h3 >
< h3 class = "section-title" > Education< / h3 >
< h4 class = "text-lg font-bold" > Bachelor of Science in Biological Engineering< / h4 >
< article class = "pb-8" >
< img src = "static/uic.png" class = "w-16 float-left mt-2 mr-4" / >
< h4 class = "text-lg font-bold" > Bachelor of Science in Bioengineering< / h4 >
< i > with minors in Computer Science & Mathematics< / i >
< i > with minors in Computer Science & Mathematics< / i >
< div > University of Illinois Chicago (UIC) - 2007< / div >
< div > University of Illinois Chicago (UIC) | 2007< / div >
< / article >
< / article >
< / section >
< / section >
< section class = "p-8 mb-8 lg:mb-0 lg:pt-16 lg:p-12 bg-slate-800 text-slate-100 lg:w-96 shrink-0 lg:order-first" >
< section class = " sidebar p-8 mb-8 lg:mb-0 lg:pt-16 lg:p-12 bg-slate-800 text-slate-100 lg:w-96 shrink-0 lg:order-first">
< h3 class = "section-title" > Contact< / h3 >
< h3 class = "section-title" > Contact< / h3 >
< ul class = "mb-6" >
< ul >
< li class = "mb-2" >
< li >
< i class = "mr-1 fa-solid fa-fw fa-envelope" > < / i >
< i class = "mr-1 fa-solid fa-fw fa-envelope" > < / i >
< a href = "mailto:dustin@dustinswan.com" > dustin@dustinswan.com< / a >
< a href = "mailto:dustin@dustinswan.com" > dustin@dustinswan.com< / a >
< / li >
< / li >
< li class = "mb-2" >
< li >
< i class = "mr-1 fa-solid fa-fw fa-map" > < / i >
< i class = "mr-1 fa-solid fa-fw fa-map" > < / i >
Upstate NY, USA
Upstate NY, USA
< / li >
< / li >
< li class = "mb-2" >
< li >
< i class = "mr-1 fa-solid fa-fw fa-house" > < / i >
< i class = "mr-1 fa-solid fa-fw fa-house" > < / i >
< a href = "https://www.dustinswan.com" target = "_blank" > dustinswan.com< / a >
< a href = "https://www.dustinswan.com" target = "_blank" > dustinswan.com< / a >
< / li >
< / li >
< li class = "mb-2" >
< li >
< i class = "mr-1 fa-solid fa-fw fa-ellipsis" > < / i >
< i class = "mr-1 fa-solid fa-fw fa-ellipsis" > < / i >
< a title = "git" class = "mr-1" href = "https://git.dustinswan.com" target = "_blank" > < i class = "mr-1 fa-brands fa-fw fa-git" > < / i > < / a >
< a title = "git" class = "mr-1" href = "https://git.dustinswan.com" target = "_blank" > < i class = "mr-1 fa-brands fa-fw fa-git" > < / i > < / a >
< a title = "LinkedIn" class = "mr-1" href = "https://www.linkedin.com/in/dustinswan" target = "_blank" > < i class = "mr-1 fa-brands fa-fw fa-linkedin" > < / i > < / a >
< a title = "LinkedIn" class = "mr-1" href = "https://www.linkedin.com/in/dustinswan" target = "_blank" > < i class = "mr-1 fa-brands fa-fw fa-linkedin" > < / i > < / a >
@ -88,29 +124,27 @@
< h4 class = "subtitle text-fuchsia-400" > Expert< / h4 >
< h4 class = "subtitle text-fuchsia-400" > Expert< / h4 >
< ul class = " mb-6 text-fuchsia-100">
< ul class = " text-fuchsia-100">
< li class= "mb-2" title= "I started writing JavaScript in ~2008, and have recently (thankfully) made the switch to TypeScript. It's been a long journey! Gone are the days of manually futzing with the Prototype chain.." > JavaScript / TypeScript< / li >
< li title= "I started writing JavaScript in ~2008, and have recently (thankfully) made the switch to TypeScript. It's been a long journey! Gone are the days of manually futzing with the Prototype chain.." > JavaScript / TypeScript< / li >
< li class = "mb-2" > HTML& CSS / WebRTC / WebSockets< / li >
< li > HTML / CSS / WebRTC / WebSockets< / li >
< li class = "mb-2" > React / Preact / MobX / RxJS < / li >
< li > React / Preact / MobX< / li >
< / ul >
< / ul >
< h4 class = "subtitle text-emerald-400" > Skilled< / h4 >
< h4 class = "subtitle text-emerald-400" > Skilled< / h4 >
< ul class = "mb-6 text-emerald-100" >
< ul class = "text-emerald-100" >
< li class = "mb-2" > NodeJS / Deno / Electron< / li >
< li > NodeJS / Deno / Electron< / li >
< li class = "mb-2" > NextJS / Zustand / Redux< / li >
< li > NextJS / Zustand / Redux / RxJS< / li >
< li class = "mb-2" > PHP / Laravel / ODBC< / li >
< li > PHP / ODBC / Postgres / SQLite< / li >
< li class = "mb-2" > Postgres / SQLite< / li >
< li > Git / Perforce / Jira / Confluence< / li >
< li class = "mb-2" > Jira / Confluence / Trello< / li >
< li class = "mb-2" > Git / Perforce / Figma< / li >
< / ul >
< / ul >
< h4 class = "subtitle text-amber-200" > Enjoying< / h4 >
< h4 class = "subtitle text-amber-200" > Enjoying< / h4 >
< ul class = " mb-6 text-amber-50">
< ul class = " text-amber-50">
< li class = "mb-2" > Haskell / PureScript / Elm< / li >
< li > Haskell / PureScript / Elm< / li >
< li class = "mb-2" > OCaml / Racket / Rust< / li >
< li > OCaml / Racket / Rust< / li >
< li class = "mb-2" > NixOS / Neovim / Command Line ♡< / li >
< li > NixOS / Neovim / Command Line ♡< / li >
< / ul >
< / ul >
< / section >
< / section >
< / div >
< / div >