Skip to content

Commit cabf462

Browse files
authored
docs: lead the services page with agent-ready backends (#143)
1 parent 379377a commit cabf462

2 files changed

Lines changed: 52 additions & 43 deletions

File tree

‎docs/services.md‎

Lines changed: 51 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,68 @@
11
# Services
22

3-
I'm Artur Shiriev, the maintainer of modern-python. Besides the open-source work, I help teams
4-
with their Python backends: auditing a codebase, setting up observability and CI, and
5-
modernizing services.
3+
I'm Artur Shiriev, the maintainer of modern-python. Besides the open-source work, I help Python
4+
backend teams that use coding agents keep production stable: I make the codebase easier for agents
5+
to work in, review where delivery stands, and lock down what agents can reach.
66

77
The libraries stay free and MIT-licensed whether or not you hire me. You don't have to use them
88
either. When one fits, it saves time; when it doesn't, I work with what your team already runs.
99

10-
## Engineering health audit { #audit }
10+
## Agent-ready backend { #agent-ready }
1111

12-
For teams that inherited a codebase, are about to grow one, or keep fighting the same incidents.
12+
For teams where coding agents write a growing share of the code. A fixed-scope sprint that ends in
13+
merged pull requests in your repositories:
1314

14-
I look at:
15+
- Context the agent can use. `AGENTS.md`, skills, and architecture rules written where the agent
16+
reads them and checked in CI, with a [LikeC4](https://likec4.dev) model of the system when the
17+
boundaries need one.
18+
- Checks for agent-written code. Lint, type, test and coverage gates plus structural tests and
19+
hooks, run the same way locally and in CI, along the lines of the org's own
20+
[standard](standard.md).
21+
- Access to production signals. CLI and MCP access to your error tracker, logs, metrics and traces,
22+
so an agent can check a change against how the service actually behaves.
23+
- Telemetry worth querying. Structured logs, traces, metrics and error tracking in FastAPI, Litestar
24+
or FastStream services, usually with
25+
[`lite-bootstrap`](https://github.com/modern-python/lite-bootstrap), so people and agents can
26+
debug from the same data.
27+
28+
## Delivery health check { #audit }
29+
30+
A short, fixed-scope review, and a good first step before a sprint. Automated scanners for
31+
dependencies, vulnerabilities and code smells run first, and I treat what they find as raw input.
32+
Most of the time goes to what the tools can't see:
1533

1634
- recent outages and incidents, what caused them, and which ones keep coming back
17-
- the defect backlog and the error tracker (Sentry, GlitchTip): which bugs matter and which can be
18-
closed
19-
- logs, traces and metrics: what is collected, what is noise, and what is missing
20-
- tech debt: outdated Python and packages, known vulnerabilities, test coverage, tests built on
21-
mocks, missing linters and type checks
35+
- whether your logs, traces and metrics are good enough to debug from, for people and for agents
36+
- whether code review keeps up with how much code the agents produce, and how deployment
37+
frequency, change failure rate and time to restore have moved since the team adopted them
2238
- CI, the release process, and how a change reaches production
23-
- the architecture diagrams, and whether they still match the code
24-
25-
You get a written report with findings ranked by impact and effort, a plan for the first fixes,
26-
and a call to go through it with your team. The audit doesn't change your code; fixes are a
27-
separate piece of work.
28-
29-
## Implementation sprints { #sprints }
30-
31-
Short, fixed-scope work that ends in merged pull requests in your repositories. Typical sprints:
32-
33-
- Observability. Structured logs, traces, metrics and error tracking in FastAPI, Litestar or
34-
FastStream services, usually with [`lite-bootstrap`](https://github.com/modern-python/lite-bootstrap),
35-
plus Grafana and Prometheus dashboards.
36-
- Quality gates. A `justfile` whose lint and test tasks run the same way locally and in CI, with
37-
ruff, ty, coverage and dependency checks, along the lines of the org's own [standard](standard.md).
38-
- A harness for coding agents. `AGENTS.md`, skills, CLI and MCP access to your error tracker, logs
39-
and metrics, and the hooks and CI checks that hold agent-written changes to the same bar as
40-
everyone else's.
41-
- Modernization. Upgrading Python and dependencies, and introducing
42-
[`modern-di`](https://github.com/modern-python/modern-di) for dependency injection,
43-
[`httpware`](https://github.com/modern-python/httpware) for typed, resilient HTTP clients, or
44-
[`faststream-outbox`](https://github.com/modern-python/faststream-outbox) for reliable event
45-
publishing.
46-
- Release process. Change requests, end-to-end tests built from test cases, and release scope
47-
collected automatically with [`release-scope`](https://github.com/modern-python/release-scope)
48-
and [`semvertag`](https://github.com/modern-python/semvertag).
49-
- Architecture as code. A [LikeC4](https://likec4.dev) model of the current system, kept in the
50-
repo next to the code.
39+
- whether the architecture docs still match the code
40+
41+
You get a written report with findings ranked by impact and effort, a plan for the first fixes, and
42+
a call to go through it with your team. The review doesn't change your code. When it calls for
43+
design changes, such as dependency injection with
44+
[`modern-di`](https://github.com/modern-python/modern-di), a transactional outbox with
45+
[`faststream-outbox`](https://github.com/modern-python/faststream-outbox), or resilient HTTP clients
46+
with [`httpware`](https://github.com/modern-python/httpware), I can make them as follow-up work.
47+
48+
## Agent security and governance { #governance }
49+
50+
For teams rolling coding agents out beyond a few early users, or unsure what the agents can touch:
51+
52+
- a usage policy: which tools and repositories, which changes need human review, and the size and
53+
test requirements for agent pull requests
54+
- permissions: which commands agents may run, which secrets and tokens are within their reach, and
55+
whether anything reaches production
56+
- MCP servers and other integrations: which to trust and what data they see
57+
- prompt injection through issues, pull requests, docs and CI, wherever agents read text they
58+
didn't write
59+
- a rollout plan: one team first, then wider once the guardrails hold
5160

5261
## Library support { #support }
5362

54-
For companies that run modern-python libraries in production: help with upgrades and migrations
55-
(for example from `that-depends` or `dependency-injector` to `modern-di`), a review of how the
56-
libraries are wired into your services, and help when an incident involves one of them.
63+
If you run modern-python libraries in production, I can help with migrations (for example from
64+
`that-depends` or `dependency-injector` to `modern-di`) and with incidents that involve one of
65+
them.
5766

5867
## Get in touch { #contact }
5968

‎profile/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,4 @@ If these projects save you time, consider supporting development on [Boosty](htt
5757

5858
[![Boosty](https://img.shields.io/badge/Boosty-support-f15f2c?logo=boosty&logoColor=white)](https://boosty.to/lesnik512)
5959

60-
For paid help with your own services, such as an audit, observability and CI setup, or a migration, see [services](https://modern-python.org/services/).
60+
For paid help with your own services, such as getting a backend ready for coding agents, a delivery review, or securing agent workflows, see [services](https://modern-python.org/services/).

0 commit comments

Comments
 (0)