Courses
Practical courses for the work we actually do. Pick one, finish it, and apply it.
This is for people who write Python every week and now need it to handle bigger data, more work at the same time, and other people installing it. You will build real decorators, process data one piece at a time, catch type errors before they run, choose between threads, processes and asyncio, then package and profile your code. Most of this is not needed for small scripts. When it is needed, not knowing it gets expensive.
This is for people who already write basic JavaScript and want the compiler to catch wrong data before the code runs. You will add types to JavaScript you already know, compile with tsc, and stop guessing what a function accepts. If you skip the basics and add any until the red lines go away, you keep the old bugs and add a build step.
This is for people who can write basic TypeScript and now work on code that other people also touch. You will use generics, utility types and third-party typings so shared code stays honest when the data changes. If you keep reaching for any and as at every boundary, the compiler stops helping exactly where the bugs are.
You'll design declaration files, deep conditional types and migration paths so a real codebase stays typed as it grows.