Talks

Highlighted talks

Beyond DateTime: a bulletproof approach to date and time

I’ve been obsessed with time ever since a tiny timezone mismatch in my code almost caused an ugly off-by-one-hour error in airport taxi orders for congress speakers.

It helped me realize that time is a domain present in every web application, and as such deserves proper attention. There are many very different temporal concepts, and we should have better abstractions for them than standard libraries – including PHP’s DateTime and JavaScript’s Date – provide.

This has become my favourite topic and I talk about it wherever people want (or are forced) to listen, including at:

php.live 2022 🇨🇿
Ostrava, Czech Republic
online stream
Web Science 2020 🇨🇿
online stream
PHP fwdays'20 🇬🇧
online stream
Brno, Czech Republic
Brno, Czech Republic

How to keep tabs on production

Production is a magical place. People go there and do things, and sometimes, despite the best-typed and tested code, a bug slips through – and it's likely to be all the more bizarre the higher the quality of your code. In such moments, it's invaluable to have a place to find everything that might be relevant to the situation. This talk shows in theory and in practice how to approach logging so that you have perfect oversight of production and no such bug remains an unsolved mystery. Co-presented with Marek Humpolík.

Brno, Czech Republic

Generics in PHPStan from <A> to <Z>

Generics: an ingenious tool of abstraction for some, a nightmare for others. And yet, it's likely that most of us have used them. This talk explains what generics are and illustrates how to use them in PHP thanks to PHPStan, covering everything from the most trivial situations to advanced use cases such as type bounds, variance, type projections, etc.

Brno, Czech Republic
Brno, Czech Republic

Keep yourself DRY: How not to repeat yourself but not 💩 up abstraction

As developers, we deduplicate code to achieve abstraction. But far too often, abstractions tend to stick around even after requirements change in a way that renders the particular abstraction obsolete and impractical. This talk is a gentle reminder to always question your abstractions in the face of requirement changes.

Brno, Czech Republic

Sealed classes in PHP

A feature likely known to Kotlin developers, sealed classes and interfaces provide a way of enforcing restricted inheritance hierarchies. With the most recent versions of PHPStan, we can use statically analyzed sealed classes in PHP!

Prague, Czech Republic

DI services don't need names

In this talk, I discuss dependency injection and show how Nette Framework's DI container leverages PHP's type system to truly obsolete artificial service identifiers.

online stream

Don’t just float, swim with the floating point

They say you should understand floating-point precision by 35.0000000000014. This talk discusses how floats are (im)precise and why, demonstrates the problems you inevitably encounter when doing math with floats, and presents ways to prevent those problems by using more proper data types and structures.

Brno, Czech Republic

AJAX (and front-end) in Nette, the simple and modern way

This talk brings a practical example of how to use Naja to implement AJAX in a Nette Framework application. On top of that, it touches related topics of the front-end development ecosystem in 2019, namely Webpack and its integration into Nette Framework.

Prague, Czech Republic

The frameworkless application

The activities of PHP communities made it possible to build robust applications, uniquely composed of little bits, without relying on a big framework. This talk discusses how they work and if they are a good approach.

Vienna PHP 🇬🇧
Vienna, Austria

Other talks

What's coming in PHP 8.4

Ostrava, Czech Republic
Brno, Czech Republic

Git as you (might not) know it

Brno, Czech Republic

Naja 3.0

Brno, Czech Republic

The future is passwordless

České Budějovice, Czech Republic

What's new in PHP 8+

Talks & Beer 🇨🇿
Zlín, Czech Republic

Tables: statically typed access to database

online stream

Generate yourself a strict application

online stream

Naja: slow start

online stream

Naja 2.0

online stream

Naja: thin, modern AJAX library for Nette

Brno, Czech Republic

Editor-based HTTP client in PHPStorm

Brno, Czech Republic

How to write even thinner APIs in PHP

Brno, Czech Republic

Message queues: Leave the hard work for later

Brno, Czech Republic

Don’t be afraid of JavaScript

Brno, Czech Republic

Writing truly slim APIs in Nette Framework

Brno, Czech Republic

Naja: modern AJAX library for Nette Framework

Brno, Czech Republic

Webpack ♥ Nette Framework

Prague, Czech Republic

File upload for the 21st century

Poslední sobota #66 🇨🇿
Brno, Czech Republic