<!DOCTYPE html>
< html lang = "en" >
< head >
< title > Dustin Swan - Resume< / title >
< meta charset = "UTF-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< script src = "https://cdn.tailwindcss.com" > < / script >
< script src = "https://kit.fontawesome.com/024d65f707.js" crossorigin = "anonymous" > < / script >
< link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/daisyui@4.10.2/dist/full.min.css" type = "text/css" / >
< link rel = "stylesheet" href = "https://code.cdn.mozilla.net/fonts/fira.css" >
< link rel = "icon" href = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🦢</text></svg>" >
<!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Iosevka/6.0.0/iosevka/iosevka.min.css"> -->
< style type = "text/tailwindcss" >
@font-face {
font-family: "Iosevka Web";
src: url("assets/iosevka-fixed-regular.woff2") format("woff2");
}
body {
font-family: "Fira Sans", sans-serif;
}
.section-title {
@apply uppercase font-semibold text-lg border-b-2 mb-4;
font-family: "Iosevka Web";
}
.subtitle {
@apply uppercase font-bold text-sm my-1;
font-family: "Iosevka Web";
}
.sidebar a {
@apply text-cyan-400 hover:text-cyan-200 transition-colors;
}
.main a {
@apply text-cyan-700 hover:text-cyan-500 transition-colors dark:text-cyan-200 dark:hover:text-cyan-300;
}
.sidebar ul {
@apply mb-6;
}
.sidebar li {
@apply mb-2;
font-family: "Iosevka Web";
}
.main li {
list-style-type: "› ";
@apply mb-1;
}
span[data-tip] {
@apply border-b border-dashed cursor-pointer;
}
.tooltip:before {
max-width: 15rem;
}
.tooltip:first-child:before {
max-width: 10rem;
}
/*
.badge {
@apply inline-flex items-center rounded-md bg-teal-50 px-2 py-1 text-xs font-medium text-gray-600 ring-1 ring-inset ring-gray-500/10
}
*/
< / style >
< / head >
< body class = "bg-slate-300 dark:bg-slate-900 h-full" >
< div class = "h-full lg:container lg:mx-auto lg:flex min-h-screen lg:shadow-xl" >
< section class = "main p-8 lg:px-12 lg:py-9 bg-slate-100 dark:bg-slate-700 dark:text-slate-200" >
< h1 class = "text-4xl mb-4 uppercase font-semibold border-b-2 py-2" > Dustin Swan< / h1 >
< article class = "pb-8" >
< p class = "py-1" > < strong > Software Engineer< / strong > with over 15 years experience architecting, implementing, and shipping secure, cross-platform applications & APIs. Proficient in functional and object-oriented programming paradigms; delivering clean, maintainable code; utilizing modern, standards-based web technologies.
< / article >
< h3 class = "section-title" > Experience< / h3 >
< article class = "pb-8" >
< img src = "assets/mr.png" class = "w-12 float-left mt-2 ml-1 mr-3" / >
< h4 class = "text-lg font-bold" > Lead Software Developer< / h4 >
< div > < a href = "https://www.majorrocket.com" target = "_blank" > Major Rocket< / a > | Jan 2024 - present< / div >
< p class = "mt-1 md:ml-14" >
< span class = "badge" > PHP< / span >
< span class = "badge" > MySQL< / span >
< span class = "badge" > JavaScript< / span >
< span class = "badge" > Less< / span >
< span class = "badge" > AWS< / span >
< span class = "badge" > Laravel< / span >
< / p >
< ul class = "clear-left m-4 ml-0 lg:ml-16" >
< li > Developed multiple full-stack PHP & JavaScript e-commerce web applications, interfacing with Shopify, PayPal, & Braintree< / li >
< li > Integrated new features on existing infrastructure; creating new APIs, databases, & backend logic< / li >
< li > Collaborated closely with sales, B2B teams, and designers to build products aligned with business requirements< / li >
< li > Implemented front-end designs and UI components across responsive web applications< / li >
< / ul >
< / article >
< article class = "pb-8" >
< img src = "assets/visionable.png" class = "w-12 float-left mt-1 mr-4" / >
< h4 class = "text-lg font-bold" > Front End & API Lead < span class = "max-md:hidden" > Software Engineer< / span > < / h4 >
< div > < a href = "https://www.visionable.com" target = "_blank" > Visionable UK Ltd< / a > | 2009 - 2024< / div >
< p class = "mt-1 md:ml-14" >
< span class = "badge" > JavaScript< / span >
< span class = "badge" > React< / span >
< span class = "badge" > Vue.js< / span >
< span class = "badge" > Angular< / span >
< span class = "badge" > MobX< / span >
< span class = "badge" > Electron< / span >
< span class = "badge" > Node.js< / span >
< span class = "badge" > Next.js< / span >
< span class = "badge" > PHP< / span >
< span class = "badge" > PostgreSQL< / span >
< span class = "badge" > C++< / span >
< span class = "badge" > Qt< / span >
< span class = "badge" > AWS< / span >
< span class = "badge" > Laravel< / span >
< / p >
< ul class = "clear-left m-4 ml-0 lg:ml-16" >
< li > Designed & developed our flagship responsive, cross-platform JavaScript video conferencing application< / li >
< li > Architected, developed & documented our REST APIs< / li >
< li > Lead a team of 7 front- & back-end developers, creating 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 class = "pb-8" >
< img src = "assets/abbott.png" class = "w-12 float-left mr-4" / >
< h4 class = "text-lg font-bold" > Validation Engineer< / h4 >
< div > < a href = "https://www.abbott.com/" target = "_blank" > Abbott Laboratories< / a > | 2007 - 2009< / div >
< ul class = "clear-left m-4 ml-0 lg:ml-16" >
< 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 >
< article class = "pb-8" >
< img src = "assets/uic.png" class = "w-12 float-left mt-1 mr-4 mb-1" / >
< h4 class = "text-lg font-bold" > Bachelor of Science in Bioengineering< / h4 >
< i > with minors in Computer Science & Math< / i >
< div > < a href = "https://www.uic.edu/" target = "_blank" > University of Illinois Chicago (UIC)< / a > | 2007< / div >
< / article >
< / section >
< 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 >
< ul class = "md:max-lg:columns-4" >
< li class = "truncate" >
< i class = "mr-1 fa-solid fa-fw fa-envelope" > < / i >
< a href = "mailto:dustin@dustinswan.com" > dustin@dustinswan.com< / a >
< / li >
< li class = "truncate" >
< i class = "mr-1 fa-solid fa-fw fa-map-marker" > < / i >
Albuquerque NM, USA
< / li >
< li class = "truncate" >
< i class = "mr-1 fa-solid fa-fw fa-link" > < / i >
< a href = "https://www.dustinswan.com" target = "_blank" > dustinswan.com< / a >
< / li >
< li >
< i class = "md:max-lg:hidden 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 = "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 = "Twitter" class = "mr-1" href = "https://twitter.com/dustinswan" target = "_blank" > < i class = "mr-1 fa-brands fa-fw fa-twitter" > < / i > < / a >
< a title = "Mastodon" class = "mr-1" href = "https://mastodon.social/@dustinswan" target = "_blank" > < i class = "mr-1 fa-brands fa-fw fa-mastodon" > < / i > < / a >
< a title = "PGP" class = "mr-1" href = "https://pgp.mit.edu/pks/lookup?op=get&search=0xAB49BD6B2B3A6377" target = "_blank" > < i class = "mr-1 fa-solid fa-fw fa-lock" > < / i > < / a >
< / li >
< / ul >
< h3 class = "section-title" > Technologies< / h3 >
< div class = "md:max-lg:columns-3" >
< h4 class = "subtitle text-fuchsia-400" > Expert in< / h4 >
< ul class = "text-fuchsia-100" >
< li >
< span class = "tooltip tooltip-accent" data-tip = "I'd choose TypeScript for any new projects, but I still like good old JavaScript" > JavaScript< / span > /
< span class = "tooltip tooltip-accent" data-tip = "And Deno. Loving the Typescript support in Deno. I'll try Bun next, it looks promising" > NodeJS< / span > /
HTML /
< span class = "tooltip tooltip-accent" data-tip = "I ♡ CSS. Flexbox has increased my quality of life in a big way. I've also used a few preprocessors like Sass & Less, and I tried out Tailwind for the first time on this page - I think I like it!" > CSS< / a >
< / li >
< li >
< span class = "tooltip tooltip-accent" data-tip = "I built a video conferencing web application using WebRTC. For the first few years it was a constant battle with Browsers changing their APIs every version, but that has mostly settled down. Safari is still awful, of course." > WebRTC< / span > /
WebSockets /
REST /
AJAX
< / li >
< li > React / MobX / MUI / NextJS / PHP< / li >
< / ul >
< h4 class = "subtitle text-emerald-400" > Skilled in< / h4 >
< ul class = "text-emerald-100" >
< li > TypeScript / Electron / AWS< / li >
< li > Redux / RxJS / Zustand< / li >
< li > MySQL / Postgres / SQLite / ODBC< / li >
< li > Git / Perforce / Jira / Bugzilla< / li >
< / ul >
< h4 class = "subtitle text-amber-200" > Excited About< / h4 >
< ul class = "text-amber-50" >
< li > Haskell / PureScript / Elm / Unison< / li >
< li >
< span class = "tooltip tooltip-accent" data-tip = "I did Advent of Code 2020 in OCaml (see my Git repo), and it was SO GREAT" > OCaml< / span > /
< span class = "tooltip tooltip-accent" data-tip = "Then I did AoC 2021 in Racket. It was my first real Lisp. I'm a fan" > Racket< / span > /
< span class = "tooltip tooltip-accent" data-tip = "Still (constantly) learning Rust. I did AoC 2022 in Rust and it was.. painful. Steep learning curve" > Rust< / span > /
< span class = "tooltip tooltip-accent" data-tip = "And most recently, I tried AoC 2023 in Zig. What a nice little language!" > Zig< / span >
< / li >
< li >
< span class = "tooltip tooltip-accent" data-tip = "Huge fan of Nix. I've replaced Homebrew on MacOS with Nix, I run NixOS on my VMs, and I use home-manager to manage my dotfiles. So good!" > NixOS< / span > /
< span class = "tooltip tooltip-accent" data-tip = "I've been using vi since I can remember. I used Emacs for a few years (mostly for Org-mode), but came back to vi when Neovim started getting good. I'm also excited about a few other editors: Helix, Kakoune, Zed.. so many good ones out there!" > Neovim< / span > /
Command Line ♡
< / li >
< / ul >
< / div >
< / section >
< / div >
< / body >
< / html >