320 lines
11 KiB
HTML
320 lines
11 KiB
HTML
<!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 & 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>
|