Senior frontend engineer, 8 years. Angular at depth, Node where the backend needs to move, and a long-running interest in the parts of engineering nobody wants to own: test infrastructure, merge tooling, and getting AI agents to do real work inside a real pipeline.
Angular, the hard parts. Large single-page applications with real complexity: role models, generated forms, legacy migrations, and the architectural untangling that follows five years of feature delivery.
Test infrastructure that people trust. Playwright end-to-end suites and visual regression testing wired into CI so a broken layout fails the pipeline instead of reaching production. Most of the work is not writing tests, it is making them stop flaking.
AI agents in the development loop. Not chatbots for end users — agents that read a ticket, write the spec, implement it, open the merge request, and pass automated review. Built and running on a production codebase.
silky-recorder · JavaScript, MIT Product demo videos generated from a JSON scenario — animated cursor, zoom camera, captions, sound. Headless, so it runs in CI. Demos stop rotting when re-recording is one command instead of a screen recorder and an editor.
ng-generate.nvim · Lua
Neovim plugin: a popup menu for ng generate in Angular projects.
TypeScript Angular RxJS NgRx Node Playwright Rust Neovim
Open to part-time contract work and to conversations about putting AI agents into a development pipeline.



