100% agree with you... taking the time to do/go design first greatly improves the quality of the final API...
But as some comments below point out, an OpenAPI spec is a pain to create manually which is why TypeSpec from Microsoft is such a great tool. Lets you focus on the important bits of creating a solid API (model, consistency, best practices) in an easy to use DSL that spits out a fully documented OpenAPI spec to build against! see https://typespec.io/
I've had an "architect" job in some form or another for 20+ years, so have learnt plenty of things that would have greatly surprised my younger self...
My day job is basically to be a "force multiplier" and it boils down to:
- cat herding = meetings, discussions, negotiation, "shoulder to cry on" = way more soft skills then I ever thought I'd need
- Big picture stuff = "town planning" for tech, second order thinking, pulling together cohesive plans/strategies, principles, constraints = way harder to effectively communicate this stuff than my younger stuff would have thought
- rapid altitude changes = dropping from the 10000ft view down to helping a team troubleshoot some production issue, helping a junior dev with a code issue, solving a dispute between devs, hands on evaluation of some new tech, then jumping back up to talk to a leadership team about some new grand strategy, or to planning out a multi year program of work = a ton of skills that my younger self would have never have guessed at, finance, budgets, "business" language, operating models along with keeping my technical skills sharp
In terms of resources:
- Anything around learning to story tell and communicate effectively
- The "97 Things Every Software Architect Should Know" essays
- Your tech skills - write PoC apps, side-projects, try out new tech, learn to quickly grok strengths & weaknesses of tech
A mix of stuff. Being coding 40+ years, 30 of those as a job. Currently I do 3 days a week working as a solutions architect, herding cats for a large grocery chain. 2 days a week I work for an R&D team for a company building digital people, doing hands on coding, ML, NLP etc etc... hence the talking to robots :)
Sounds fun! I would love to work for an R&D team that actually produces something. (I only "produce" data pipelines and analysis.) Sounds like I only need 20 more years of coding experience!
TIC-80 isn't quite as refined as PICO-8 but its still pretty awesome. A few months ago I figured out how to setup TIC-80 so I could code on my mobile whilst on the move: https://www.youtube.com/watch?v=FxQpRoZI3kM