<!--
.. title: Talks
.. slug: talks
.. date: 2014-07-30 07:47:13 UTC-07:00
.. tags:
.. link:
.. description:
.. type: text
-->

This is a list of some of my presentations and some of the places I've
presented them. This list is woefully incomplete: if there's anything
missing or you have some missing talk materials, please get in touch!

## Building Secure Software

How do you build secure software? Why do we see bad security track
records in projects that otherwise seem to tick all the right
engineering boxes? Why is communicating about security issues so
painful? More importantly: how can we do all of these things better?

[Slides (HTML)](//www.lvh.io/BuildingSecureSoftware),
[source repo](https://github.com/lvh/BuildingSecureSoftware). This is a
full-length talk (30 minutes).

Presented at PyCon 2015
([video](https://www.youtube.com/watch?v=PjcTwqYSk-E)) and Geekdom.

## Distributed Systems 101

An opinionated introduction to the basics of distributed systems
theory and practice.

[Slides (HTML)](//www.lvh.io/DistributedSystems101),
[source repo](https://github.com/lvh/DistributedSystems101). This is a
keynote-length talk (45 minutes).

Presented at PyCon 2015
([video](https://www.youtube.com/watch?v=YAFGQurdJ3U)).

## Clojure Intro

An introduction to Clojure, a pragmatic, modern Lisp for the JVM and
other platforms. Focus on the new (and old) stuff it brings to the
table, such as functional programming, pervasive immutability, strong
concurrency primitives, and the unmatched flexibility of Lisp.

This lecture was part of Comparative Programming Languages
(B-KUL-H0S01A), which is a part of the Master of Engineering degree.
Thanks to professor [Frank Piessens](https://cs.kuleuven.be/~frank/)
for the opportunity to give this lecture in his class, and Thomas
Goossens of [BeClojure](http://beclojure.org/) for organizing the
event.

[Slides (HTML)](//www.lvh.io/ClojureIntro),
[source repo](https://github.com/lvh/ClojureIntro). This is a
lecture-length talk (120 minutes).

## Twisted Mixing

A common criticism of the [Twisted](https://www.twistedmatrix.com)
framework is that it supposedly "infects" all your code. Supposedly,
you're forced to use Twisted-specific code exclusively as soon as you
start using it. You wouldn't be able to use the majority of Python
packages. I'm convinced that's a myth; this talk attempts to debunk
it.

[Slides (HTML)](//www.lvh.io/TwistedMixing),
[source repo](https://github.com/lvh/TwistedMixing). This is a
full-length talk (30 minutes).

Presented at PyCon 2014
([video](https://www.youtube.com/watch?v=A_NnHC2LcaE)) and Pykonik.

## Crypto 101

This is a high-level whirlwind tour of modern cryptography, starting
with a simple XOR operation and ending with an explanation of how TLS
works in your browser.

(Please note that this is Crypto 101 the *talk*, not the
[introductory crypto course](https://www.crypto101.io) of the same
name. I started working on the course after giving this talk.)

[Slides (Keynote)](https://www.dropbox.com/sh/a9p6rc21p67dhte/YMDFsEPUTs),
[source repo](https://github.com/lvh/Crypto101). This is a
keynote-length talk (45 minutes).

Presented at PyCon SE 2014 (soon!), PyCon 2013
([video](https://www.youtube.com/watch?v=3rmCGsCYJF8)) and Pykonik
([video](https://www.youtube.com/watch?v=hI76JcMdUEs)).

## Fractal Architectures

Traditional software architectures rely on distinct layers with
separated responsibilities. Scaling those layers happens separately.
Fractal architectures invert that idea, creating independent and
atomic units that can be easily scaled horizontally, in order to
produce highly robust low-latency systems.

[Slides (Speaker Deck)](https://speakerdeck.com/pyconza/pyconza-2012-fractal-architectures-by-laurens-van-houtven), [slides (Keynote)](https://www.dropbox.com/s/znbkzltbmlnf1va/FractalArchitectures.key), [source repo](https://github.com/lvh/FractalArchitectures). This is a full-length talk (30 minutes).

I thought I lost these slides. I recovered them thanks to Speaker's
Corner, the South African public speaking company that provided their
services at PyCon ZA. I'd like to thank Sam Manclark and Speaker's
Corner for helping me get them back.

Presented at DjangoCon EU 2013
([video](https://www.youtube.com/watch?v=bw_HntuE7Cg)), Pykonik, PyCon
ZA 2012 ([video](https://www.youtube.com/watch?v=w75TAXYZnNs)) and
PyCon PL 2012.

## How to store passwords

Most real-world password stores are horribly broken, either completely
ignoring the security concerns regarding password storage, or using
outdated and flawed technology. This talk explores how to do password
storage securely.

[Slides (Google Docs)](https://docs.google.com/presentation/d/1Sa-Zb1-LR6S8qcQdGBWxq6EJfg7Fwi67CNXNE-hosvM/edit?usp=sharing&authkey=CK26240L). This is a lightning talk (5 minutes).

Presented at PyCon DE 2012, PyCon ZA 2012 and several other places.

## Continuous Deployment

Modern development practices combined with flexible infrastructure
allow us to turn the old multi-month development cycles into
multi-minute ones. This talk explores some of the hows, whys, benefits
and growing pains of building a continuous deployment system.

[Slides (Google Docs)](https://docs.google.com/presentation/d/1MyEMXNnKPsiUmuFt49S01yij3dlLjw8NeHiOZTMYCbI/edit?usp=sharing&authkey=COnQlKkM). This is a full-length talk (30 minutes).

Presented at PyCon 2011 ([video](http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-continuous-deployment-4898971)).
