Skip to content
← All tracks

The Edge of the System

Python

Encoding, serialisation, clocks, filesystems, subprocesses — everywhere your typed core meets an untyped world.

This track is written for Python, which isn't the mode you're browsing in.

0 / 6 solved · 6 articles
  1. 1. Not solved yet. Parse, don't validate: the boundary returns a narrower type
  2. 2. Not solved yet. Typed settings: parse the environment once, report every problem
  3. 3. Not solved yet. Injection: the list form, and a SQL type your checker enforces
  4. 4. Untrusted deserialisation and hostile input Read
  5. 5. Not solved yet. The configuration boundary in practice: file, environment, argv, one Config
  6. 6. Not solved yet. Logging in libraries: the hierarchy, the effective level, and whose configuration it is
  7. 7. Not solved yet. Structured logging: events, not sentences
  8. 8. Observability of the runtime itself: an incident playbook keyed by symptom Read
  9. 9. Publishing an API you can evolve Read
  10. 10. Packaging the artefact: the bugs that only exist in the wheel Read
  11. 11. Security linting without crying wolf Read
  12. 12. The trust-boundary checklist Read

Check yourself

4 questions · one attempt each

These do not count toward finishing the track. They are here to catch the things that are easy to read past.

0 / 4

What does Path('a') / 'b' give, and why prefer it to string concatenation?

Path('a') / 'b'
Question 1 of 4