reword (cyberwitchery)

This commit is contained in:
hellerve committed 2026-10-13 12:25:54 +02:00
1 parent a7be79fbd9
commit bd1e082265
2 files changed
+96 -148

No files matched your search

+87 -90
View File
@@ -9,7 +9,7 @@
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:url" content="https://veitheller.de/"> <meta property="og:url" content="https://veitheller.de/">
<meta property="og:title" content="Veit Heller—Technologist at Large"> <meta property="og:title" content="Veit Heller—Technologist at Large">
<meta property="og:description" content="Veit Heller—Technologist at Large. Independent consultant for software architecture, security, and network automation based in Erlangen, Germany."> <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:locale" content="en_US">
<meta property="og:image" content="https://veitheller.de/og.png"> <meta property="og:image" content="https://veitheller.de/og.png">
<meta property="og:image:width" content="1200"> <meta property="og:image:width" content="1200">
@@ -17,7 +17,7 @@
<meta property="og:image:alt" content="Veit Heller—Technologist at Large"> <meta property="og:image:alt" content="Veit Heller—Technologist at Large">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Veit Heller—Technologist at Large"> <meta name="twitter:title" content="Veit Heller—Technologist at Large">
<meta name="twitter:description" content="Independent consultant for software architecture, security, and network automation based in Erlangen, Germany."> <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"> <meta name="twitter:image" content="https://veitheller.de/og.png">
<link rel="icon" href="data:;base64,iVBORw0KGgo="> <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> <script defer data-domain="veitheller.de" src="https://plausible.io/js/script.tagged-events.outbound-links.js"></script>
@@ -156,7 +156,7 @@
"name": "Veit Heller", "name": "Veit Heller",
"url": "https://veitheller.de/", "url": "https://veitheller.de/",
"jobTitle": "Technologist at Large", "jobTitle": "Technologist at Large",
"description": "Independent consultant for software architecture, security, and network automation", "description": "Technologist at large in Erlangen, Germany, helping companies, investors, and technical teams understand, build, secure, and assess complex software systems.",
"address": { "address": {
"@type": "PostalAddress", "@type": "PostalAddress",
"addressLocality": "Erlangen", "addressLocality": "Erlangen",
@@ -181,11 +181,13 @@
<li><a href="https://veitheller.de/static/resume.pdf">CV</a></li> <li><a href="https://veitheller.de/static/resume.pdf">CV</a></li>
</ul> </ul>
<p> <p>
Nice to meet you! I’m Veit, an independent technologist in Erlangen. I help Nice to meet you! I’m Veit, a technologist at large in Erlangen. I help
companies, investors, and technical teams understand, build, secure, and companies, investors, and technical teams understand, build, secure, and
assess complex software systems. assess complex software systems.
</p> </p>
<p><a href="https://calendly.com/veit-veitheller/coffee-chat">Talk to me</a></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"> <div class="definition">
<p class="summary"> <p class="summary">
<span class="word">Technologist at large</span> <span class="word">Technologist at large</span>
@@ -209,101 +211,96 @@
<summary>What I am doing right now</summary> <summary>What I am doing right now</summary>
<p> <p>
I’m currently in Erlangen, Germany, trying to understand how to take I’m currently in Erlangen, Germany, trying to understand how to take
care of new, tiny human beings, one of them in Kindergarten, and one care of new, tiny human beings. It’s more challenging and engaging
of them learning to talk. It’s more challenging and engaging than any than any of my other projects.
of my other projects.
</p> </p>
<p> <p>
I’m also working on application and infrastructure security and code Professionally, a lot has changed recently. After spending several
for various AI companies as well as help automate networks and support years working independently, I've started <a href="https://cyberwitchery.com">cyberwitchery</a>,
due diligence work. It’s a lot all at once, but I wouldn’t have it any where I get to work on interesting problems with other people and
other way. 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> </p>
</details> </details>
<details id="services"> <details id="services">
<summary>What I can do for you</summary> <summary>Working with me</summary>
<p> <p>
I am occasionally available for consulting work. Here are a few Most of my commercial work now happens through <a href="https://cyberwitchery.com">cyberwitchery</a>.
examples of work I could do for you: We take on consulting projects, build software, review systems, and maintain products of our own.
</p> </p>
<ul> <p>
<li><b>Technical due diligence:</b> assess architecture, risks, security I’m still directly involved in the engineering work, but the company
posture, team and process maturity, and technical debt.</li> allows us to take on projects together and build things that don’t
<li><b>Security, ISMS & SSDLC:</b> help both with hands-on application depend on just one person. And I get to work with friends!
security and shape security processes that are both practical and hold </p>
up in audits.</li> <p>
<li><b>Network automation:</b> help ISPs, IXPs, and data center One thing hasn't changed: my goal is always to make myself
providers automate their network deployment from source of truth to replaceable. I want you to be able to take over control whenever the
device.</li> time has come, and to pick up exactly where I stopped. I don’t want
<li><b>LLM and developer tooling:</b> build practical workflows, internal you to become dependent on me, and neither do you.
tools, DX systems, evaluation, and integration.</li> </p>
<li><b>Interim technical leadership:</b> support companies, founders, <p>
and teams navigate challenging times while keeping an eye on the If you're interested in the nitty-gritty of working together, such as
product and technical direction.</li> rates or offerings, take a look at <a href="https://cyberwitchery.com/">the
</ul> website</a>.
<p> </p>
I have worked with a wide array of technologies and companies and
consider myself a generalist—the best way to know whether I’m the right
person for your project is to ask me.
</p>
<p>
My ultimate goal is always to make myself replaceable. I want you to be
able to take over control whenever you think the right time has
come—ideally we find a moment together—, and I want you to be able to
pick up work exactly where I stopped. I don’t want you to become
dependent on me, and neither do you.
</p>
<p>
You can also take a look at <a href="/static/resume.pdf">my résumé</a>
or <a href="https://github.com/hellerve">my Github profile</a> if
you’re especially curious.
</p>
</details>
<details id="rates">
<summary>What I charge</summary>
<p>
My rates are fixed and follow a simple, but beautiful scheme:
</p>
<ul>
<li>
If your product is a closed source, proprietary solution, I charge
1,400€ per day.
</li>
<li>
If your product is open source, I charge 1,120€ per day, 100€ of which
will be donated to a charitable organization of my choice. If you want
to know which organizations I support and why, check out
<a href="https://blog.veitheller.de/Giving_to_Charities.html">my
blog post about it</a>!
</li>
</ul>
<p>
My workday has eight hours and I charge by the hour.
</p>
<p>I also give talks and run workshops; topics, formats, and rates are on
the <a href="/talks.html">Workshops, Talks, Publications</a> page.</p>
<p>If you have any questions about my rates or are unsure whether your
product qualifies as “open source”,
<a href="mailto:veit@veitheller.de">contact me</a>!</p>
</details> </details>
<details id="contact"> <details id="contact">
<summary>How you can contact me</summary> <summary>How you can contact me</summary>
<p> <p>
I love to hear from anyone who wants to share something I love hearing from people who want to share something interesting,
with me, especially if I can help you in any way! ask a question, or just have a chat! I've also written an <a href="https://blog.veitheller.de/open_invite.html">open
</p> invitation</a> about some of the things I particularly enjoy talking
<p> about.
If you have any questions, comments, or want me to help your product </p>
succeed: <a href="mailto:veit@veitheller.de">reach out to me</a>. My
PGP key is available <a href="/static/pubkey.asc">on this <p>
server</a>. You can always send me an email. <a href="https://veitheller.de/static/pubkey.asc">My
</p> PGP key</a> is available, but its use is not mandatory.
<p> </p>
Of course, you can also contact me just to chat! To understand what I
can help you with and what I’m particularly interested in, check out <p>
<a href="https://blog.veitheller.de/open_invite.html">my open For business inquiries, you can also contact us directly through <a href="https://cyberwitchery.com/">cyberwitchery</a>.</p>
invitation</a>!
</p>
</details> </details>
<footer class="legal"> <footer class="legal">
<a href="./imprint.html">Imprint</a> <a href="./imprint.html">Imprint</a>
+9 -58
View File
@@ -3,13 +3,13 @@
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Workshops, talks, and publications by Veit Heller on threat modelling, ISMS, SSDLC, network automation, and programming languages."> <meta name="description" content="Talks and publications by Veit Heller on programming languages, developer tooling, network automation, and security.">
<meta name="author" content="Veit Heller"> <meta name="author" content="Veit Heller">
<link rel="canonical" href="https://veitheller.de/talks.html"> <link rel="canonical" href="https://veitheller.de/talks.html">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:url" content="https://veitheller.de/talks.html"> <meta property="og:url" content="https://veitheller.de/talks.html">
<meta property="og:title" content="Talks & Publications — Veit Heller"> <meta property="og:title" content="Talks & Publications — Veit Heller">
<meta property="og:description" content="Workshops, talks, and publications by Veit Heller on threat modelling, ISMS, SSDLC, network automation, and programming languages."> <meta property="og:description" content="Talks and publications by Veit Heller on programming languages, developer tooling, network automation, and security.">
<meta property="og:locale" content="en_US"> <meta property="og:locale" content="en_US">
<meta property="og:image" content="https://veitheller.de/og.png"> <meta property="og:image" content="https://veitheller.de/og.png">
<meta property="og:image:width" content="1200"> <meta property="og:image:width" content="1200">
@@ -17,7 +17,7 @@
<meta property="og:image:alt" content="Veit Heller—Technologist at Large"> <meta property="og:image:alt" content="Veit Heller—Technologist at Large">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Talks & Publications — Veit Heller"> <meta name="twitter:title" content="Talks & Publications — Veit Heller">
<meta name="twitter:description" content="Workshops, talks, and publications by Veit Heller on threat modelling, ISMS, SSDLC, network automation, and programming languages."> <meta name="twitter:description" content="Talks and publications by Veit Heller on programming languages, developer tooling, network automation, and security.">
<meta name="twitter:image" content="https://veitheller.de/og.png"> <meta name="twitter:image" content="https://veitheller.de/og.png">
<link rel="icon" href="data:;base64,iVBORw0KGgo="> <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> <script defer data-domain="veitheller.de" src="https://plausible.io/js/script.tagged-events.outbound-links.js"></script>
@@ -129,12 +129,10 @@
color: #000; color: #000;
} }
.panel { display: none; } .panel { display: none; }
#tab-bookable:checked ~ #bookable,
#tab-talks:checked ~ #talks, #tab-talks:checked ~ #talks,
#tab-publications:checked ~ #publications { #tab-publications:checked ~ #publications {
display: block; display: block;
} }
#tab-bookable:checked ~ nav.tabs label[for="tab-bookable"],
#tab-talks:checked ~ nav.tabs label[for="tab-talks"], #tab-talks:checked ~ nav.tabs label[for="tab-talks"],
#tab-publications:checked ~ nav.tabs label[for="tab-publications"] { #tab-publications:checked ~ nav.tabs label[for="tab-publications"] {
color: #000; color: #000;
@@ -169,67 +167,20 @@
<body> <body>
<main class="main"> <main class="main">
<p class="site-link"><a href="/">← Veit Heller</a></p> <p class="site-link"><a href="/">← Veit Heller</a></p>
<h1>Workshops, Talks, Publications</h1> <h1>Talks &amp; Publications</h1>
<p class="description">I speak and write about systems of all shapes and <p class="description">I speak and write about systems of all shapes and
sizes.</p> sizes.</p>
<p>For professional workshops, check out <a href="https://cyberwitchery.com/#h-talks">cyberwitchery</a>.
Our lab notes are on the <a href="https://cyberwitchery.com/papers.html">cyberwitchery papers page</a>.</p>
<input type="radio" name="tab" id="tab-bookable" class="tab-input" checked> <input type="radio" name="tab" id="tab-talks" class="tab-input" checked>
<input type="radio" name="tab" id="tab-talks" class="tab-input">
<input type="radio" name="tab" id="tab-publications" class="tab-input"> <input type="radio" name="tab" id="tab-publications" class="tab-input">
<nav class="tabs" role="tablist"> <nav class="tabs" role="tablist">
<label for="tab-bookable" id="label-bookable" role="tab" aria-controls="bookable" tabindex="0">Bookable</label>
<label for="tab-talks" id="label-talks" role="tab" aria-controls="talks" tabindex="0">Talks</label> <label for="tab-talks" id="label-talks" role="tab" aria-controls="talks" tabindex="0">Talks</label>
<label for="tab-publications" id="label-publications" role="tab" aria-controls="publications" tabindex="0">Publications</label> <label for="tab-publications" id="label-publications" role="tab" aria-controls="publications" tabindex="0">Publications</label>
</nav> </nav>
<section id="bookable" class="panel" role="tabpanel" aria-labelledby="label-bookable">
<h3>Practical threat modelling for engineering teams</h3>
<p>Lightweight, repeatable threat modelling you can actually run in sprint cadence. We cut jargon, pick a fit-for-purpose method, and get to work quickly. <a href="https://blog.veitheller.de/Threat_Modeling_For_the_Rest_of_Us.html">Read about it here.</a></p>
<ul>
<li><strong>Takeaways:</strong> initial model (only for workshops), playbook, templates, 30-day plan to make it stick.</li>
<li><strong>Formats:</strong> 45–90min talk, ~3h half-day, 6–8h full-day (hands-on)</li>
</ul>
<p><a href="mailto:veit@veitheller.de?subject=Threat modelling workshop inquiry">Book this workshop</a></p>
<div class="rule"></div>
<h3>ISMS & SSDLC that you can work with</h3>
<p>Let’s turn “we should do security” into a minimal ISMS and an SSDLC that actually holds up in practice. We map controls to your workflows (code, CI/CD, infra) and prove it with artifacts. <a href="https://blog.veitheller.de/Simple_SSDLCs.html">Read about it here.</a></p>
<ul>
<li><strong>Takeaways:</strong> control set, CI/CD hooks for evidence (workshop only), audit-ready checklists.</li>
<li><strong>Formats:</strong> 45–90min talk, ~3h half-day, 6–8h full-day (hands-on)</li>
</ul>
<p><a href="mailto:veit@veitheller.de?subject=ISMS and SSDLC workshop inquiry">Book this workshop</a></p>
<div class="rule"></div>
<h3>Funding & buyer readiness</h3>
<p>What VCs, acquirers, and enterprise buyers actually check, and how to be ready to answer. Architecture narrative, risk posture, and processes that actually give you something in return. <a href="https://blog.veitheller.de/What_good_looks_like_in_a_data_room.html">Read about it here.</a></p>
<ul>
<li><strong>Takeaways:</strong> a DD checklist, a clean architecture one-pager, a 30-day prep plan including process refinements (workshop only).</li>
<li><strong>Formats:</strong> 45–90min talk, ~3h half-day, 6–8h full-day (hands-on)</li>
</ul>
<p><a href="mailto:veit@veitheller.de?subject=Funding and buyer readiness workshop inquiry">Book this workshop</a></p>
<div class="rule"></div>
<h3>Rates</h3>
<ul>
<li>Community events: travel-only (free if remote)</li>
<li>Corporate talks (45–60 min): 1,900€–2,400€</li>
<li>Corporate talks (75–90 min): 2,400€–2,800€</li>
<li>Half-day workshop (2–4h): 2,500€–3,000€</li>
<li>Full-day workshop (6–8h): 4,200€–4,800€</li>
<li>Prep and post is included</li>
<li>Remote workshops receive a 20% discount</li>
</ul>
<p>Custom workshops are available; tell me your team’s goals and I’ll tell you if I can help you.</p>
</section>
<section id="talks" class="panel" role="tabpanel" aria-labelledby="label-talks"> <section id="talks" class="panel" role="tabpanel" aria-labelledby="label-talks">
<article> <article>
<h3>AI Architecture Katas: Learning by Building Small Models in Plain Python </h3> <h3>AI Architecture Katas: Learning by Building Small Models in Plain Python </h3>
@@ -355,7 +306,7 @@
</main> </main>
<script> <script>
(function() { (function() {
var tabs = ['bookable', 'talks', 'publications']; var tabs = ['talks', 'publications'];
var labels = document.querySelectorAll('nav.tabs label'); var labels = document.querySelectorAll('nav.tabs label');
function syncAria(active) { function syncAria(active) {
labels.forEach(function(l) { labels.forEach(function(l) {
@@ -368,7 +319,7 @@
if (input) input.checked = true; if (input) input.checked = true;
syncAria(hash); syncAria(hash);
} else { } else {
syncAria('bookable'); syncAria('talks');
} }
labels.forEach(function(l) { labels.forEach(function(l) {
l.addEventListener('click', function() { l.addEventListener('click', function() {