My passion is solving complex problems with software by breaking them down into simple pieces.
- I’m an excellent generalist: I’m always curious and enjoy learning.
- I am just as good at big-picture thinking as working on details.
- I have a lot of patience for getting things right and understanding things fully.
- I am mindful of business pressures and requirements.
- I’m pro-active, communicative, and a good team player.
My most developed skills are:
- Low-latency, highly-concurrent, fault-tolerant services (Elixir, Erlang/BEAM VM, PostgreSQL, RabbitMQ)
- Full-stack web development (Phoenix/Elixir, PostgreSQL, LiveView, Tailwind, Vue.js, Typescript)
- DevOps, Automation, Internal Tooling (Kubernetes, Docker, Shell Scripting, CI, Nginx, Linux Admin)
- Low-level & Systems software (Zig, Rust, Qt Framework, C++, C, Assembly Language)
Most of my professional life has been spent in small teams, so I’m used to being hands-on with planning and design, interacting with clients, autonomous working, leading development, cloud deployment, networking and IT infrastructure, etc…
My preferred approaches to software design include:
- Domain-Driven Design
- Hexagonal Architecture
- Event-Driven Architecture
- Event Modelling
- CQRS / Event Sourcing
I am passionate about the open-source ecosystem. I am a dedicated Linux user as well as relying daily on open-source tools for my work, so my experience runs deep and wide. I’m particularly fond of these tools:
- Elixir (Phoenix, LiveView, LiveBook, Nx, Nerves)
- Zig
- PostgreSQL
- Sqlite
- RabbitMQ
- Vue.js
- Valkey / Redis
- WebAssembly
- Typescript
- Docker
- Kubernetes
- Qt