Three levels, each with a precise meaning. Core is where I can defend the design decisions; proficient is where I can build unaided and know the gaps; working is where I can read it and ship with the documentation open.
The levels
Core
I can defend design decisions in it under questioning.
Proficient
I can build unaided, and I know where I am weak.
Working
I can read it and get things done with the documentation open.
Languages
Ordered by what I would want to be interviewed in.
PythonCore
SQLProficient
CProficient
TypeScriptWorking
HTML / CSSWorking
Backend
Where most of my time goes.
REST API designCore
HTTP semanticsCore
FlaskCore
FastAPIProficient
PostgreSQLProficient
SQLite / relational designProficient
Data modellingProficient
Multi-tenant architectureProficient
Session authentication & RBACProficient
Password hashing & CSRF protectionProficient
Jinja2Working
Async & concurrency
Built into site-auditor and the service layer behind Postmark.
asyncioProficient
httpxProficient
Bounded concurrencyProficient
Retries, backoff & jitterProficient
TimeoutsProficient
Per-host rate limitingProficient
robots.txt complianceWorking
Typing, testing & quality
The things that decide whether code survives contact with a second reader.