Peter Ullrich's Picture

Hey, I’m Peter! Developer & Educator.

I'm a Senior Elixir developer with a Psychology background, PragProg Author, Public Speaker and Blogger, Founder of Letter to Yourself. I'm passionate about Software Architecture, Product Engineering, and sharing knowledge.

Products

The book cover of the Builting Table Views with Phoenix LiveView book showing three meerkats.

Building Table Views with Phoenix LiveView

Data is at the core of every business, but it is useless if nobody can access it. This book shows you how to generate business value by making your data accessible with advanced table UIs.
The book cover of the Builting Table Views with Phoenix LiveView book showing three meerkats.

Build an MVP with Elixir

New to Elixir? This video course gets you started by developing a real-world product using Phoenix LiveView, deploying it to Fly.io, adding payments to it using LemonSqueezy, and more.

Blog Posts

an old wizard killing a phoenix with a sword, digital art

Kill your Phoenix Context

Phoenix Contexts often become a dumping ground for code that doesn't have an obvious place. Learn how to organize your code using services, finders, and repositories.

an old wizard throwing a big key into the cloudy sky, digital art

Upload Encrypted Files to S3

Encrypting sensitive user files before uploading them to S3 is a must. This post shows how to encrypt and upload them and also how to download and decrypt them again using encryption keys unique per user.

an old wizard holding up a VCR videocassette into the camera standing in his chemical laboratory, digital art

Announcing my new Video Course!

My first video course "Build an MVP with Elixir" helps you to get started with Elixir by building a real-world product together!

an old wizard listening through a door, digital art

Listen to Database Changes with Postgres Triggers and Elixir

Postgres Notifications allow you to subscribe to any changes in your database, even if they weren't made by your Elixir application! Let's learn how to set them up!

an old map with marked countries and their flags lying on a wooden table, old wizard hunching over the map, digital art

Build dynamic Forms with JSON Schemas

Define custom forms without writing a single line of HTML. JSON Schemas help you define and adjust forms and validate user input all through a single configuration file.

A futuristic numbat reading a book

Use Neural Networks in Livebook

The latest Livebook version 0.8 comes with a new smart cell type that makes experimenting with neural networks like StableDiffusion, GPT2, and others incredibly easy. Let's learn how to get started.

A phoenix rising from a computer screen

Build a Roles and Permissions System for Phoenix - Part 2

Learn how to prevent PII leaks from your Ecto queries by adding query restrictions to your Roles and Permissions system.

A phoenix rising from a computer screen

Build a Roles and Permissions System for Phoenix - Part 1

Learn how to control access to your system by assigning granular roles and permissions to your users.

A developer holding a mug of coffee with shaky hands staring at a computer

Simulate Latency, Jitter, and Package Loss in Phoenix LiveView

Learn how to make your LiveView app more resilient by simulating bad internet connections.

A librarian frantically searching through a catalog of books

The Complete Guide to Full-text Search with Postgres and Ecto

A detailed deep-dive into efficient full-text search for multiple languages, result ranking, tsvectors and tsqueries, search modifiers, and so much more.