Ivan Plankin

Architecture first · model access, Telegram publication, bounded agent tools

SYSTEMS ENGINEER / ARCHITECT

Systems engineer. AI systems under real conditions.

I build the mental model first: objective, constraints, acceptance criteria, actors, state, and failure space. AI agents receive the whole system job—states, boundaries, acceptance, and recovery—not just a file-level coding prompt; they implement and verify the code inside that design. I own the architecture, allowed recovery behavior, and the check through a real consumer. Rust makes memory, concurrency, network, and resource boundaries explicit where they change the result.

I define objective, constraints, state, and acceptance criteria. AI gets a whole system task—not just a file—and writes, implements, and verifies it inside that design; Rust makes failure recovery and change explicit.

HOW I DESIGN

A system starts with the model, not the syntax.

Before implementation, I make the request, model, boundary, and failure space explicit so a real consumer can recognize a correct result.

01

Define the mental model

An OpenAI- or Anthropic-compatible request names the model, account, quota, network path, and session before the provider adapter is chosen.

02

Set constraints and allowed states

Context, permission, attachment, and recovery stay separate; a failed condition returns a clear failure and a defined next state instead of a silent retry.

03

Verify the real consumer

A new service version earns traffic after a real response succeeds; existing SSE and WebSocket streams finish on their starting version.

SELECTED SYSTEMS

Systems under change

The public index starts with a model-access gateway, Hermes' Telegram publication system, and a Telegram MCP. Each project names its complete job first, then the architectural decision, boundary, and behavior a real consumer can inspect.

01

AI Gateway in Rust

An application sends an OpenAI- or Anthropic-compatible request through one API. The gateway models provider formats, account access, quota, network route, and session state; it returns the requested model or a clear failure.

Behavior under changeQuota loss, network failure, and service version changes are handled separately. The requested model is not replaced, session context stays attached, and open streams finish on the previous version.
ToolsRUST / AXUM / LEPTOS / POSTGRES / NIX
02

Telegram content system

A system that takes one Telegram channel from source material to scheduled publication and records audience response for the next plan.

TELEGRAM CONTENT SYSTEM / FROM SOURCE TO PUBLICATION

One revision binds copy, visual, approval, schedule, and publication; response data at 24/48 hours stays separate from live counters for the next plan.

  1. 01Channel history + source material
  2. 02Text + visual as one package
  3. 03Approval + schedule
  4. 04Publication + response data
ToolsRUST / TOKIO / GRAMMERS / AXUM / NIX
03

Telegram MCP server in Rust

AI finds an exact dialog and message, reads nearby context, and downloads an attachment into a managed workspace. Text replies pass through a separate private approval button.

TELEGRAM MCP / CONTEXT DOES NOT GRANT SEND AUTHORITY

AI can assemble the exact context, but send authority stays with the person; approval and the send result persist across restarts.

  1. 01Exact thread
  2. 02Nearby context + attachment
  3. 03Personal approval
  4. 04Send + durable result
ToolsRUST / TOKIO / MCP / MTPROTO
PUBLIC INDEX

Source index: other systems

01

Telegram Desktop tdata converter in Rust

02

Rust MCP server for D2 diagrams

03

Persistent memory for AI coding agents

04

Bodywork website and booking system

05

Linux power controller for builds and heat

Contacts

Write about the system

Name the project or system, its objective and constraints, the current state, and the question or failure that remains open. Link public source when there is one.

Useful context

Name the project or system, its objective and constraints, its current state, and what you need to decide next.