Skip to content

Commit faa5cd4

Browse files
authored
Merge pull request #231 from tjheffner/resume-update-2
update resume info + print styles
2 parents 192a61e + 0fcae52 commit faa5cd4

4 files changed

Lines changed: 168 additions & 74 deletions

File tree

src/lib/components/Currently.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
<p class="h1">📚</p>
8383
<div class="contents" data-density-shift>
8484
<p class="m-0">The last book I read was:</p>
85-
<p><strong class="accent">Forest of Noise</strong> by <span class="text-secondary">Mosab Abu Toha</span>.
85+
<p><strong class="accent">Debt: The First 5,000 Years</strong> by <span class="text-secondary">David Graeber</span>.
8686
</div>
8787
</li>
8888

src/routes/(main)/about/+page.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
</Details>
3737

3838
<Details title="contact" linked>
39-
<p>If you have questions, need a tech consultation, or are interested in working together, please send me an <a href="mailto:tannerjheffner@gmail.com">email.</a></p>
39+
<p>If you have questions, need a tech consultation, or are interested in working together, please send me an <a href="mailto:tanner@hyzer.sh">email.</a></p>
4040

4141
<p class="h1">✌️</p>
4242
</Details>

src/routes/(nowrapper)/resume/+page.svelte

Lines changed: 68 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
<header>
1010
<h1>Tanner Heffner</h1>
1111
<p>
12-
I am a full-stack engineer with a record of delivering successful projects at scale for organizations in a variety of industries. A big advocate for accessible design systems and responsive component libraries. Let's build something cool together.
12+
Full-stack engineer and technical lead with a decade at agencies delivering for government, enterprise, and startup clients. Known for on-time delivery, steady execution under pressure, and moving fluidly between prototyping, production delivery, and design system work. Let's build something cool together.
1313
</p>
1414
</header>
1515

1616
<section>
1717
<h2>Contact</h2>
1818
<ul class="contact">
1919
<li>
20-
<a data-i="e" href="mailto:tannerjheffner@gmail.com">tannerjheffner@gmail.com</a>
20+
<a data-i="e" href="mailto:tanner@hyzer.sh">tanner@hyzer.sh</a>
2121
</li>
2222
<li>
2323
<a data-i="t" href="tel:7023380110">(702) 338-0110</a>
@@ -28,104 +28,106 @@
2828
</ul>
2929
</section>
3030

31-
<section>
32-
<h2>Skills & Tools</h2>
33-
<ul class="tags">
34-
<li>Typescript</li>
35-
<li>Design Systems</li>
36-
<li>Accessibility</li>
37-
<li>UX</li>
38-
<li>DevOps</li>
39-
<li>Node</li>
40-
<li>HTML</li>
41-
<li>CSS</li>
42-
<li>React</li>
43-
<li>Svelte</li>
44-
<li>PHP</li>
45-
<li>Drupal</li>
46-
<li>AWS</li>
47-
<li>Python</li>
48-
<li>Ruby</li>
49-
<li>Public Speaking</li>
50-
<li>Cypress</li>
51-
<li>Playwright</li>
52-
<li>Storybook</li>
53-
<li>Figma</li>
54-
</ul>
55-
</section>
56-
5731
<main>
5832
<div class="list">
5933
<h2 id="experience">Experience</h2>
60-
<h3 id="Agile Six">Hyzer</h3>
61-
<h4 id="tech lead">Self-employed</h4>
62-
<p>June 2025 - Present</p>
34+
35+
<h3 id="Hyzer">Hyzer</h3>
36+
<h4>Founder & Principal Engineer</h4>
37+
<p>June 2025 — Present</p>
38+
<p>Independent consultancy providing full-stack engineering and design leadership to agencies, startups, and direct clients.</p>
6339
<ul>
64-
<li>Providing engineering expertise and design perspective across the stack.</li>
65-
<li>Creative prototyping, mobile app development, design systems, realtime shared interactivity, PWAs, animations, e-commerce, AI integrations, and accessibility.</li>
66-
<li>Clients: <a href="https://wlcr.io">WLCR</a>, <a href="https://twothings.co">two things</a></li>
40+
<li>Shipped three mobile app prototypes for a Fortune 500 client over multiple engagements totaling five-plus months. A 40-person focus group tested the second prototype to strong reception.</li>
41+
<li>Partnered with an agency on multiple production launches, including a three-week animation-heavy brand rebuild and realtime messaging and notification features for a social platform.</li>
42+
<li>Extended a retailer's headless Shopify codebase into a B2B storefront, forking from their existing D2C site and adding context-aware catalogs and pricing for different company and region segments. Also built a customer intake form integrated with Shopify.</li>
43+
<li>Stood up the design system for an early-stage startup over two months, migrating existing code into an accessible navigation system, a consistent type scale, and shared tokens.</li>
6744
</ul>
6845

69-
<h3 id="Agile Six">Agile Six</h3>
70-
<h4 id="tech lead">Technical Lead</h4>
46+
<h3 id="Agile Six TL">Agile Six</h3>
47+
<h4>Technical Lead</h4>
7148
<p>June 2023 — May 2025</p>
49+
<p>Led a cross-functional team of six engineers spanning frontend, backend, and DevOps.</p>
7250
<ul>
73-
<li><strong>Architected the modern headless foundation</strong> for <a href="https://va.gov">VA.gov</a>, reducing content publishing times for thousands of editors from hours to under five minutes.</li>
74-
<li><strong>Foundational workflow research & development</strong> for Accredited Representatives helping Veterans with the claims process.</li>
75-
<li>Rapid <strong>prototyping of technical solutions</strong> leading to major contract vehicle wins, <strong>receiving highest technical marks</strong> from government evaluators.</li>
51+
<li>Architected the modern headless foundation for <a href="https://va.gov">VA.gov</a>, cutting content publishing times for thousands of editors from hours to under five minutes. Named Key Personnel on the Accelerated Publishing contract.</li>
52+
<li>Led discovery and technical research for a new Accredited Representatives workflow supporting Veterans through the claims process, coordinating changes across multiple siloed VA departments where legal jurisdiction restricted direct API access. Named Key Personnel on the contract.</li>
53+
<li>Delivered rapid technical prototypes for two successful government contract bids, VA's SPRUCE and HHS SWIFT, each earning the highest technical marks from government evaluators. For SPRUCE, built an example form with full validation using the VA design system and external USPS address verification, in five days.</li>
54+
<li>Prototyped an experimental no-code form builder using Drupal as the source of truth, shipped for evaluation on a separate contract team.</li>
7655
</ul>
7756

7857
<h3 id="Coforma">Coforma</h3>
79-
<h4 id="senior dev 2">Senior Software Engineer</h4>
58+
<h4>Senior Software Engineer</h4>
8059
<p>January 2023 — June 2023 (Contract)</p>
8160
<ul>
82-
<li><strong>Architected the <a href="https://www.cms.gov/medical-bill-rights">Medical Bill Rights</a> portal</strong> for CMS.gov with localized content in English and Spanish in support of the No Surprises Act.</li>
83-
<li><strong>Led front-end implementation</strong>, providing direction to junior team members and actively building out the React form architecture including <strong>localization, field and schema validations, plus Salesforce and Drupal integration.</strong></li>
61+
<li>Architected the <a href="https://www.cms.gov/medical-bill-rights">Medical Bill Rights</a> portal for CMS.gov in support of the No Surprises Act, shipping under a tight legislative deadline within six months with fully localized English and Spanish content.</li>
62+
<li>Owned front-end implementation and mentored junior engineers while building the React form architecture, including localization, field and schema validation, and Salesforce and Drupal integration.</li>
8463
</ul>
8564

86-
<h3 id="Agile Six">Agile Six</h3>
87-
<h4 id="tech lead">Senior Software Engineer</h4>
65+
<h3 id="Agile Six SSE">Agile Six</h3>
66+
<h4>Senior Software Engineer</h4>
8867
<p>September 2021 — January 2023</p>
8968
<ul>
90-
<li>Improved the editor experience for VA.gov content editors, with a focus on usability and accessibility.</li>
91-
<li>Assisted with <strong>benefits claims processing improvements across the VA stack</strong> as part of the PACT Act. Including <strong>accessibility updates</strong> to custom React form inputs and improving <strong>OCR processing</strong> of PDF claim data in Python.</li>
69+
<li>Led the upgrade of VA.gov's Drupal admin theme from Seven to a VA-branded theme based on Claro, dramatically improving accessibility and day-to-day usability for hundreds of content editors, many of them hospital staff without web admin backgrounds. Built an extensible foundation for custom field widgets and established content modeling standards adopted across three CMS teams.</li>
70+
<li>Delivered features across the CMS, including email notifications, preview improvements, editor workflow refinements, and updates to the internal editor knowledge base, all reducing editor confusion and support complaints.</li>
71+
<li>Contributed to benefits claims processing improvements across the VA stack as part of the PACT Act, including accessibility updates to custom React form inputs and Python-based OCR improvements for both scanned claim forms and generated PDFs from digital submissions.</li>
9272
</ul>
9373

9474
<h3 id="Instrument">Instrument</h3>
95-
<h4 id="senior dev 1">Senior Developer</h4>
75+
<h4>Senior Developer</h4>
9676
<p>October 2019 — March 2021</p>
9777
<ul>
98-
<li>Developed a bespoke <strong>responsive component library</strong> combined with an <strong>A/B testing system</strong> with Craft CMS, allowing site builders to continously optimize with confidence.</li>
99-
<li>Rapidly <strong>prototyped brand explorations</strong> with React and Storybook for the former Twitter.com design team.</li>
100-
<li>Created <strong>custom responsive components</strong> for <a href="https://google.org">Google.org</a> using Python and vanilla Javascript.</li>
101-
<li><strong>Built new React components</strong> for <a href="https://business.pinterest.com/getting-started/">Pinterest Business</a>.</li>
102-
<li>Helped <strong>implement the achievements functionality for games and social sharing</strong> across the Epic Games platform.</li>
103-
</ul>
78+
<li>Designed a bespoke responsive component library paired with an A/B testing system in Craft CMS for Greenhouse.com, enabling their marketing team to continuously optimize conversions by running tests against every component on every page.</li>
79+
<li>Prototyped brand explorations in React and Storybook for the former Twitter.com design team.</li>
80+
<li>Launched custom responsive components for <a href="https://google.org">Google.org</a> using Python and vanilla JavaScript.</li>
81+
<li>Shipped React components to production for <a href="https://business.pinterest.com/getting-started/">Pinterest Business</a>.</li>
82+
<li>Contributed to the achievements and social sharing system for the Epic Games launcher, an event-driven React overlay that integrates with game SDKs platform-wide. Worked primarily on the state management layer for achievement lifecycle events.</li> </ul>
10483

10584
<h3 id="Phase2">Phase2</h3>
106-
<h4 id="intern to senior">Senior Developer</h4>
85+
<h4>Senior Developer</h4>
10786
<p>June 2015 — August 2019</p>
87+
<p>Started as part of Phase2's first intern class and grew into a Senior Developer over four years, later mentoring new interns through the same program.</p>
10888
<ul>
109-
<li><strong>Co-maintained our agency's front-end toolkit</strong>, enabling the rapid stand-up of new sites with atomic design principles & consistent processes.</li>
110-
<li>Helped <strong>multiple enterprise organizations</strong> migrate from Drupal 7 to Drupal 8 efficiently.</li>
111-
<li><strong>Won a Webby award</strong> as part of the team shipping the revamped <a href="https://arsenal.com">Arsenal.com</a>.</li>
89+
<li>Co-maintained our agency's front-end toolkit, enabling the rapid stand-up of new sites with atomic design principles and consistent processes.</li>
90+
<li>Contributed to Drupal 7 to Drupal 8 migrations for at least five enterprise organizations, including Al Jazeera, Weight Watchers, and Memorial Sloan Kettering Cancer Center.</li>
91+
<li>Won a Webby Award as part of the team shipping the revamped <a href="https://arsenal.com">Arsenal.com</a>.</li>
11292
</ul>
11393

11494
<h2 id="recent-projects">Highlighted Projects</h2>
95+
96+
<h3 id="later-rebrand">Later.com Rebrand</h3>
97+
<p>Partnered with <a href="https://wlcr.io">WLCR</a> to deliver Later's rebrand on their existing marketing site, refreshing design system tokens across the board and updating responsive components with new motion and animation treatments. Also built the custom parallax landing page for <em>Made You Look</em>, a flagship creator campaign featuring original films, immersive scroll interactions, and multiple creator story panels.</p>
98+
<p>
99+
<a href="https://later.com/made-you-look/">later.com/made-you-look</a>
100+
</p>
101+
115102
<h3 id="va.gov">VA.gov</h3>
116-
<p>Architected a Next.js build system for an existing headless Drupal installation to improve publishing times for VA Editors. With >55,000 pieces of content, growing daily, timely publishing is key. The legacy system's build times took a minimum of 45 minutes, sometimes closer to two hours! This new approach enables rapid publishing of content in under five minutes. It also provides editors the capability to preview their content exactly as it would appear on VA.gov <em>before publishing</em>, a major pain point of the prior process.</p>
103+
<p>Architected a Next.js build system on top of an existing headless Drupal installation to dramatically improve publishing times for VA editors. With over 55,000 pieces of content and growing daily, timely publishing is critical. The legacy system took a minimum of 45 minutes per build, sometimes closer to two hours. The new approach gets content live in under five minutes and gives editors the ability to preview their work exactly as it will appear on VA.gov <em>before publishing</em>, addressing a major pain point of the prior workflow.</p>
117104
<p>
118105
<a href="https://va.gov">VA.gov</a>
119106
</p>
120107

121108
<h3 id="medical-bill-rights">Medical Bill Rights</h3>
122-
<p>For the No Surprises Act, this portal has all the information citizens need for understanding their newly enshrined rights around medical billing, whether they are using Medicare/Medicaid or not. There are 26 different fact pages (localized in two languages, with support for more) and two separate React apps, also with localization support: a wizard to help users find the relevant fact page for their situation, and a multi-page form with client and server side validation that sends submissions off to a CRM for claims processing by CMS agents.</p>
109+
<p>Built in support of the No Surprises Act, this CMS.gov portal gives citizens the information they need to understand their rights around medical billing, whether or not they use Medicare/Medicaid. The site includes 26 fact pages localized in two languages (with support for more), a React-based wizard that helps users find the relevant fact page for their situation, and a multi-page form with client and server-side validation that routes submissions to a CRM for claims processing by CMS agents.</p>
123110
<p><a href="https://www.cms.gov/medical-bill-rights">cms.gov/medical-bill-rights</a></p>
111+
</div>
112+
</main>
124113

125-
<h3 id="greenhouse">Greenhouse</h3>
126-
<p>A bespoke marketing website for a leading hiring solutions company, using Craft CMS, Twig and vanilla JavaScript. As a freelance front-end developer I joined a small team at Instrument and built Greenhouse's marketing website from the ground up. Collaborating closely with designers, we worked to design an accessible, responsive component library with a wide range of flexibility.
127-
128-
Almost every component can be reversed, and every single page or component slot can be A/B tested, all controlled through the CMS itself, giving Greenhouse's marketing team full control to test optimal user flows to their heart's desire.</p>
129-
<p><a href="https://greenhouse.com">greenhouse.com</a></p>
130-
</div>
131-
</main>
114+
<section class="skills">
115+
<h2>Skills & Tools</h2>
116+
<ul class="tags">
117+
<li>TypeScript</li>
118+
<li>JavaScript</li>
119+
<li>Swift</li>
120+
<li>PHP</li>
121+
<li>Python</li>
122+
<li>Ruby</li>
123+
<li>React</li>
124+
<li>Next.js</li>
125+
<li>Svelte/SvelteKit</li>
126+
<li>Node</li>
127+
<li>Drupal</li>
128+
<li>Design Systems</li>
129+
<li>Accessibility</li>
130+
<li>Figma</li>
131+
<li>Storybook</li>
132+
</ul>
133+
</section>

src/routes/(nowrapper)/resume/resume.css

Lines changed: 98 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
@font-face {
22
font-family: 'Merriweather';
33
font-style: normal;
4-
font-weight: normal;
4+
font-weight: 700;
55
src: url('$lib/font/Merriweather-Bold.ttf') format('truetype');
66
}
77
@font-face {
@@ -23,16 +23,16 @@ body {
2323
padding: min(0.5in, 6vw);
2424

2525
font-family: 'Mulish', sans-serif;
26+
line-height: 1.5;
2627
--c-accent: black;
2728
}
28-
2929
a {
3030
color: inherit;
3131
text-decoration: underline;
3232
}
3333

3434
h1 {
35-
font-family: 'Merriweather;', serif;
35+
font-family: 'Merriweather', serif;
3636
font-weight: 700;
3737
font-size: 2.5em;
3838
margin-block: 0;
@@ -75,7 +75,6 @@ ul {
7575
display: flex;
7676
flex-direction: column;
7777
gap: 0.5em;
78-
/* font-size: .8em */
7978
}
8079
.contact {
8180
list-style: none;
@@ -88,7 +87,7 @@ ul {
8887
display: inline-flex;
8988
width: 2.5ch;
9089
margin-right: 1ch;
91-
background-color: black;
90+
background-color: var(--c-accent);
9291
border-radius: 50px;
9392
color: white;
9493
font-weight: 600;
@@ -133,8 +132,101 @@ p {
133132
margin-block: 0.25em;
134133
}
135134

135+
/* Role intro paragraph (e.g., Hyzer's consultancy framing line) */
136+
.list h4 + p + p {
137+
font-style: italic;
138+
color: #555;
139+
margin-block: 0.25em 0.5em;
140+
}
141+
136142
.list ul {
137143
list-style-type: disc;
138-
text-indent: 0.25rem;
139144
margin-inline-start: 1.25rem;
140145
}
146+
147+
@media print {
148+
@page {
149+
margin: 0.4in;
150+
}
151+
152+
/* Hide Highlighted Projects in print; keep on web */
153+
#recent-projects,
154+
#recent-projects ~ h3,
155+
#recent-projects ~ p {
156+
display: none;
157+
}
158+
159+
/* Hide Skills section in print; keep on web */
160+
.skills {
161+
display: none;
162+
}
163+
164+
body {
165+
padding: 0;
166+
font-size: 10.5pt;
167+
line-height: 1.35;
168+
}
169+
170+
h1 {
171+
font-size: 2em;
172+
}
173+
174+
h2 {
175+
font-size: 1.2em;
176+
margin-block: 0.6em 0.3em;
177+
}
178+
179+
h3 {
180+
font-size: 1.05em;
181+
margin-top: 0.8em;
182+
}
183+
184+
h4 {
185+
font-size: 0.85em;
186+
}
187+
188+
ul {
189+
gap: 0.25em;
190+
}
191+
192+
p {
193+
margin-block: 0.15em;
194+
}
195+
196+
header p {
197+
margin-block: 0.3em 0;
198+
}
199+
200+
/* Pull section headings closer to preceding content */
201+
h2 {
202+
margin-top: 0.8em;
203+
}
204+
205+
/* Page break controls */
206+
h2,
207+
h3,
208+
h4 {
209+
break-after: avoid;
210+
page-break-after: avoid;
211+
}
212+
213+
ul,
214+
li,
215+
p {
216+
break-inside: avoid;
217+
page-break-inside: avoid;
218+
}
219+
220+
h3 + h4,
221+
h4 + p {
222+
break-before: avoid;
223+
page-break-before: avoid;
224+
}
225+
226+
/* Date line (p immediately after h4) can't end a page,
227+
forcing the whole role group onto the next page if needed */
228+
.list h4 + p {
229+
break-after: avoid;
230+
page-break-after: avoid;
231+
}
232+
}

0 commit comments

Comments
 (0)