TypeScript
Applied TypeScript for type-safe full-stack web applications, React component systems, and client-side chess analysis runtimes.
1 / Why TypeScript
The transition from plain JavaScript to TypeScript was driven by a specific category of production bug: runtime undefined property crashes in complex React UI applications. Once a project grew beyond a handful of components, the absence of type checking made every refactor a gamble. TypeScript eliminated that entire class of error at compilation time.
2 / Full-Stack Type Safety
In Trajectory, TypeScript provided end-to-end type safety between the Spring Boot REST API contracts and the React frontend. Zod schema validation paired with TypeScript types ensured that external API payloads were validated at the boundary before flowing into component state. Generic types and discriminated unions clarified complex UI state machines — particularly the application tracking pipeline states that needed to represent draft, submitted, interviewed, offered, and rejected states without ambiguity.
3 / Browser Compute Integration
CheckMate pushed TypeScript into territory I had not anticipated: wrapping a C++ chess engine compiled into WebAssembly and coordinating evaluation results across Web Workers. Configuring type definitions for non-standard browser WebAssembly modules and Worker message interfaces required custom declaration files and careful typing of SharedArrayBuffer communication channels.
4 / Current Assessment
TypeScript is now my default for any frontend project. Strict mode catches potential null/undefined dereferences during compilation rather than in user browsers. The lesson I would carry into future projects: maintain shared API payload interfaces across frontend and backend boundaries from project inception, not as an afterthought when type mismatches start causing silent failures.
