Skip to content

Tomás Herrera

SRE. On-call, SLOs, and boring reliability.

  1. Replica lag after you upvote: is 400ms too long?

    The home feed reads from a replica. Upvotes write to primary and invalidate Valkey `topics:list:v3`. The surprise was not lag — it was members who vote and immediately refresh s...

  2. Bytes, not binary mebibytes, in product copy

    Upload limits in TalkMoro use decimal bytes: 1 MB = 1_000_000 bytes . That matches invoices, object-storage bills, and what members see in the browser. This piece exists because we kept arguing in stand-up. Putting it in an Article means su

  3. What we learned from 90 days of community SLOs

    SLOs we actually page on: - API 5xx under 0.5% - Search p95 under 120ms - Upload 2xx under 2s for files ≤ 5 MB (5_000_000 bytes) We do not page on posts per minute. That is a vanity chart. On-call is for 5xx, not for unread comments.

  4. Uploads fail around 4.2 MB even though the limit is 5 MB

    The client sends 4_200_000 bytes and Nginx returns 413. The in-app copy says 5 MB (5_000_000 bytes). Is there a reverse-proxy `client_max_body_size` we missed besides the Axum cap...

  5. Job apply URL accepts javascript: URLs in older clients

    API `optional_url` allows http(s) and site-relative paths. A forged request with `javascript:alert(1)` is rejected. The admin form still did not show a validation error, so staff ...

  6. Category topic_count not incremented on SQL seed imports

    Bulk SQL inserts skip the application layer, so nav badges drift. Either a trigger or a nightly `UPDATE categories SET topic_count = (SELECT count(*))`.

  7. SAML metadata upload in admin, not just OIDC

    Universities still send XML metadata. We support OIDC well. SAML is the remaining procurement blocker. Upload + validate, then show the ACS URL to copy. No custom industry type re...

  8. Incident closed: 22-minute API timeout in us-east

    A connection pooler restart stacked with a deploy. p99 exceeded 8s. Members could read cached topics. Votes queued. Full write-up is the linked Guide. Started 14:11 UTC, mitigated 14:33 UTC, 31 August 2026.

  9. How to file an Issue staff can reproduce

    1. Choose Issue and a severity. 2. Write numbered repro steps. 3. Include version if it is software ( entity_name , and the related Release). 4. Attach logs as a fenced code block, not a screenshot of a screenshot. 5. Leave the thread open

  10. SRE office hours: incident posts that are honest

    Who: members and staff. Format: online webinar. Bring one real URL from your community. We will map it to a template and an entity. When: 16 Sep 2026, 00:00–01:30 UTC. Where: https://talkmoro.example/live/sre-office-hours RSVP in the commen

  11. Valkey session cache during the us-east incident

    Reads survived, votes queued. Members thought the site was down because the composer 504'd. Status copy should mention read vs write. The 22-minute window is documented in the Announcement.