Coaching in progress · Rust systems

Andrés Gutiérrez Ramírez

Senior software architect · backend systems · 10+ yrs

“Rust is a breath of fresh air, it removes a lot of the problems with garbage collection, ownership, global scope.”

Andrés came into the engagement as a senior software engineer, architect, mentor, and complex-problem solver. His background spans backend development, DevOps, JavaScript internals, Python, clean architecture, testing, and team training. He was not looking for another toy exercise. He needed a Rust project that could become a credible work sample while the language itself became part of his systems thinking.

The engagement is currently in progress. The work has moved from ownership and async fundamentals into a real observability ingestion pipeline, rebuilt from the shape of an earlier Node.js collector. The first phase is deliberately bounded and reviewable. HTTP ingest, terminal visualization, persistence, and metrics are planned next, not presented as finished work.

10+ yrs
Software engineering and architecture
Senior
Backend, DevOps, and systems leadership
Mentor
Technical training and team transformation
Rust
Current systems focus, project-driven
Pipeline shape

One bounded path from sample to state

sysinfo

CPU + memory sample

bounded mpsc

capacity 1024

Tokio worker

read model + logs

Dedicated thread

blocking machine sampling stays isolated

Observable stop

sender drops, consumer drains, count logged

Rust 2024Tokiofinished vertical slice
The challenge

Turning broad architecture experience into Rust proof

Andrés already knew how to reason about systems, teams, APIs, and difficult production problems. Rust required a different kind of precision: who owns a value, when an async task makes progress, what happens when a queue fills, and how the system shuts down.

His first project ideas were naturally too large. The useful constraint was to choose a backend problem with real systems depth, then keep the first deliverable small enough to finish, test, and explain in an interview.

  • •Senior architecture background, early Rust systems experience
  • •Large-project instinct narrowed into a bounded pipeline
  • •Every concurrency and failure path needs an explicit answer
The outcome so far

A real Rust systems work sample in progress

The current repository has a working phase-one skeleton: machine sampling on a dedicated OS thread, bounded Tokio channels, a consumer, a read model, counters, tests, and CI gates. The project is designed to make backpressure visible, not hide it behind an unbounded queue.

The engagement is still building. The next proof points are the HTTP admission boundary, terminal dashboard, SQLite sink, and metrics surface. The value already exists in the decisions Andrés can explain; the later phases will add more surface area and measurements.

  • ✓Dedicated sampler thread and Tokio consumer
  • ✓Bounded mpsc with explicit load shedding
  • ✓Planned next phases kept visible instead of overstated
Starting point

A senior architect adding systems depth

Andrés did not need beginner programming exercises. He brought more than a decade of backend architecture, DevOps, JavaScript internals, Python, team leadership, and technical mentoring. The real gap was Rust-specific systems fluency: ownership, async execution, bounded resources, and concurrency.

  • ✓Existing strength in complex problem solving and system design
  • ✓Rust fundamentals taught through questions that matter in production
  • ✓Career positioning built around seniority, not beginner language
Pipeline shape

One bounded path from sample to state

sysinfo

CPU + memory sample

bounded mpsc

capacity 1024

Tokio worker

read model + logs

Dedicated thread

blocking machine sampling stays isolated

Observable stop

sender drops, consumer drains, count logged

Rust 2024Tokiofinished vertical slice
Project choice

A project small enough to finish, serious enough to defend

Andrés naturally thinks in large multi-source systems. We narrowed that instinct into an observability ingestion pipeline, connected to an earlier log collector he built in Node.js. The problem is familiar; Rust makes the resource and failure decisions explicit.

  • ✓Backend-first scope designed for roughly two months of focused work
  • ✓A real before-and-after story can grow from the earlier collector
  • ✓Enough depth for channels, backpressure, shutdown, storage, and metrics
Systems depth

The queue has a deliberate failure boundary

Sample

producer

try_send

non-blocking admission

Queue full

bounded memory

Shed load

no silent growth

Capacity becomes behavior

send().await

producer waits

try_send

overload is visible

Systems depth

Backpressure is part of the design, not an afterthought

The first project slice makes the central idea visible: a sampler runs on a dedicated OS thread, sends into a bounded channel, and sheds load when the queue is full. A Tokio task consumes the events and updates the read model. The queue never grows without a limit.

  • ✓Dedicated blocking thread for machine sampling
  • ✓try_send instead of silently growing memory or blocking the producer
  • ✓Counters and tests make load shedding observable
Lifecycle

Shutdown is a protocol, not a process exit

Ctrl-C

stop signal

Drop sender

channel closes

Drain

processed count

Current boundary

The first slice proves clean channel closure and a real drain count. Cancellation tokens, HTTP readiness, persistence, and loss accounting stay explicit next phases.

Reviewable proof

Build something an interviewer can inspect line by line

The repository is organized as a sequence of finished vertical slices, with tests, CI gates, lint policy, design documents, and deferred decisions. That creates a stronger signal than a large unfinished demo: each tradeoff has a reason, and each next phase has a visible boundary.

  • ✓Rustfmt, Clippy, tests, and documentation gates in the repository
  • ✓Architecture plans explain why channels, threads, and sinks are separated
  • ✓HTTP ingest, terminal UI, SQLite, and metrics remain explicit next phases
Reviewable proof

Each decision has a testable boundary

fmt

format gate

Clippy

warnings denied

nextest

behavior checked

rustdoc

links stay valid

Next visible slices
Axum ingestratatuiSQLitemetrics

The journey

One clear path through the build

Drag to explore · Select a milestone to read the full story

Max Wells

Mentor perspective

Andrés brings a rare combination to a Rust transition: deep experience in architecture and debugging complex systems, plus a strong need to understand the machinery underneath. The coaching work turns that depth into a project with boundaries, tests, and decisions he can defend.

Max Wells

Rustify mentor

Want a Rust systems story like Andrés's?

Max WellsAvailable for calls

Max Wells

Founder · Rustify

Book your Rust career diagnostic

30 minutes, 1:1 with Max. An honest read on where you are and whether Bootcamp or Mentorship fits, before you apply.

Only a few diagnostic slots left this week.

Applications are reviewed carefully.

← Back to case studies

More client journeys

See another path into Rust

Ready to Land a $80k+ Rust Job in the US or Europe?