PageSourceSearch

https://jola.dev/about

html jola.dev collected 2026-10-03 22:08:54 UTC 25,201 bytes, 334 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" class="[scrollbar-gutter:stable] antialiased">
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1">
6    
7
8    <title>
9      About Johanna Larsson
10    </title>
11    <meta name="description" content="About Johanna Larsson, software engineer, engineering leader, writer, and speaker with many years of experience.">
12    <meta property="og:title" content="About Johanna Larsson">
13    <meta property="og:url" content="https://jola.dev/about">
14    <meta property="og:description" content="About Johanna Larsson, software engineer, engineering leader, writer, and speaker with many years of experience.">
15    <meta property="og:type" content="website">
16    <meta property="og:image" content="https://jola.dev/images/og/about.png">
17    <meta property="og:image:type" content="image/png">
18    <meta property="og:image:width" content="1200">
19    <meta property="og:image:height" content="630">
20    <meta property="og:image:alt" content="About Johanna Larsson">
21    <meta property="og:site_name" content="jola.dev">
22    <meta property="og:locale" content="en_US">
23
24    <meta name="twitter:card" content="summary_large_image">
25    <meta name="twitter:site" content="@joladev">
26    <meta name="twitter:creator" content="@joladev">
27    <meta name="twitter:title" content="About Johanna Larsson">
28    <meta name="twitter:description" content="About Johanna Larsson, software engineer, engineering leader, writer, and speaker with many years of experience.">
29    <meta name="twitter:image" content="https://jola.dev/images/og/about.png">
30    <meta name="twitter:image:alt" content="About Johanna Larsson">
31    <meta name="fediverse:creator" content="@[email protected]">
32
33      <link rel="canonical" href="https://jola.dev/about">
34
35    <link rel="alternate" type="application/rss+xml" title="jola.dev RSS Feed" href="/rss.xml">
36    <link rel="preload" href="/fonts/schibsted-grotesk-ba4038fc5cb57fda692c7fcae5662de1.woff2?vsn=d" as="font" type="font/woff2" crossorigin>
37    <link rel="preload" href="/fonts/hanken-grotesk-c501f578bf3fc800c20056df516ed9f2.woff2?vsn=d" as="font" type="font/woff2" crossorigin>
38    <link rel="preload" href="/fonts/maple-mono-f87ac6a0dc5adf1011f65d36c12f30eb.woff2?vsn=d" as="font" type="font/woff2" crossorigin>
39    <link rel="stylesheet" href="/assets/app-5fe98980b8f2657243b22af083b18fcd.css?vsn=d">
40    
40<script defer type="text/javascript" src="/assets/app-2d6abdaa53be50989d4150dcc0cac2ed.js?vsn=d">
41    </script>
41
42    
42<script defer src="https://umami.devstats.io/script.js" data-website-id="ee45eb1e-80d4-41dd-9ee1-8cb7739a9086">
43    </script>
43
44    <link rel="icon" type="image/png" href="/images/logo.png">
45    <link rel="apple-touch-icon" href="/images/logo.png">
46    <link href="https://mastodon.social/@joladev" rel="me">
47
48      
48<script type="application/ld+json">
49{"@context":"https://schema.org","@type":"WebSite","name":"jola.dev","url":"https://jola.dev"}
50      </script>
50
51
52      
52<script type="application/ld+json">
53{"@context":"https://schema.org","@id":"https://jola.dev/#person","@type":"Person","jobTitle":"Software Engineer & Engineering Leader","name":"Johanna Larsson","sameAs":["https://github.com/joladev","https://linkedin.com/in/joladev","https://bsky.app/profile/jola.dev","https://twitter.com/joladev"],"url":"https://jola.dev/about"}
54      </script>
54
55
56      
56<script type="application/ld+json">
57{"@context":"https://schema.org","@type":"ProfilePage","mainEntity":{"@id":"https://jola.dev/#person"}}
58      </script>
58
59
60      
60<script type="application/ld+json">
61{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://jola.dev/","name":"Home","position":1},{"@type":"ListItem","item":"https://jola.dev/about","name":"About","position":2}]}
62      </script>
62
63
64  </head>
65  <body class="min-h-screen antialiased flex flex-col">
66    <div class="min-h-screen flex flex-col">
67  <header class="border-b border-border">
68    <nav class="w-full ">
69  <div class="max-w-content mx-auto px-6 md:px-8">
70    <div class="flex items-center justify-between h-16">
71      <div class="flex items-center space-x-8">
72        <a href="/" class="flex items-center gap-2 text-xl font-semibold text-foreground hover:opacity-80 transition-opacity font-heading">
73          <span class="lucide-terminal w-6 h-6 text-accent"></span> jola.dev
74        </a>
75
76        <div class="hidden md:flex items-center space-x-6">
77          <a href="/" class="text-sm font-medium transition-all relative group text-muted-foreground hover:text-foreground">
78            Home
79            <span class="absolute -bottom-1 left-0 h-0.5 bg-accent transition-all w-0 group-hover:w-full"></span>
80          </a><a href="/about" class="text-sm font-medium transition-all relative group text-foreground">
81            About
82            <span class="absolute -bottom-1 left-0 h-0.5 bg-accent transition-all w-full"></span>
83          </a><a href="/posts" class="text-sm font-medium transition-all relative group text-muted-foreground hover:text-foreground">
84            
85        Blog
86      
87            <span class="absolute -bottom-1 left-0 h-0.5 bg-accent transition-all w-0 group-hover:w-full"></span>
88          </a><a href="/newsletter" class="text-sm font-medium transition-all relative group text-muted-foreground hover:text-foreground">
89            Newsletter
90            <span class="absolute -bottom-1 left-0 h-0.5 bg-accent transition-all w-0 group-hover:w-full"></span>
91          </a><a href="/projects" class="text-sm font-medium transition-all relative group text-muted-foreground hover:text-foreground">
92            Projects
93            <span class="absolute -bottom-1 left-0 h-0.5 bg-accent transition-all w-0 group-hover:w-full"></span>
94          </a><a href="/talks" class="text-sm font-medium transition-all relative group text-muted-foreground hover:text-foreground">
95            Talks
96            <span class="absolute -bottom-1 left-0 h-0.5 bg-accent transition-all w-0 group-hover:w-full"></span>
97          </a>
98        </div>
99      </div>
100
101      <div class="flex items-center space-x-4">
102        <div class="hidden md:flex items-center space-x-2">
103          <a href="https://tangled.org/jola.dev" target="_blank" rel="noopener" class="flex items-center justify-center w-9 h-9 rounded-lg text-muted-foreground hover:text-foreground hover:bg-surface transition-all" aria-label="Tangled">
104            <span class="inline-block align-middle shrink-0 w-5 h-5">
105  <svg class="size-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true">
106    <path d="M21.0971 30.866C20.0566 30.8575 19.2628 30.5542 18.4016 30.0269C17.1668 29.3753 16.2237 28.2808 15.5497 27.0739C14.4789 28.4065 13.0476 29.215 11.4453 29.6718C10.763 29.8705 9.56809 30.0721 7.58737 29.3523C4.73277 28.3905 2.65342 25.4114 2.88973 22.3758C2.8465 21.1175 3.30392 19.8825 3.95228 18.8208C2.22264 17.8897 0.81225 16.3266 0.272148 14.4098C-0.0560731 13.3604 -0.042271 12.2299 0.0787626 11.1512C0.512215 8.60429 2.41697 6.38956 4.86912 5.59294C5.8479 3.35574 7.98378 1.68743 10.4037 1.34778C12.0104 1.12338 13.6735 1.46075 15.0792 2.27979C17.1272 0.00158595 20.6952 -0.671697 23.4195 0.727793C25.4978 1.72322 26.9839 3.80003 27.3447 6.06471C29.3222 6.85928 30.9877 8.47971 31.6413 10.5368C32.0784 11.8104 32.0928 13.2132 31.8098 14.5209C31.3041 16.5615 29.8679 18.2987 28.009 19.2482C28.0135 19.6113 29.2037 22.2296 29.0047 24.2056C28.9612 26.676 27.399 29.0172 25.2325 30.1544C23.9683 30.8945 22.4702 30.8805 21.0971 30.866ZM15.1733 23.755C16.9256 23.5593 18.0743 22.0269 18.9665 20.6469C19.3883 20.0182 19.7105 19.3146 20.0306 18.6454C20.4458 19.0271 20.7975 19.7461 21.4541 19.9173C22.1457 20.1333 22.9566 19.9579 23.38 19.3277C24.1902 17.8118 23.7908 15.9827 23.319 14.4119C23.0284 13.5097 22.6472 12.5841 21.9218 11.9446C22.0765 10.85 21.4299 9.73834 20.5106 9.16542C19.7272 9.79198 18.5352 9.78821 17.7794 9.11795C16.3309 10.5997 15.0034 10.5505 13.7212 9.37618C13.4331 9.11226 12.8832 10.9871 10.9535 9.92506C9.84488 10.8567 8.98526 11.753 8.22356 13.0435C7.48342 14.4347 6.70829 15.6703 6.64151 17.1811C6.6094 
10618.0641 7.29731 18.9892 8.22942 18.9174C9.16105 19.0009 9.7952 18.0813 10.5006 17.6993C10.6058 18.9316 10.7243 20.2556 11.1395 21.4587C11.6161 23.0155 13.2947 24.005 14.8835 23.7784C14.9959 23.7696 15.1733 23.7549 15.1733 23.755ZM16.0828 19.1062C15.2306 18.5823 15.6407 17.4452 15.6066 16.6193C15.6914 15.6227 15.7594 14.575 16.2061 13.667C16.6788 13.0197 17.8318 13.2694 17.8827 14.0999C17.8488 14.9353 17.4664 15.767 17.5121 16.633C17.4129 17.3561 17.5839 18.1684 17.265 18.8293C17.0033 19.195 16.4703 19.3013 16.0828 19.1062ZM12.3606 18.6302C11.5578 18.1933 11.8129 17.0941 11.687 16.3298C11.7914 15.445 11.7045 14.3226 12.4431 13.7021C13.1653 13.1969 14.1485 14.0621 13.8069 14.8564C13.4426 15.8602 13.6814 16.957 13.6891 17.9748C13.5512 18.5752 12.911 18.894 12.3606 18.6302Z"
107style="fill-rule:evenodd;clip-rule:evenodd;fill:currentColor" transform="scale(16)"
108/>
109
110  </svg>
111</span>
112          </a>
113          <a href="https://github.com/joladev" target="_blank" rel="noopener" class="flex items-center justify-center w-9 h-9 rounded-lg text-muted-foreground hover:text-foreground hover:bg-surface transition-all" aria-label="GitHub">
114            <span class="inline-block align-middle shrink-0 w-5 h-5">
115  <svg class="size-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true">
116    <path
117  d="M256 6.3C114.6 6.3 0 120.9 0 262.3c0 113.3 73.3 209 175 242.9 12.8 2.2 17.6-5.4 17.6-12.2 0-6.1-.3-26.2-.3-47.7-64.3 11.8-81-15.7-86.1-30.1-2.9-7.4-15.4-30.1-26.2-36.2-9-4.8-21.8-16.6-.3-17 20.2-.3 34.6 18.6 39.4 26.2 23 38.7 59.8 27.8 74.6 21.1 2.2-16.
1176 9-27.8 16.3-34.2-57-6.4-116.5-28.5-116.5-126.4 0-27.8 9.9-50.9 26.2-68.8-2.6-6.4-11.5-32.6 2.6-67.8 0 0 21.4-6.7 70.4 26.2 20.5-5.8 42.2-8.6 64-8.6s43.5 2.9 64 8.6c49-33.3 70.4-26.2 70.4-26.2 14.1 35.2 5.1 61.4 2.6 67.8 16.3 17.9 26.2 40.6 26.2 68.8 0 98.2-59.8 120-116.8 126.4 9.3 8 17.3 23.4 17.3 47.4 0 34.2-.3 61.8-.3 70.4 0 6.7 4.8 14.7 17.6 12.2C438.7 471.3 512 375.3 512 262.3c0-141.4-114.6-256-256-256"
118  style="fill-rule:evenodd;clip-rule:evenodd;fill:currentColor"
119/>
120
121  </svg>
122</span>
123          </a>
124          <a href="https://twitter.com/joladev" target="_blank" rel="noopener" class="flex items-center justify-center w-9 h-9 rounded-lg text-muted-foreground hover:text-foreground hover:bg-surface transition-all" aria-label="Twitter">
125            <span class="inline-block align-middle shrink-0 w-5 h-5">
126  <svg class="size-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true">
127    <path
128  d="M459.6 151.6c.3 4.5.3 9 .3 13.6C459.9 303.9 354.2 464 161 464v-.1c-57.1.1-113-16.2-161-47.1 8.3 1 16.6 1.5 25 1.5 47.3 0 93.2-15.8 130.5-45.1-44.9-.9-84.4-30.2-98.1-72.9 15.7 3 32 2.4 47.4-1.8-49-9.9-84.3-53-84.3-103v-1.3c14.6 8.1 31 12.6 47.7 13.1C22 176.6 7.8 115.2 35.7 67.1c53.3 65.6 132 105.5 216.5 109.7-8.5-36.5 3.1-74.7 30.4-100.4 42.3-39.8 108.8-37.7 148.6 4.6 23.5-4.6 46.1-13.3 66.7-25.5-7.8 24.3-24.3 45-46.2 58.1 20.8-2.5 41.2-8 60.3-16.5-14.1 21.2-31.9 39.6-52.4 54.5"
129  style="fill:currentColor"
130/>
131
132  </svg>
133</span>
134          </a>
135          <a href="https://bsky.app/profile/jola.dev" target="_blank" rel="noopener" class="flex items-center justify-center w-9 h-9 rounded-lg text-muted-foreground hover:text-foreground hover:bg-surface transition-all" aria-label="Bluesky">
136            <span class="inline-block align-middle shrink-0 w-5 h-5">
137  <svg class="size-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true">
138    <path
139  d="M111 60.9c58.7 44.1 121.8 133.4 145 181.4 23.2-47.9 86.3-137.3 145-181.4 42.4-31.8 111-56.4 111 21.9 0 15.6-9 131.3-14.2 150.1-18.3 65.3-84.9 82-144.1 71.9 103.5 17.6 129.9 76 73 134.4-108 110.9-155.3-27.8-167.4-63.4-2.2-6.5-3.3-9.6-3.3-7 0-2.6-1.1.5-3.3 7-12.1 35.5-59.4 174.2-167.4 63.4-56.9-58.4-30.5-116.8 73-134.4-59.2 10.1-125.8-6.5-144.1-71.8C9 214.2 0 98.5 0 82.8 0 4.5 68.6 29.1 111 60.9"
140  style="fill:currentColor"
141/>
142
143  </svg>
144</span>
145          </a>
146          <a href="https://linkedin.com/in/joladev" target="_blank" rel="noopener" class="flex items-center justify-center w-9 h-9 rounded-lg text-muted-foreground hover:text-foreground hover:bg-surface transition-all" aria-label="LinkedIn">
147            <span class="inline-block align-middle shrink-0 w-5 h-5">
148  <svg class="size-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true">
149    <path
150  d="M455.1 0H56.9C25.5 0 0 25.5 0 56.9v398.2C0 486.5 25.5 512 56.9 512h398.2c31.4 0 56.9-25.5 56.9-56.9V56.9C512 25.5 486.5 0 455.1 0M154.8 440.9H78.5V194.4h76.4v246.5zm-38.5-278.8c-24.9 0-45.2-20.4-45.2-45.5s20.2-45.5 45.2-45.5 45.1 20.4 45.1 45.5-20.2 45.5-45.1 45.5m324.6 278.8h-76V311.5c0-35.5-13.5-55.3-41.6-55.3-30.5 0-46.5 20.6-46.5 55.3v129.4h-73.2V194.4h73.2v33.2s22-40.7 74.3-40.7 89.7 31.9 89.7 98v156z"
151  style="fill-rule:evenodd;clip-rule:evenodd;fill:currentColor"
152/>
153
154  </svg>
155</span>
156          </a>
157          <a href="/rss.xml" class="flex items-center justify-center w-9 h-9 rounded-lg text-muted-foreground hover:text-foreground hover:bg-surface transition-all" aria-label="RSS Feed">
158            <span class="lucide-rss w-5 h-5"></span>
159          </a>
160        </div>
161
162        <button data-mobile-menu-button aria-expanded="false" aria-controls="mobile-menu" aria-label="Toggle menu" class="md:hidden flex items-center justify-center w-9 h-9 rounded-lg text-muted-foreground hover:text-foreground hover:bg-surface transition-all">
163          <span class="lucide-menu w-5 h-5"></span>
164        </button>
165      </div>
166    </div>
167  </div>
168</nav>
169
170<div id="mobile-menu" data-mobile-menu class="mobile-menu bg-background">
171  <div class="px-6 py-4 space-y-2">
172    <a href="/" class="block px-3 py-2 text-base font-medium rounded-lg transition-colors text-muted-foreground hover:text-foreground hover:bg-surface">
173      Home
174    </a><a href="/about" class="block px-3 py-2 text-base font-medium rounded-lg transition-colors bg-surface text-foreground">
175      About
176    </a><a href="/posts" class="block px-3 py-2 text-base font-medium rounded-lg transition-colors text-muted-foreground hover:text-foreground hover:bg-surface">
177      
178        Blog
179      
180    </a><a href="/newsletter" class="block px-3 py-2 text-base font-medium rounded-lg transition-colors text-muted-foreground hover:text-foreground hover:bg-surface">
181      Newsletter
182    </a><a href="/projects" class="block px-3 py-2 text-base font-medium rounded-lg transition-colors text-muted-foreground hover:text-foreground hover:bg-surface">
183      Projects
184    </a><a href="/talks" class="block px-3 py-2 text-base font-medium rounded-lg transition-colors text-muted-foreground hover:text-foreground hover:bg-surface">
185      Talks
186    </a>
187
188    <div class="pt-4 border-t border-border">
189      <div class="flex items-center space-x-2 flex-nowrap">
190        <a href="https://tangled.org/jola.dev" target="_blank" rel="noopener" class="text-muted-foreground hover:text-foreground transition-colors" aria-label="Tangled">
191          <span class="inline-block align-middle shrink-0 w-5 h-5">
192  <svg class="size-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true">
193    <path d="M21.0971 30.866C20.0566 30.8575 19.2628 30.5542 18.4016 30.0269C17.1668 29.3753 16.2237 28.2808 15.5497 27.0739C14.4789 28.4065 13.0476 29.215 11.4453 29.6718C10.763 29.8705 9.56809 30.0721 7.58737 29.3523C4.73277 28.3905 2.65342 25.4114 2.88973 22.3758C2.8465 21.1175 3.30392 19.8825 3.95228 18.8208C2.22264 17.8897 0.81225 16.3266 0.272148 14.4098C-0.0560731 13.3604 -0.042271 12.2299 0.0787626 11.1512C0.512215 8.60429 2.41697 6.38956 4.86912 5.59294C5.8479 3.35574 7.98378 1.68743 10.4037 1.34778C12.0104 1.12338 13.6735 1.46075 15.0792 2.27979C17.1272 0.00158595 20.6952 -0.671697 23.4195 0.727793C25.4978 1.72322 26.9839 3.80003 27.3447 6.06471C29.3222 6.85928 30.9877 8.47971 31.6413 10.5368C32.0784 11.8104 32.0928 13.2132 31.8098 14.5209C31.3041 16.5615 29.8679 18.2987 28.009 19.2482C28.0135 19.6113 29.2037 22.2296 29.0047 24.2056C28.9612 26.676 27.399 29.0172 25.2325 30.1544C23.9683 30.8945 22.4702 30.8805 21.0971 30.866ZM15.1733 23.755C16.9256 23.5593 18.0743 22.0269 18.9665 20.6469C19.3883 20.0182 19.7105 19.3146 20.0306 18.6454C20.4458 19.0271 20.7975 19.7461 21.4541 19.9173C22.1457 20.1333 22.9566 19.9579 23.38 19.3277C24.1902 17.8118 23.7908 15.9827 23.319 14.4119C23.0284 13.5097 22.6472 12.5841 21.9218 11.9446C22.0765 10.85 21.4299 9.73834 20.5106 9.16542C19.7272 9.79198 18.5352 9.78821 17.7794 9.11795C16.3309 10.5997 15.0034 10.5505 13.7212 9.37618C13.4331 9.11226 12.8832 10.9871 10.9535 9.92506C9.84488 10.8567 8.98526 11.753 8.22356 13.0435C7.48342 14.4347 6.70829 15.6703 6.64151 17.1811C6.6094 18.0641 7.29731 18.9892 8.22942 18.9174C9.16105 19.0009 9.7952 18.0813 10.5006 17.6993C10.6058 18.9316 10.7243 20.2556 11.1395 21.4587C11.6161 23.0155 13.2947 24.005 14.8835 23.7784C14.9959 23.7696 15.1733 23.7549 15.1733 23.755ZM16.0828 19.1062C15.2306 18.5823 15.6407 17.4452 15.6066 16.6193C15.6914 15.6227 15.7594 14.575 16.2061 13.667C16.6788 13.0197 17.8318 13.2694 17.8827 14.0999C17.8488 14.9353 17.4664 15.767 17.5121 16.633C1
1937.4129 17.3561 17.5839 18.1684 17.265 18.8293C17.0033 19.195 16.4703 19.3013 16.0828 19.1062ZM12.3606 18.6302C11.5578 18.1933 11.8129 17.0941 11.687 16.3298C11.7914 15.445 11.7045 14.3226 12.4431 13.7021C13.1653 13.1969 14.1485 14.0621 13.8069 14.8564C13.4426 15.8602 13.6814 16.957 13.6891 17.9748C13.5512 18.5752 12.911 18.894 12.3606 18.6302Z"
194style="fill-rule:evenodd;clip-rule:evenodd;fill:currentColor" transform="scale(16)"
195/>
196
197  </svg>
198</span>
199        </a>
200        <a href="https://github.com/joladev" target="_blank" rel="noopener" class="text-muted-foreground hover:text-foreground transition-colors" aria-label="GitHub">
201          <span class="inline-block align-middle shrink-0 w-5 h-5">
202  <svg class="size-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true">
203    <path
204  d="M256 6.3C114.6 6.3 0 120.9 0 262.3c0 113.3 73.3 209 175 242.9 12.8 2.2 17.6-5.4 17.6-12.2 0-6.1-.3-26.2-.3-47.7-64.3 11.8-81-15.7-86.1-30.1-2.9-7.4-15.4-30.1-26.2-36.2-9-4.8-21.8-16.6-.3-17 20.2-.3 34.6 18.6 39.4 26.2 23 38.7 59.8 27.8 74.6 21.1 2.2-16.
2046 9-27.8 16.3-34.2-57-6.4-116.5-28.5-116.5-126.4 0-27.8 9.9-50.9 26.2-68.8-2.6-6.4-11.5-32.6 2.6-67.8 0 0 21.4-6.7 70.4 26.2 20.5-5.8 42.2-8.6 64-8.6s43.5 2.9 64 8.6c49-33.3 70.4-26.2 70.4-26.2 14.1 35.2 5.1 61.4 2.6 67.8 16.3 17.9 26.2 40.6 26.2 68.8 0 98.2-59.8 120-116.8 126.4 9.3 8 17.3 23.4 17.3 47.4 0 34.2-.3 61.8-.3 70.4 0 6.7 4.8 14.7 17.6 12.2C438.7 471.3 512 375.3 512 262.3c0-141.4-114.6-256-256-256"
205  style="fill-rule:evenodd;clip-rule:evenodd;fill:currentColor"
206/>
207
208  </svg>
209</span>
210        </a>
211        <a href="https://twitter.com/joladev" target="_blank" rel="noopener" class="text-muted-foreground hover:text-foreground transition-colors" aria-label="Twitter">
212          <span class="inline-block align-middle shrink-0 w-5 h-5">
213  <svg class="size-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true">
214    <path
215  d="M459.6 151.6c.3 4.5.3 9 .3 13.6C459.9 303.9 354.2 464 161 464v-.1c-57.1.1-113-16.2-161-47.1 8.3 1 16.6 1.5 25 1.5 47.3 0 93.2-15.8 130.5-45.1-44.9-.9-84.4-30.2-98.1-72.9 15.7 3 32 2.4 47.4-1.8-49-9.9-84.3-53-84.3-103v-1.3c14.6 8.1 31 12.6 47.7 13.1C22 176.6 7.8 115.2 35.7 67.1c53.3 65.6 132 105.5 216.5 109.7-8.5-36.5 3.1-74.7 30.4-100.4 42.3-39.8 108.8-37.7 148.6 4.6 23.5-4.6 46.1-13.3 66.7-25.5-7.8 24.3-24.3 45-46.2 58.1 20.8-2.5 41.2-8 60.3-16.5-14.1 21.2-31.9 39.6-52.4 54.5"
216  style="fill:currentColor"
217/>
218
219  </svg>
220</span>
221        </a>
222        <a href="https://bsky.app/profile/jola.dev" target="_blank" rel="noopener" class="text-muted-foreground hover:text-foreground transition-colors" aria-label="Bluesky">
223          <span class="inline-block align-middle shrink-0 w-5 h-5">
224  <svg class="size-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true">
225    <path
226  d="M111 60.9c58.7 44.1 121.8 133.4 145 181.4 23.2-47.9 86.3-137.3 145-181.4 42.4-31.8 111-56.4 111 21.9 0 15.6-9 131.3-14.2 150.1-18.3 65.3-84.9 82-144.1 71.9 103.5 17.6 129.9 76 73 134.4-108 110.9-155.3-27.8-167.4-63.4-2.2-6.5-3.3-9.6-3.3-7 0-2.6-1.1.5-3.3 7-12.1 35.5-59.4 174.2-167.4 63.4-56.9-58.4-30.5-116.8 73-134.4-59.2 10.1-125.8-6.5-144.1-71.8C9 214.2 0 98.5 0 82.8 0 4.5 68.6 29.1 111 60.9"
227  style="fill:currentColor"
228/>
229
230  </svg>
231</span>
232        </a>
233        <a href="https://linkedin.com/in/joladev" target="_blank" rel="noopener" class="text-muted-foreground hover:text-foreground transition-colors" aria-label="LinkedIn">
234          <span class="inline-block align-middle shrink-0 w-5 h-5">
235  <svg class="size-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true">
236    <path
237  d="M455.1 0H56.9C25.5 0 0 25.5 0 56.9v398.2C0 486.5 25.5 512 56.9 512h398.2c31.4 0 56.9-25.5 56.9-56.9V56.9C512 25.5 486.5 0 455.1 0M154.8 440.9H78.5V194.4h76.4v246.5zm-38.5-278.8c-24.9 0-45.2-20.4-45.2-45.5s20.2-45.5 45.2-45.5 45.1 20.4 45.1 45.5-20.2 45.5-45.1 45.5m324.6 278.8h-76V311.5c0-35.5-13.5-55.3-41.6-55.3-30.5 0-46.5 20.6-46.5 55.3v129.4h-73.2V194.4h73.2v33.2s22-40.7 74.3-40.7 89.7 31.9 89.7 98v156z"
238  style="fill-rule:evenodd;clip-rule:evenodd;fill:currentColor"
239/>
240
241  </svg>
242</span>
243        </a>
244        <a href="/rss.xml" class="text-muted-foreground hover:text-foreground transition-colors" aria-label="RSS Feed">
245          <span class="lucide-rss w-5 h-5"></span>
246        </a>
247      </div>
248    </div>
249  </div>
250</div>
251  </header>
252
253  <main class="flex-grow">
254    
255  <section class="py-16">
256    <div class="max-w-prose mx-auto px-6 md:px-8">
257      <header class="mb-12 text-center">
258        <h1 class="text-4xl md:text-5xl lg:text-6xl font-semibold tracking-tight text-foreground ">
259  About Me
260</h1>
261
262
263
264      </header>
265
266      <div class="space-y-6">
267        <p class="text-lg md:text-xl text-foreground text-justify">
268  
269          Hiya! I'm currently working as as product engineer at <a href="https://incident.io">incident.io 🔥</a>, a company in the incident industry. Even though I'm primarily working with Go and TypeScript now, my heart is still with Elixir. I'm a big fan of the Elixir programming language and community and I've been a pretty frequent speaker at conferences.
270        
271</p>
272
273        <p class="text-base text-foreground text-justify">
274  
275          I've also done a stint as a direct of engineering at an ad tech company, staying hands on by building a bespoke revenue optimizing adapter to sit between Out of Home screens and ad exchanges. I've also worked with travel, focused on high throughput CPU intensive processing as a staff engineer, but more importantly, on starting up and leading teams, taking them from zero to productivity and supporting my coworkers with mentoring and coaching. Before that I did cyber security, building Cloudflare workers that could run between your app and your clients and seamlessly apply intelligent rules to deny fraudulent login attempts. I also spent a few years working for a health tech company in Swede
275n. All in all I've got over 14 years of professional software engineering experience.
276        
277</p>
278
279        <p class="text-base text-foreground text-justify">
280  
281          Although I live in London 🇬🇧 I spend a lot of my time in Mexico 🇲🇽
282        
283</p>
284
285        <p class="text-base text-foreground text-justify">
286  
287          You can find me on Bluesky at <a href="https://bsky.app/profile/jola.dev" class="underline">@jola.dev</a>.
288        
289</p>
290
291        <aside class="mt-8 ">
292  <div class="rounded-lg border border-accent/30 bg-accent/5 p-6 md:p-8">
293    <p class="text-lg font-semibold text-foreground mb-2">
294      Like what I do?
295    </p>
296    <p class="text-muted-foreground mb-5">
297      Support my writing on GitHub Sponsors and get a monthly newsletter with content from the blog, or buy me a coffee on Ko-fi.
298    </p>
299    <div class="flex items-center gap-6">
300      
300<script type="text/javascript" src="https://storage.ko-fi.com/cdn/widget/Widget_2.js">
301      </script>
301
302      
302<script type="text/javascript">
303        kofiwidget2.init('Support me on Ko-fi', '#72a4f2', 'S7V820WQ7W');kofiwidget2.draw();
304      </script>
304
305
306      <a href="https://github.com/sponsors/joladev" class="inline-flex items-center gap-2 rounded-lg bg-accent px-4 py-2 text-sm leading-6 font-medium text-white transition-opacity hover:opacity-90 ">
307        ❤️ Sponsor me on GitHub
308      </a>
309    </div>
310  </div>
311</aside>
312      </div>
313    </div>
314  </section>
315
316  </main>
317
318  <footer class="mt-auto border-t border-border ">
319  <div class="max-w-content mx-auto px-6 md:px-8 py-8">
320    <div class="flex flex-col md:flex-row items-center justify-between space-y-4 md:space-y-0">
321      <div class="text-center md:text-left">
322        <p class="text-sm text-muted-foreground mb-1">
323          Building software with passion
324        </p>
325        <p class="text-xs text-muted-foreground">
326          © 2026 Johanna Larsson. All rights reserved.
327        </p>
328      </div>
329    </div>
330  </div>
331</footer>
332</div>
333  </body>
334</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.