|
|
<!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>
|