Skip to content

 

Work

I’m available as an Alembic peer for P2P systems and protocol architecture design, hardening and development. One of the benefits of Alembic is benefiting from the knowledge and experience of the network, as we peers advise and consult each other on the problems we’re fixing.

I’m also open to opportunities for freelance software design, development, and consulting, with a focus on distributed systems, performance, and backend engineering.


What you can expect

Backend

Reliable, scalable, and peformant systems. No surprise cloud bills or sudden breakdowns.

Performance

Methodical analysis of performance issues in code, database queries, and network traffic.

Distributed Systems

Hardening of existing systems, and design of new systems that don’t break when scaled or when parts fail.


Toolkit

Different problems require different tools. Here are the ones I have professional experience with.

Programming Languages

Go icon

Go

5y

Highly concurrent systems, microservices, and cloud-native applications. Great for IO bound problems.

Rust icon

Rust

1.5y

Performance-critical, low-latency, and memory safe applications. Best for CPU bound problems.

Java icon

Java

4y

Enterprise applications based on proven and matured technologies.

Python icon

Python

4y

Flexible and fast-changing applications. Sometimes used as wrapper for other lower-level languages.

WebAssembly icon

WebAssembly

Components

As the compilation target for Rust and Go sources. WASI for IO and concurrency.

C++ icon

C++

1y

For embedded systems.

Concepts & Technologies

Performance

Benchmarking

Profiling

Concurrency

Parallelism

Cost Optimization

Cache Friendliness

Memory Management

Hardware Acceleration

Backend

AWS & Google Cloud

Docker

Kubernetes

REST

SQL

ORM

gRPC

Load Balancing

Caching (Local, Redis...)

Distributed Systems

LibP2P

Consensus (Raft)

Fault Tolerance

Event Sourcing

Message Queues

General

Cap'n Proto

Debugging

Dependency Injection

Hexagonal Architecture

NoSQL (K/V, Graph, Time-Series)

Monitoring (Prometheus, Grafana...)

Principles

communication / 16 - communication, bubble, chat, comments, conversation, message icon

Communicate

Communication is the most useful tool in our profession.

Document

A long-term form of communication. Others, or even yourself, will interact with your work over the years. Make it easy for them.

Embrace Change

Applications, priorities, requirements... everything may change over time. Prepare for change by prioritizing maintainability and following SOLID principles.

Measure

Measure everything: load, performance, resource usage... Vital for understanding any system.

Monitor

Ensure unwanted behaviours are caught instantly.

Test

Even fast changing applications need testing or risk breaking production.


Reach out to me

to chat about opportunities.

Contact us

for specialized P2P systems or protocol architecture design, hardening and development.