Posts
Ash Framework: The Coordination Problem
Ash Framework: My Misconceptions
What's an Effect?
Can an LLM Tutor?
Polymorphism and Behavior Injection
Generate Livebooks with an LLM
What is going on?
Livebook Examples from Advanced Functional Programming with Elixir
What's the point of a polymorphic eq?
Polymorphism and Structs in Elixir
Polymorphism in Elixir
Why Is This So Hard?
Advanced Functional Programming with Elixir is now in beta!
Elixir Syntax: Functions
Elixir Syntax: Control Flow
Elixir Syntax: Variables
Elixir Syntax: Data Types and Collections
Elixir and Raft: Running a cluster with state
Elixir and Mnesia: Running a cluster with state
Elixir: Running a cluster of dynamic nodes
Elixir Testing Series
Elixir: Running a cluster of nodes
Elixir: Resilient distributed systems
Leveraging CRDTs for eventual consistency
Ecto Series
Exploring retrieval-augmented generation (RAG)
The right tool for the job
Ollama and running AI on the edge
Running a home server
Phoenix Channels: Tracking presence
Phoenix Channels: Inverting responsibility
Phoenix Channels: Real-time with WebSockets
Consumer-Driven Contract Testing: Implementing Postman
Documenting APIs: Implementing OpenAPI
APIs as Contracts: Clear expectations and defined responsibilities
Elixir API: Implementing CRUD operations with Phoenix
Elixir GenServer: Fault-tolerant services with supervisors
Elixir Agent: Encapsulating the gen_server state logic
Elixir Observability: Using logs, metrics, and traces
Elixir and Grafana: Basic logging
Elixir and Oban: For mission-critical tasks
Elixir and Task: Managing asynchronous execution
Testing in Elixir: Why good testing practices matter
Elixir Testing: Mocking external services
Elixir: Managing external services with dependency injection
LiveView Testing: Ensuring real-time synchronization across sessions
LiveView: Navigating concurrency in real-time applications
LiveView: The basics
Elixir: An introduction to GenServer
Testing in Elixir: Patterns for Phoenix live-view
Elixir and Ecto: A DSL for testing schemas and changesets
Elixir and Ecto: Testing behaviors
Absence in Elixir: Gracefully avoiding `nil`
Elixir and Errors: Let it crash
Elixir: Basic setup series
Credo and Elixir: Add linting and analysis
Dialyzer and Elixir: Add static code analysis
Ecto: Basic schemas and changesets
Ecto: Basic setup
Elixir: Publish your docs
A functional programming case for Tailwind
Real-time interactions in Phoenix: LiveView vs. Channels
Socket.IO and Phoenix Channels: A comparative analysis
Concurrency in high-stakes systems: Why Erlang/Elixir (BEAM) stands out
Lessons from writing functional-dart
Why Jekyll for this blog?
subscribe via RSS