346 lines
13 KiB
HTML
346 lines
13 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<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="author" content="Veit Heller">
|
||
<link rel="canonical" href="https://veitheller.de/talks.html">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:url" content="https://veitheller.de/talks.html">
|
||
<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:locale" content="en_US">
|
||
<meta name="twitter:card" content="summary">
|
||
<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.">
|
||
<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>
|
||
<title>Talks & Publications — Veit Heller</title>
|
||
<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;
|
||
margin: 0;
|
||
background-color: #fafaf7;
|
||
}
|
||
.description {
|
||
color: #444;
|
||
}
|
||
.main {
|
||
max-width: 800px;
|
||
padding: 2em;
|
||
margin: auto;
|
||
padding-top: 1em;
|
||
}
|
||
.main h1 {
|
||
font-size: 28px;
|
||
font-weight: 400;
|
||
}
|
||
.main h2 {
|
||
font-size: 22px;
|
||
font-weight: 400;
|
||
margin-top: 2em;
|
||
}
|
||
.main h3 {
|
||
font-size: 18px;
|
||
font-weight: 600;
|
||
margin-bottom: 0.2em;
|
||
}
|
||
.main a {
|
||
color: #000;
|
||
text-decoration: none;
|
||
border-bottom: 2px solid #d6dde3;
|
||
}
|
||
.main p {
|
||
margin-top: 0.3em;
|
||
margin-bottom: 1.2em;
|
||
}
|
||
.main em {
|
||
color: #444;
|
||
}
|
||
.main .rule {
|
||
border-top: 1px solid #aaa;
|
||
width: calc(100% - 6em);
|
||
margin-left: 3em;
|
||
margin-right: 3em;
|
||
height: 0px;
|
||
}
|
||
article {
|
||
margin-bottom: 2em;
|
||
}
|
||
.tab-input {
|
||
position: absolute;
|
||
opacity: 0;
|
||
pointer-events: none;
|
||
}
|
||
nav.tabs {
|
||
display: flex;
|
||
gap: 2em;
|
||
border-bottom: 1px solid #aaa;
|
||
margin: 1.5em 0 1.5em;
|
||
}
|
||
nav.tabs label {
|
||
padding: 0.6em 0;
|
||
margin-bottom: -1px;
|
||
font-size: 16px;
|
||
color: #444;
|
||
border-bottom: 2px solid transparent;
|
||
cursor: pointer;
|
||
}
|
||
nav.tabs label:hover {
|
||
color: #000;
|
||
}
|
||
.panel { display: none; }
|
||
#tab-bookable:checked ~ #bookable,
|
||
#tab-talks:checked ~ #talks,
|
||
#tab-publications:checked ~ #publications {
|
||
display: block;
|
||
}
|
||
#tab-bookable:checked ~ nav.tabs label[for="tab-bookable"],
|
||
#tab-talks:checked ~ nav.tabs label[for="tab-talks"],
|
||
#tab-publications:checked ~ nav.tabs label[for="tab-publications"] {
|
||
color: #000;
|
||
border-bottom-color: #000;
|
||
}
|
||
.site-link {
|
||
font-size: 16px;
|
||
color: #444;
|
||
margin-bottom: 0.5em;
|
||
}
|
||
.site-link a {
|
||
border-bottom: none;
|
||
color: #444;
|
||
}
|
||
.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) {
|
||
.main h1 {
|
||
font-size: 20px;
|
||
}
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<main class="main">
|
||
<p class="site-link"><a href="/">← Veit Heller</a></p>
|
||
<h1>Workshops, Talks, Publications</h1>
|
||
<p class="description">I speak and write about systems of all shapes and
|
||
sizes.</p>
|
||
|
||
<input type="radio" name="tab" id="tab-bookable" 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">
|
||
|
||
<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-publications" id="label-publications" role="tab" aria-controls="publications" tabindex="0">Publications</label>
|
||
</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>
|
||
|
||
<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">
|
||
<article>
|
||
<h3><i>Upcoming:</i> Type Systems You Might Not Know (But Will Love)</h3>
|
||
<p><em>WeAreDevelopers World Congress Europe, 2026</em><br>
|
||
A tour through beautiful but lesser-known type systems.</p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>Von der Cloud ins Rack – Wie Netzautomatisierung souveräne RZ-Umgebungen ermöglicht</h3>
|
||
<p><em>Rack & Stack 2026</em><br>
|
||
A German talk on high fidelity network automation to drive the adoption of sovereign data infrastructure.</p>
|
||
<p><i>Recording pending</i></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>Network Automation in the Modern Age</h3>
|
||
<p><em>DKNOG, 2026</em><br>
|
||
A talk about the future of network automation, and how to facilitate having your own model of the world.</p>
|
||
<p><a href="https://www.youtube.com/watch?v=zBW63nHiia8">Watch →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>gt4llm – Software Development with LLMs in Glamorous Toolkit</h3>
|
||
<p><em>European Smalltalk User Group, 2024</em><br>
|
||
An overview of LLM integration into Glamorous Toolkit, with a focus on reproducibility and development workflows.</p>
|
||
<p><a href="https://www.youtube.com/watch?v=ukgsng9bIVw">Watch →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>gt4python – Working with Python inside Glamorous Toolkit</h3>
|
||
<p><em>European Smalltalk User Group, 2024</em><br>
|
||
A talk on Python inside Glamorous Toolkit.</p>
|
||
<p><a href="https://www.youtube.com/watch?v=Lvtgk4w9zo4">Watch →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>gt4atproto – A Programmable Environment for Social Media</h3>
|
||
<p><em>European Smalltalk User Group, 2023</em><br>
|
||
A demonstration of working with the AT Protocol inside Glamorous Toolkit, emphasizing customization and tooling.</p>
|
||
<p><a href="https://www.youtube.com/watch?v=azSz7fkY7jU">Watch →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>Implementing an IDE in GT</h3>
|
||
<p><em>European Smalltalk User Group, 2022</em><br>
|
||
A talk on building an IDE for Carp inside Glamorous Toolkit.</p>
|
||
<p><a href="https://www.youtube.com/watch?v=G-0Vic9fQU0">Watch →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>Brainfuck, Carp, Macros, and Futamura Projections</h3>
|
||
<p><em>LambdaLounge, 2021</em><br>
|
||
A technical presentation connecting minimal languages, metaprogramming, and interpreter folding techniques.</p>
|
||
<p><a href="https://www.youtube.com/watch?v=wwwa5TG70UA">Watch →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>All I Have is a Hammer, Now Give Me All Your Nails!</h3>
|
||
<p><em>EnthusiastiCon, 2020</em><br>
|
||
A short talk on abstractions as axioms.</p>
|
||
<p><a href="https://www.youtube.com/live/EkbcI3KgUuY?feature=shared&t=8360">Watch →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>Programming Languages and Trust</h3>
|
||
<p><em>Datengarten 96</em><br>
|
||
On compilers, interpreters, and safety.</p>
|
||
<p><a href="https://media.ccc.de/v/dg-96">Watch →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>Automate Yourself Within Six Months</h3>
|
||
<p><em>DeNOG, 2019 (w/ Christian Dieckhoff)</em><br>
|
||
A retrospective on automating an ISP’s network infrastructure.</p>
|
||
<p><a href="https://media.ccc.de/v/denog11-26-automate-yourself-within-six-months">Watch →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>Abstractions! How Do I Even?</h3>
|
||
<p><em>EnthusiastiCon, 2019</em><br>
|
||
A short reflection on abstractions and philosophy.</p>
|
||
<p><a href="https://www.youtube.com/watch?v=71FQXcC6RL8">Watch →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>Carp—A Language for the 21st Century</h3>
|
||
<p><em>clojuTRE, 2018</em><br>
|
||
An introduction to Carp.</p>
|
||
<p><a href="https://www.youtube.com/watch?v=BQeG6fXMk28">Watch →</a></p>
|
||
</article>
|
||
</section>
|
||
|
||
<section id="publications" class="panel" role="tabpanel" aria-labelledby="label-publications">
|
||
|
||
<article>
|
||
<h3>Efficient Module-Level Dynamic Analysis for Dynamic Languages with Module Recontextualization</h3>
|
||
<p><em>ESEC/FSE 2021 — Distinguished Paper Award</em><br>
|
||
Describes a method for performing dynamic analysis at the module level to enable module-level execution security. I only worked on the Racket implementation, not the JavaScript part.</p>
|
||
<p><a href="https://dl.acm.org/doi/10.1145/3468264.3468574">Read →</a></p>
|
||
</article>
|
||
|
||
<article>
|
||
<h3>Eventually Consistent Partying</h3>
|
||
<p><em>SIGBOVIK, 2019</em><br>
|
||
This one might be a joke.</p>
|
||
<p><a href="https://sigbovik.org/2019/proceedings.pdf">Read →</a></p>
|
||
</article>
|
||
</section>
|
||
<footer class="legal">
|
||
<a href="./imprint.html">Imprint</a>
|
||
<a href="./gdpr_notice.html">GDPR Notice</a>
|
||
</footer>
|
||
</main>
|
||
<script>
|
||
(function() {
|
||
var tabs = ['bookable', 'talks', 'publications'];
|
||
var labels = document.querySelectorAll('nav.tabs label');
|
||
function syncAria(active) {
|
||
labels.forEach(function(l) {
|
||
l.setAttribute('aria-selected', l.getAttribute('for') === 'tab-' + active ? 'true' : 'false');
|
||
});
|
||
}
|
||
var hash = location.hash.substring(1);
|
||
if (tabs.indexOf(hash) !== -1) {
|
||
var input = document.getElementById('tab-' + hash);
|
||
if (input) input.checked = true;
|
||
syncAria(hash);
|
||
} else {
|
||
syncAria('bookable');
|
||
}
|
||
labels.forEach(function(l) {
|
||
l.addEventListener('click', function() {
|
||
var name = l.getAttribute('for').replace('tab-', '');
|
||
history.replaceState(null, '', '#' + name);
|
||
syncAria(name);
|
||
});
|
||
l.addEventListener('keydown', function(e) {
|
||
if (e.key === 'Enter' || e.key === ' ') {
|
||
e.preventDefault();
|
||
l.click();
|
||
}
|
||
});
|
||
});
|
||
})();
|
||
</script>
|
||
</body>
|
||
</html>
|