All work & writing
Project3 min read

Practical TypeScript Refresher

An open-source handbook for returning TypeScript developers, with explained exercises, searchable code, and practical examples in three languages.

Context
Experienced developers need a focused way to refresh language mechanics and identify what needs more practice before coding interviews.
My contribution
Defined the scope and learning flow; directed AI-assisted content, reader development, and localization.
Result
Published 14 chapters and shared coding practice in English, Spanish, and Russian, with automated checks for examples and generated pages.

What it does

Practical TypeScript Refresher helps experienced developers revisit the language and practise writing code before an interview or after time away from TypeScript.

The learning loop is straightforward: read an explanation, write an implementation in your own editor, work through expected outcomes, then open the explained solution. Readers can choose a topic or follow a guided route through language fundamentals and backend coding practice.

The handbook covers narrowing, generics, JavaScript behavior, collections, validation, async work, concurrency, data ingestion, debugging, and tests. A workshop and mock interview bring those mechanics together. All 14 chapters and the shared practice are available in English, Spanish, and Russian.

The English Refresher homepage with topic navigation, search, language and domain selectors, and a 15-step learning path.

Choose a topic or follow a guided route through the refresher.

My contribution

I started the project for my own interview preparation, then expanded it into a public refresher. I defined its audience and scope, shaped the learning flow, and directed AI-assisted implementation, content development, and translations.

Iteration focused on concrete usability problems. Search needed to find explanations and code, not just chapter titles. Practice needed to belong to the guided routes. Checking a solution needed clear cases and expected outcomes, rather than a download whose purpose was unclear.

I also kept the scope explicit: the handbook helps readers revisit specific mechanics and notice gaps. It does not assess overall engineering ability or promise interview readiness.

Architecture

A Node.js build turns Markdown sources into static HTML using markdown-it and highlight.js. The reader uses plain JavaScript and CSS; the implementations and checked examples use TypeScript.

The build generates section-level search indexes containing prose, code, and explained answers. Search results link directly to the relevant section. Reading progress stays in browser storage and carries across language editions.

English is the canonical source. Build checks validate corresponding content and interface structure across all three editions. GitHub Actions runs verification, and GitHub Pages serves the generated site. There is no runtime backend, account system, analytics, or uploaded solution data.

Decisions and limits

Change the vocabulary, preserve the contract

Readers can switch examples between a product catalog, analytics snapshots, background jobs, and profile synchronization. The shared exercises retain their validation, ordering, deduplication, and failure rules while entity names and fields change.

This keeps the exercise consistent across familiar contexts. A vocabulary panel explains the simplified model: importing a job-state snapshot, for example, does not execute or retry the job.

Make practice explicit

Solutions start collapsed so readers can attempt the task first. Practice includes concrete checks for malformed input, version ties, scoped identifiers, bounded concurrency, and partial failures.

Code runs in the reader’s own editor. The browser provides explanations, copyable examples, and expected outcomes. An optional self-check covers 12 specific rules and links to further reading; it is not a coding skill assessment.

The partial-failure exercise with its contract and expanded explanation of bounded concurrency, error handling, and typed results.

Write your implementation, check the edge cases, then compare the explained solution.

Verify examples without overstating the result

The October 2026 release verification passed 30 automated tests, compiled 696 TypeScript snippet variants across languages and domains in strict mode, and checked 48 generated pages with 1,320 local links and asset references.

These checks support the correctness and consistency of the published material. They do not establish learning effectiveness. Frameworks, security, system design, and specialist algorithms require separate preparation; links to official documentation give readers a path beyond the refresher.

Explore the project

Open the handbook or try the shared practice.

The source, release verification notes, and publishing workflow are public. Counts above describe the October release; source links follow HEAD.

All work & writing