Files
2026-10-13 12:25:54 +02:00

320 lines
11 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="description" content="Veit Heller—Technologist at Large">
<meta name="author" content="Veit Heller">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://veitheller.de/">
<meta property="og:type" content="website">
<meta property="og:url" content="https://veitheller.de/">
<meta property="og:title" content="Veit Heller—Technologist at Large">
<meta property="og:description" content="Veit Heller—Technologist at large in Erlangen, Germany, helping companies, investors, and technical teams understand, build, secure, and assess complex software systems.">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="https://veitheller.de/og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="Veit Heller—Technologist at Large">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Veit Heller—Technologist at Large">
<meta name="twitter:description" content="Technologist at large in Erlangen, Germany, helping companies, investors, and technical teams understand, build, secure, and assess complex software systems.">
<meta name="twitter:image" content="https://veitheller.de/og.png">
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<script defer data-domain="veitheller.de" src="https://plausible.io/js/script.tagged-events.outbound-links.js"></script>
<style>
@font-face {
font-family: 'charterregular';
src: url('charter_regular-webfont.woff') format('woff');
font-weight: normal;
font-style: normal;
font-display: swap;
}
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
font-family: 'charterregular', Georgia, serif;
font-size: 18px;
width: 100vw;
height: 100vh;
margin: 0;
background-color: #fafaf7;
}
.main {
max-width: 800px;
padding: 2em;
margin: auto;
padding-top: 1em;
}
.main h1 {
font-size: 28px;
font-weight: 400;
}
.main h1 i {
color: #444;
}
.main summary {
font-size: 22px;
font-weight: 400;
cursor: pointer;
}
.main a {
color: #000;
text-decoration: none;
border-bottom: 2px solid #d6dde3;
}
.main ul {
margin-top: 0.1em;
list-style: none;
padding: 0;
margin: 0 0 0.9rem;
}
.main ul li {
position: relative;
padding-left: 1.1rem;
margin-bottom: 0.35rem;
}
.main ul li::before {
content: "·";
position: absolute;
left: 0.3rem;
top: -0.05em;
color: #444;
}
.broken-up {
display: flex;
width: 100%;
padding: 0;
}
.broken-up li {
padding-right: 1em;
}
.broken-up li::before {
content: none !important;
margin: none !important;
}
.definition {
border-left: 3px solid lightgrey;
padding-left: 0.5em;
margin-left: 0.5em;
}
.definition .summary {
font-size: 20px;
text-align: left;
}
.definition .summary .word {
font-size: 20px;
border-bottom: 2px dotted lightgrey;
}
.definition .pronounciation {
font-size: 18px;
margin-left: 1em;
color: #444;
display: inline-block;
}
.definition .pos {
font-style: italic;
color: #444;
}
.definition .addendum {
font-size: 16px;
color: #444;
}
.definition .description {
text-align: justify;
}
.legal {
margin-top: 2.5em;
padding-top: 1em;
border-top: 1px solid #d6dde3;
font-size: 14px;
color: #444;
}
.legal a {
margin-right: 1em;
}
@media(max-width: 700px) {
.broken-up {
display: block;
}
.main h1 {
font-size: 20px;
}
.main ul {
padding: 0;
}
}
</style>
<title>Veit Heller—Technologist at Large</title>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Veit Heller",
"url": "https://veitheller.de/",
"jobTitle": "Technologist at Large",
"description": "Technologist at large in Erlangen, Germany, helping companies, investors, and technical teams understand, build, secure, and assess complex software systems.",
"address": {
"@type": "PostalAddress",
"addressLocality": "Erlangen",
"addressCountry": "DE"
},
"email": "veit@veitheller.de",
"sameAs": [
"https://github.com/hellerve",
"https://blog.veitheller.de"
]
}
</script>
</head>
<body lang="en">
<div class="main">
<h1><b>Veit Heller</b><i>—Technologist at Large</i></h1>
<ul class="broken-up">
<li><a href="mailto:veit@veitheller.de">Email</a></li>
<li><a href="https://github.com/hellerve">Github</a></li>
<li><a href="https://blog.veitheller.de">Blog</a></li>
<li><a href="https://veitheller.de/talks.html">Talks & Publications</a></li>
<li><a href="https://veitheller.de/static/resume.pdf">CV</a></li>
</ul>
<p>
Nice to meet you! I’m Veit, a technologist at large in Erlangen. I help
companies, investors, and technical teams understand, build, secure, and
assess complex software systems.
</p>
<p>
I also run <a href="https://cyberwitchery.com">cyberwitchery</a>, a small product and consulting company where we build our own tools and help others with difficult engineering problems.
</p>
<div class="definition">
<p class="summary">
<span class="word">Technologist at large</span>
<span class="pronounciation">[tek-ˈnä-lə-jist ət ˈlärj]</span>
</p>
<p class="pos">
<span>noun</span>
</p>
<p class="description">
one who is able to design, conceptualize, build, shape, or in any
other way influence computer systems, not bound to any particular
employer.
</p>
<p class="addendum">
See also: <a href="https://www.merriam-webster.com/dictionary/consultant">Consultant</a>,
<a href="https://www.merriam-webster.com/dictionary/contractor">Contractor</a>,
<a href="https://www.merriam-webster.com/dictionary/freelancer">Freelancer</a>.
</p>
</div>
<details id="current">
<summary>What I am doing right now</summary>
<p>
I’m currently in Erlangen, Germany, trying to understand how to take
care of new, tiny human beings. It’s more challenging and engaging
than any of my other projects.
</p>
<p>
Professionally, a lot has changed recently. After spending several
years working independently, I've started <a href="https://cyberwitchery.com">cyberwitchery</a>,
where I get to work on interesting problems with other people and
build products of our own.
</p>
<p>
We're currently working on <a href="https://cyberwitchery.com/alembic">alembic</a>,
a tool for moving data between network systems, and <a href="https://cyberwitchery.com/divinate">divinate</a>,
which collects technical evidence for security reviews. We also work
with clients on security, network automation, technical due
diligence, and systems software.
</p>
</details>
<details id="interests">
<summary>Things I like working on</summary>
<p>
I've worked in quite a few different areas over the years, and I've
never been especially interested in narrowing them down to one
specialty, to the chagrin of recruiters everywhere.
</p>
<p>
There are a few things I keep bumping into, though:
</p>
<ul>
<li><b>Programming languages and compilers:</b> I like type systems,
macros, Lisps &amp; Smalltalks, and finding different ways of
expressing computation.</li>
<li><b>Developer tooling:</b> I've spent years thinking about how
programmers understand and interact with software. Our tools could
be a lot better than they are!</li>
<li><b>Systems and infrastructure:</b> Networks, automation, data
models, and the (oftentimes) considerable distance between how we
think a system works and what it's actually doing.</li>
<li><b>Security and software architecture:</b> Understanding
complicated systems, figuring out where their problems are, and
finding practical ways to improve them.</li>
</ul>
<p>
I also enjoy <a href="https://blog.veitheller.de">writing</a> and <a href="/talks.html">giving
talks</a> about things I've learned.
</p>
<p>
If you'd rather look at code, there's plenty on <a href="https://github.com/hellerve">GitHub</a>.
And if you're particularly curious about my professional history,
here's my <a href="/static/resume.pdf">résumé</a>.
</p>
</details>
<details id="services">
<summary>Working with me</summary>
<p>
Most of my commercial work now happens through <a href="https://cyberwitchery.com">cyberwitchery</a>.
We take on consulting projects, build software, review systems, and maintain products of our own.
</p>
<p>
I’m still directly involved in the engineering work, but the company
allows us to take on projects together and build things that don’t
depend on just one person. And I get to work with friends!
</p>
<p>
One thing hasn't changed: my goal is always to make myself
replaceable. I want you to be able to take over control whenever the
time has come, and to pick up exactly where I stopped. I don’t want
you to become dependent on me, and neither do you.
</p>
<p>
If you're interested in the nitty-gritty of working together, such as
rates or offerings, take a look at <a href="https://cyberwitchery.com/">the
website</a>.
</p>
</details>
<details id="contact">
<summary>How you can contact me</summary>
<p>
I love hearing from people who want to share something interesting,
ask a question, or just have a chat! I've also written an <a href="https://blog.veitheller.de/open_invite.html">open
invitation</a> about some of the things I particularly enjoy talking
about.
</p>
<p>
You can always send me an email. <a href="https://veitheller.de/static/pubkey.asc">My
PGP key</a> is available, but its use is not mandatory.
</p>
<p>
For business inquiries, you can also contact us directly through <a href="https://cyberwitchery.com/">cyberwitchery</a>.</p>
</details>
<footer class="legal">
<a href="./imprint.html">Imprint</a>
<a href="./gdpr_notice.html">GDPR Notice</a>
</footer>
</div>
<script>
// convenience for your linking pleasure. sorry for the hack.
let hash = location.hash.substring(1);
if (hash) {
let details = document.getElementById(hash);
if (details) details.open = true;
}
</script>
</body>
</html>