fix: rework
This commit is contained in:
parent
5220f06738
commit
39dc286569
@ -1 +1 @@
|
|||||||
bun 1.0.21
|
bun 1.1.2
|
||||||
|
780
resume.html
780
resume.html
@ -4,7 +4,6 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://fonts.googleapis.com/css?family=DM+Serif+Display"
|
href="https://fonts.googleapis.com/css?family=DM+Serif+Display"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="./assets/iosevka.css" />
|
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -31,10 +30,26 @@
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul, li {
|
ul {
|
||||||
|
padding-left: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul,
|
||||||
|
li {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin-bottom: 0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-family: 'Iosevka Term Extended';
|
||||||
|
background: hsl(0deg, 0%, 90%);
|
||||||
|
padding: 1pt 2pt 1pt 2pt;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
h1,
|
h1,
|
||||||
h2,
|
h2,
|
||||||
h3 {
|
h3 {
|
||||||
@ -42,46 +57,60 @@
|
|||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
p,
|
||||||
|
span,
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
font-family: 'Atkinson Hyperlegible';
|
||||||
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 48pt;
|
font-size: 48pt;
|
||||||
margin-top: -8pt;
|
margin-top: -10px;
|
||||||
margin-bottom: -6pt;
|
margin-bottom: -10px;
|
||||||
}
|
}
|
||||||
h2 {
|
h2 {
|
||||||
font-size: 32pt;
|
font-size: 32pt;
|
||||||
margin-top: -4pt;
|
margin-top: -8px;
|
||||||
margin-bottom: -4pt;
|
margin-bottom: -7px;
|
||||||
}
|
}
|
||||||
h3 {
|
h3 {
|
||||||
font-size: 24pt;
|
font-size: 24pt;
|
||||||
margin-top: -4pt;
|
margin-top: -5px;
|
||||||
margin-bottom: -3pt;
|
margin-bottom: -5px;
|
||||||
}
|
}
|
||||||
h4 {
|
h4 {
|
||||||
font-family: 'Iosevka Aile';
|
|
||||||
font-size: 16pt;
|
font-size: 16pt;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
margin-top: -1pt;
|
margin-top: -4px;
|
||||||
margin-bottom: -2pt;
|
margin-bottom: -4px;
|
||||||
}
|
}
|
||||||
h5 {
|
h5 {
|
||||||
font-family: 'Iosevka Aile';
|
|
||||||
font-size: 12pt;
|
font-size: 12pt;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
margin-top: -1pt;
|
margin-top: -3px;
|
||||||
margin-bottom: -2pt;
|
margin-bottom: -4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
h6 {
|
h6 {
|
||||||
font-family: 'Iosevka Aile';
|
|
||||||
font-size: 10pt;
|
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
margin-top: -1pt;
|
color: hsl(0deg, 0%, 20%);
|
||||||
margin-bottom: -1pt;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
p,
|
p,
|
||||||
span, li {
|
span,
|
||||||
font-family: 'Iosevka Aile';
|
h6 {
|
||||||
|
font-size: 10pt;
|
||||||
|
margin-top: -2px;
|
||||||
|
margin-bottom: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p,
|
||||||
|
span,
|
||||||
|
li {
|
||||||
font-size: 10pt;
|
font-size: 10pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,9 +169,8 @@
|
|||||||
gap: 3pt;
|
gap: 3pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.row,
|
div.col.spread, div.row.spread {
|
||||||
div.col {
|
gap: 1rem;
|
||||||
break-inside: avoid;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div.col.right {
|
div.col.right {
|
||||||
@ -190,7 +218,7 @@
|
|||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="row space">
|
<div class="row space spread">
|
||||||
<h1 style="display: inline">Orion Kindel</h1>
|
<h1 style="display: inline">Orion Kindel</h1>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col right">
|
<div class="col right">
|
||||||
@ -203,9 +231,6 @@
|
|||||||
<a href="https://linkedin.com/in/orion-kindel">
|
<a href="https://linkedin.com/in/orion-kindel">
|
||||||
<h5>linkedin.com/in/orion-kindel</h5></a
|
<h5>linkedin.com/in/orion-kindel</h5></a
|
||||||
>
|
>
|
||||||
<a href="https://instagram.com/orion.kindel">
|
|
||||||
<p>instagram.com/orion.kindel</p></a
|
|
||||||
>
|
|
||||||
<a href="tel:9894430197"> <p>+1 989 443 0197</p></a>
|
<a href="tel:9894430197"> <p>+1 989 443 0197</p></a>
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img
|
||||||
@ -215,19 +240,364 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="hr"></div>
|
<div class="hr"></div>
|
||||||
<h2>Brief</h2>
|
<h2>About</h2>
|
||||||
<h5>
|
<h5>
|
||||||
A flexible and experienced tech professional who can reliably leverage his
|
Flexible, passionate and experienced; Orion is a powerful force multiplier
|
||||||
insights to empower and accelerate teams and organizations.
|
with 7 years’ experience as a software engineer & player-coach.
|
||||||
</h5>
|
|
||||||
<h5>
|
|
||||||
Orion is a powerful force multiplier with 7 years’ experience as a
|
|
||||||
software engineer, leader, systems architect, and product manager.
|
|
||||||
</h5>
|
</h5>
|
||||||
<div class="hr"></div>
|
<div class="hr"></div>
|
||||||
<div class="row space">
|
<div class="col space spread">
|
||||||
<h2>Key Skills</h2>
|
<h2>Skills</h2>
|
||||||
|
<div class="col">
|
||||||
|
<h3>Javascript, HTML, CSS</h3>
|
||||||
|
<h6>Expert · 8 years</h6>
|
||||||
|
|
||||||
|
<div class="col">
|
||||||
|
<p>
|
||||||
|
Deep understanding of runtime semantics, exception handling,
|
||||||
|
performance characteristics and tooling.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Architected & implemented complex production interfaces in React, as
|
||||||
|
well as angular, vue and svelte. Deep experience using hooks &
|
||||||
|
functional components to manage state and complexity as the product
|
||||||
|
scales.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Guided teams to best practices, building systems with 3-40 active
|
||||||
|
contributors handling 1MM requests / second with %99.999 uptime
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col">
|
||||||
|
<h5>Open-Source (Javascript / Typescript)</h5>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/matchbook-ts/matchbook-ts"
|
||||||
|
><code>fetch</code></a
|
||||||
|
>
|
||||||
|
<br />
|
||||||
|
Rust-inspired structural pattern matching in JS, reducing code
|
||||||
|
footprint and increasing expressiveness for thousands of
|
||||||
|
repositories
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/gcanti/fp-ts"><code>fp-ts</code></a>
|
||||||
|
(Contributor)
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h5>Open-Source (Purescript)</h5>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://git.orionkindel.com/orion/purescript-node-stream-pipes"
|
||||||
|
><code>node-stream-pipes</code></a
|
||||||
|
>,
|
||||||
|
<a href="https://git.orionkindel.com/orion/purescript-csv-stream"
|
||||||
|
><code>csv-stream</code></a
|
||||||
|
>,
|
||||||
|
<a href="https://git.orionkindel.com/orion/purescript-cbor-stream"
|
||||||
|
><code>cbor-stream</code></a
|
||||||
|
>,
|
||||||
|
<a href="https://git.orionkindel.com/orion/purescript-pg"
|
||||||
|
><code>postgresql</code></a
|
||||||
|
>
|
||||||
|
<br />
|
||||||
|
Compat layer between <code>pipes</code> and the Node standard
|
||||||
|
library, lifting the UNIX-pipe inspired library to purely
|
||||||
|
functional feature parity with actual UNIX pipes.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://git.orionkindel.com/orion/purescript-pg"
|
||||||
|
><code>postgresql</code></a
|
||||||
|
>
|
||||||
|
<br />
|
||||||
|
High-level interface to libpq from purescript, supporting complex
|
||||||
|
queries and streaming with
|
||||||
|
<code>COPY .. TO ..</code> and <code>COPY .. FROM ..</code>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://git.orionkindel.com/orion/purescript-fetch"
|
||||||
|
><code>fetch</code></a
|
||||||
|
>
|
||||||
|
<br />
|
||||||
|
HTTP client library built on <code>fetch</code>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://git.orionkindel.com/orion/purescript-url-immutable"
|
||||||
|
><code>url-immutable</code></a
|
||||||
|
>
|
||||||
|
<br />
|
||||||
|
Immutable bindings to NodeJS URL API
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://git.orionkindel.com/thunderstrike/purescript-node-workers"
|
||||||
|
><code>node-workers</code></a
|
||||||
|
>
|
||||||
|
<br />
|
||||||
|
Low-level bindings to NodeJS Worker API
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://git.orionkindel.com/thunderstrike/purescript-cheerio"
|
||||||
|
><code>cheerio</code></a
|
||||||
|
>
|
||||||
|
<br />
|
||||||
|
Idiomatic wrapper of <code>cheerio</code>, an in-memory
|
||||||
|
platform-agnostic in-memory DOM parser
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="https://git.orionkindel.com/thunderstrike/purescript-sync"
|
||||||
|
><code>sync</code></a
|
||||||
|
>
|
||||||
|
<br />
|
||||||
|
Purescript implementation of rust's thread-safe synchronization
|
||||||
|
primitives (<code>Mutex</code>,
|
||||||
|
<code>RwLock</code>) adding exclusivity guarantees to concurrently
|
||||||
|
accesssed effectful resources.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h5>Professional Experience</h5>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
At Thunderstrike, built MVP in React-inspired web framework and
|
||||||
|
several service-oriented backend applications in Purescript.
|
||||||
|
Demonstrated problem statement, early functionality and
|
||||||
|
communicated value proposition to customers and investors.
|
||||||
|
Resulted in over $100K in total contract value and an pre-seed
|
||||||
|
raise that was in progress of $1M at a $5M cap (interrupted by
|
||||||
|
co-founder leaving)
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
At Qwick, built 4 separate user interfaces spanning all business
|
||||||
|
verticals using FRP React in ReasonML. Was responsible for
|
||||||
|
implementing best practices, architecting solutions and managing
|
||||||
|
tech debt. Result was the company growing to over $10M MRR with
|
||||||
|
tens of thousands of customers, and frontend codebases that were
|
||||||
|
highly maintainable despite being complex.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
At TheoremOne, successfully built several highly maintainable user
|
||||||
|
interfaces using React.
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
iMercata · Managed team of 4 engineers working on
|
||||||
|
MVP-stage UI for client company. · Was responsible for
|
||||||
|
providing technical vision, coaching and implementing best
|
||||||
|
practices. The client's vision was implemented quickly and
|
||||||
|
effectively by the team, resulting in a successful
|
||||||
|
relationship and interaction with the client company.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
GitHub · Managed team of 2 engineers working on UI and
|
||||||
|
API for GitHub. · Was responsible for providing
|
||||||
|
technical vision, coaching and implementing best practices.
|
||||||
|
The client's vision was implemented quickly and effectively,
|
||||||
|
resulting in a continued relationship between GitHub &
|
||||||
|
TheoremOne.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
At StrongMind, built mobile app for students to take assessments,
|
||||||
|
interact with their course performance & attendance using React
|
||||||
|
Native.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hr"></div>
|
||||||
|
<div class="col">
|
||||||
|
<h3>Linux</h3>
|
||||||
|
<h6>Very Strong · 6 years</h6>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Use Docker & Kubernetes to deploy high-availability distributed
|
||||||
|
systems at scale. As someone passionate about predictability &
|
||||||
|
determinism, I've used containerization to great effect, increasing
|
||||||
|
velocity and uptime on every team I've been a part of.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Regularly host virtual TV & movie watch parties with friends using
|
||||||
|
on-the-fly encoding with ffmpeg to a custom cloud-hosted RTMP +
|
||||||
|
MPEG/DASH server.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Deep understanding of public & private network management, routing
|
||||||
|
traffic on public network interfaces to applications running on
|
||||||
|
local interfaces. Have encountered and debugged issues at NAT & DHCP
|
||||||
|
layers, manage SSL certificates issued by TAs, manage DNS and mDNS
|
||||||
|
configuration, and have implemented an application-layer networking
|
||||||
|
runtime from
|
||||||
|
<a href="https://www.rfc-editor.org/rfc/rfc7252">RFC (CoAP)</a>.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Manage synthetic video devices and hardware drivers at the
|
||||||
|
kernel-module level.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Use user-space utilities for an extremely productive and universal
|
||||||
|
workflow, ex.
|
||||||
|
<ul>
|
||||||
|
<li>kakoune (preferred), (neo)vim, nano</li>
|
||||||
|
<li>remote machine access (ssh, sshfs, rsync, xpra)</li>
|
||||||
|
<li>
|
||||||
|
advanced shell scripting (xargs, sed, gawk, gzip, ffmpeg,
|
||||||
|
sub-shells, fork, heredoc)
|
||||||
|
</li>
|
||||||
|
<li>package management (apk, apt, pacman, dpkg)</li>
|
||||||
|
<li>
|
||||||
|
per-project tooling management (asdf, nvm, virtualenv, pipenv)
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="hr"></div>
|
||||||
|
<div class="col">
|
||||||
|
<h3>Rust</h3>
|
||||||
|
<h6>Very Strong · 6 years</h6>
|
||||||
|
|
||||||
|
<div class="col">
|
||||||
|
<p>
|
||||||
|
An early adopter of Rust and passionate advocate. I've been an
|
||||||
|
active OSS & rust discord community member for years and am a proud
|
||||||
|
organizer of Chicago's Rust Meetup. Rust's type system, high level
|
||||||
|
language features, developer experience, and runtime characteristics
|
||||||
|
make it the easy choice for any mission-critical or
|
||||||
|
performance-critical system in my eyes.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<h5>Open-Source</h5>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/cakekindel/slack-blocks-rs"
|
||||||
|
><code>slack-blocks</code></a
|
||||||
|
><br />Idiomatic API to programatically create composable Slack
|
||||||
|
messages
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/cakekindel/naan"><code>naan</code></a
|
||||||
|
><br />Abusing the type system for fun & profit.
|
||||||
|
<code>std</code>-toolchain implementation of higher-kinded types
|
||||||
|
and Haskell-esque typeclasses.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://git.orionkindel.com/toad/toad"
|
||||||
|
><code>toad</code></a
|
||||||
|
><br />
|
||||||
|
No-std and no-alloc implementation of RFC7252 <b>Co</b>nstrained
|
||||||
|
<b>A</b>pplication <b>P</b>rotocol. A low-latency RESTful
|
||||||
|
networking runtime alternative to HTTP built on UDP with reliable
|
||||||
|
message transmission, SSL, and built-in pub/sub semantics.
|
||||||
|
Sub-packages:
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>toad-array</code><br />trait abstracting
|
||||||
|
<code>Vec</code>'s API for any in-memory contiguous
|
||||||
|
collections. Allows <code>toad</code> to simultaneously
|
||||||
|
support systems with & without heap allocation.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<code>toad-map</code><br />same as above, but for HashMap
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<code>toad-string</code><br />same as above, but for Strings
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<code>toad-jni</code><br />A rethinking of Java Native
|
||||||
|
Interface (JNI) interaction in Rust.
|
||||||
|
</li>
|
||||||
|
<li><code>toad-stem</code><br />no-std implementation</li>
|
||||||
|
<li><code>toad-cursor</code><br />no-std port of Cursor</li>
|
||||||
|
<li>
|
||||||
|
<code>toad-writable</code><br />no-std port of Read & Write
|
||||||
|
traits
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<h5>Professional Experience</h5>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
At StrongMind, architected & built data pipeline ingesting 100K
|
||||||
|
messages from disparate systems into a data warehouse. This led
|
||||||
|
directly to higher business performance as centralized OLAP
|
||||||
|
workflows empowered better data-driven decisionmaking. Led &
|
||||||
|
trained team of 5 with no prior Rust experience and ICs were
|
||||||
|
productive in it alarmingly fast!
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
At Qwick, architected & built distributed event-driven system to
|
||||||
|
reduce database load and increase uptime.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
At Thunderstrike, architected & built novel general-purpose
|
||||||
|
distributed web scraper to ingest public information on the web en
|
||||||
|
masse.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<h5>CICD & Automation</h5>
|
||||||
|
<h6>Very Strong · 7 years</h6>
|
||||||
|
<p>
|
||||||
|
Have spearheaded adoption of bleeding-edge automation practices,
|
||||||
|
implementing end to end test suites and continuous delivery pipelines.
|
||||||
|
</p>
|
||||||
|
<p>At StrongMind, saw dev team velocity increase by 60%.</p>
|
||||||
|
<p>
|
||||||
|
At Qwick, saw dev team velocity increase by 30% as automation replaced
|
||||||
|
manual QA testing and release strategies.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<h5>SQL</h5>
|
||||||
|
<h6>Very Strong · 7 years</h6>
|
||||||
|
<p>
|
||||||
|
Very comfortable designing physical schemas for high performance,
|
||||||
|
optimizing indexes for common access patterns, and using RLS for
|
||||||
|
securing data.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Have used many strategies to integrate relational databases with
|
||||||
|
dynamic and strongly-typed business logic layers from highly-managed
|
||||||
|
ORMs (ex. Flask, Entity Framework, PrismaJS) to mini-ORMs.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<h5>Player-Coach</h5>
|
||||||
|
<h6>Strong · 6 years</h6>
|
||||||
|
<p>
|
||||||
|
Have managed teams of sizes 3-10 as a team lead (player-coach),
|
||||||
|
accountable for success of individual team members as well as the
|
||||||
|
team. Able to consistenly make & meet data-driven commitments, develop
|
||||||
|
and maintain excellent relationships with team members and
|
||||||
|
stakeholders based on accountability, candor and transparency.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Use tools like CICD, Scrum, TDD and pair programming to increase team
|
||||||
|
velocity without applying pressure to individual team members.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Use frequent touchpoints with team members and a shared understanding
|
||||||
|
of my expectations and their goals, decomposing them into measurable
|
||||||
|
actionable steps and holding them accountable.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="hr"></div>
|
||||||
|
<div class="col">
|
||||||
<div class="col right">
|
<div class="col right">
|
||||||
|
<h2>Other Skills</h2>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<h5>Expert</h5>
|
<h5>Expert</h5>
|
||||||
<div class="row packed">
|
<div class="row packed">
|
||||||
@ -257,301 +627,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="cols_2">
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">Javascript</h5>
|
|
||||||
<span class="nowrap">8 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Designed and implemented full-stack high scale production systems at
|
|
||||||
every position held.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Deep understanding of language semantics, exception handling,
|
|
||||||
runtimes, performance characteristics and tooling.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Architected & implemented complex production interfaces in React, as
|
|
||||||
well as angular, vue and svelte. Deep experience using hooks &
|
|
||||||
functional components to manage state and complexity as the product
|
|
||||||
scales.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Guided teams to best practices, building systems with 5-40 active
|
|
||||||
contributors handling 1MM requests / second with %99.999 uptime
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">Rust</h5>
|
|
||||||
<span class="nowrap">6 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Active Open Source community member; language contributions and
|
|
||||||
discussions.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Deep understanding of language semantics, exception handling,
|
|
||||||
runtimes, performance characteristics and tooling.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Owner of the primary implementation of the CoAP networking protocol,
|
|
||||||
which brings high performance REST semantics to bare metal and
|
|
||||||
distributed systems.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Built teams using the language, training teammates reaching productive
|
|
||||||
and capable in <2mo.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">Purescript</h5>
|
|
||||||
<span class="nowrap">5 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Active Open Source community member; language contributions,
|
|
||||||
discussions, discord member.
|
|
||||||
</p>
|
|
||||||
<p>Owner of many popular packages and abstractions.</p>
|
|
||||||
<p>
|
|
||||||
Deep understanding of language semantics, exception handling,
|
|
||||||
runtimes, performance characteristics, abstractions and tooling.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Built teams using the language, training teammates reaching productive
|
|
||||||
and capable in <2mo.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">Git</h5>
|
|
||||||
<span class="nowrap">7 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Manage 100s of open source repositories, highly active open source
|
|
||||||
member and contributor.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Managed & built git teams at scale, with some repos having hundreds of
|
|
||||||
daily contributors.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">Systems Architecture</h5>
|
|
||||||
<span class="nowrap">6 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Have designed, implemented and modified systems across scales and
|
|
||||||
stacks.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Have designed and implemented Distributed (Microservices or Services),
|
|
||||||
Monolithic, and Event Driven systems - choosing the model based on the
|
|
||||||
product and organization’s requirements, capacity, and time
|
|
||||||
constraints.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">Docker</h5>
|
|
||||||
<span class="nowrap">6 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Use docker in most projects for 4 years for making version management,
|
|
||||||
reproducible deploy artifacts, pull-based deployment models and
|
|
||||||
security isolation.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Have used kubernetes to manage deployments of complex distributed
|
|
||||||
systems handling millions of requests and $500K MRR with high
|
|
||||||
reliability.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">CICD</h5>
|
|
||||||
<span class="nowrap">6 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Use comprehensive automated testing and CI platforms to automate
|
|
||||||
quality checks and deployment, significantly accelerating product
|
|
||||||
development.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-0.5"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">Linux</h5>
|
|
||||||
<span class="nowrap">6 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Have used linux personally & in production. Choose VMs (EC2) in lieu
|
|
||||||
of kubernetes or managed environments for almost all production needs
|
|
||||||
for many reasons.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Deep understanding of systems semantics, filesystems, security model,
|
|
||||||
networking, resource management, shells, scripting and tooling.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Guided teams to best practices, building systems with 5-40 active
|
|
||||||
contributors handling 1MM requests / second with %99.999 uptime
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-0.5"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">SQL</h5>
|
|
||||||
<span class="nowrap">7 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Have designed & implemented highly normalized and scalable relational
|
|
||||||
schemas (both for monolithic and distributed systems)
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Have used read replication, partitioning and indexing to manage pain
|
|
||||||
points inherent in maintaining a relational database while the product
|
|
||||||
and organization scale.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Have used many strategies to integrate relational databases with
|
|
||||||
dynamic and strongly-typed business logic layers from highly-managed
|
|
||||||
ORMs (ex. Flask, Entity Framework, PrismaJS) to mini-ORMs.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-0.5"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">Player-Coach</h5>
|
|
||||||
<span class="nowrap">6 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Have managed teams of sizes 3-10 as a team lead (player-coach),
|
|
||||||
accountable for success of individual team members as well as the
|
|
||||||
team. Able to consistenly make & meet data-driven commitments, develop
|
|
||||||
and maintain excellent relationships with team members and
|
|
||||||
stakeholders based on accountability, candor and transparency.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Use tools like CICD, Scrum, TDD and pair programming to increase team
|
|
||||||
velocity without applying pressure to individual team members.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Use frequent touchpoints with team members and a shared understanding
|
|
||||||
of my expectations and their goals, decomposing them into measurable
|
|
||||||
actionable steps and holding them accountable.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-0.5"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">AWS</h5>
|
|
||||||
<span class="nowrap">7 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Have used AWS to deploy and manage systems at scale, both persistent
|
|
||||||
and on-demand (serverless) applications.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Deep understanding of networking model (VPC), database hosting (RDS),
|
|
||||||
persistent managed or unmanaged servers (EC2), on-demand compute
|
|
||||||
(Lambda), event-driven architecture (SQS), machine learning
|
|
||||||
(SageMaker), permissions management (IAM).
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row grow-x">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-0.5"></div>
|
|
||||||
</div>
|
|
||||||
<h5 class="grow-x">Scrum</h5>
|
|
||||||
<span class="nowrap">7 years</span>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
Have led 5 scrum-informed process transformations to improve team
|
|
||||||
performance, transparency and clarity.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Trained and mentored product managers on their role and
|
|
||||||
responsibilities, solving many sources of friction and conflict on
|
|
||||||
under-performing teams.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Have filled roles of scrum master and product owner on several product
|
|
||||||
teams to much success.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<h3>Other Skills</h3>
|
|
||||||
<div class="cols_4">
|
<div class="cols_4">
|
||||||
|
<div class="row">
|
||||||
|
<div class="row packed">
|
||||||
|
<div class="star-1.0"></div>
|
||||||
|
<div class="star-1.0"></div>
|
||||||
|
<div class="star-1.0"></div>
|
||||||
|
<div class="star-0.5"></div>
|
||||||
|
</div>
|
||||||
|
<h6>AWS</h6>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="row packed">
|
<div class="row packed">
|
||||||
<div class="star-1.0"></div>
|
<div class="star-1.0"></div>
|
||||||
@ -615,15 +700,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<h6>OAuth, OIDC</h6>
|
<h6>OAuth, OIDC</h6>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
</div>
|
|
||||||
<h6>Networking</h6>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="row packed">
|
<div class="row packed">
|
||||||
<div class="star-1.0"></div>
|
<div class="star-1.0"></div>
|
||||||
@ -714,6 +790,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<h6>Machine Learning</h6>
|
<h6>Machine Learning</h6>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="row packed">
|
||||||
|
<div class="star-1.0"></div>
|
||||||
|
<div class="star-1.0"></div>
|
||||||
|
<div class="star-1.0"></div>
|
||||||
|
<div class="star-0.5"></div>
|
||||||
|
</div>
|
||||||
|
<h6>ffmpeg</h6>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="row packed">
|
<div class="row packed">
|
||||||
<div class="star-1.0"></div>
|
<div class="star-1.0"></div>
|
||||||
@ -723,6 +808,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<h6>Cryptography</h6>
|
<h6>Cryptography</h6>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="row packed">
|
||||||
|
<div class="star-1.0"></div>
|
||||||
|
<div class="star-1.0"></div>
|
||||||
|
<div class="star-1.0"></div>
|
||||||
|
<div class="star-0.0"></div>
|
||||||
|
</div>
|
||||||
|
<h6>WebAssembly</h6>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="row packed">
|
<div class="row packed">
|
||||||
<div class="star-1.0"></div>
|
<div class="star-1.0"></div>
|
||||||
@ -741,14 +835,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<h6>gRPC</h6>
|
<h6>gRPC</h6>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
|
||||||
<div class="row packed">
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-1.0"></div>
|
|
||||||
<div class="star-0.0"></div>
|
|
||||||
</div>
|
|
||||||
<h6>Embedded</h6>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="hr break"></div>
|
<div class="hr break"></div>
|
||||||
|
BIN
resume.pdf
BIN
resume.pdf
Binary file not shown.
Loading…
Reference in New Issue
Block a user