CV
Tim Kendrick
Rust/TypeScript/React Software Engineer
Web timkendrick.co.uk / LinkedIn timrbkendrick / Github timkendrick / Email timkendrick@gmail.com
Overview
Bright, enthusiastic hard‑worker with over fifteen years’ experience across multiple industries. I’m highly self-motivated, a fast learner and a committed team member with excellent problem‑solving skills and a keen eye for detail and aesthetics.
Equally comfortable building pixel-perfect UIs, robust frameworks and libraries, or time-saving automation utilities and tooling, I love to tackle big problems and am passionate about developing innovative solutions to formidable technical challenges.
Frameworks / Technologies
Strong expertise in TypeScript, React, Rust, WASM, Node.js, GraphQL, gRPC, WebSockets, RxJS. I particulary enjoy building polished user interfaces, functional/stream programming, and putting CS theory into practice to solve real-world use cases.
Outside work I take on ambitious solo coding projects and like to learn new concepts from first principles: I’ve written my own clean-room implementations of programming languages (parsers/interpreters/compilers/macro systems), abstract regular expression engines, actor systems, observables, virtual DOM, etc, to gain a deep understanding of how everyday tools and frameworks are implemented, so that I can make sure to pick the best tool for the job when facing design decisions at work.
Selected Work History
- October 2023 - Present: AG Grid, Senior Software Engineer
- April 2020 - August 2023: Marshall Wace, Lead UI Developer / Rust Software Engineer
- April 2019 - December 2019: 11:FS, Senior Software Engineer (freelance)
- September 2018 - March 2019: Canvas Composer, Solo developer
- August 2016 - August 2018: Deutsche Bank / DWS, Lead Developer (freelance)
- September 2013 - April 2015: Fathom, Lead Developer
- February 2013 - August 2013: R/GA London, Senior Front‑End Developer (freelance)
- August 2011 - January 2013: Burberry, Senior Front‑End Developer (freelance)
- Summer 2006 - February 2010: Ralph, ActionScript Developer
Selected Open Source Projects
Note that my personal repositories are no longer receiving non-critical maintenance
- Reflex (2023) – Reactive compile-to-WASM programming language and accompanying toolchain
- Skivvy (2015) – Modular task runner for reusable build systems
- recursive-copy (2015) – Simple, flexible file copy utility
- memoize-weak (2016) – Garbage-collected variadic function memoizer
- Many more at github.com/timkendrick and npmjs.com/~timkendrick
Academic History
- 2005 - 2008: Trinity College, University of Cambridge (BA degree in Philosophy)
- 2003 - 2005: Sevenoaks School, International Baccalaureate Diploma (45 out of 45, top 0.19% of students worldwide)
Selected Job Roles and Responsibilities
AG Grid (October 2023 - present)
Building developer tools and core features for the market-leading open source datagrid/charts library (ag-grid.com).
Marshall Wace (April 2020 - August 2023)
Rust Software Engineer (2022 onwards)
Led the design and implementation of an open source reactive programming language (see promo site for more details). Use on a production system led to codebase size reduction from 15K LOC to 5K. I wrote the compiler/interpreter/devtools in Rust, including both proprietary VM bytecode and WebAssembly back-ends, and accompanying actor-based async server runtime.
Lead UI developer (2020 - 2022)
Joined a small, delivery-focused team building the company’s flagship internal portfolio management suite and associated component library. Promoted to lead UI dev, where reponsibilities included React UI development, tooling, and DevOps/infra, while revamping our team hiring process to improve the interview:hire ratio from roughly 10:1 to 3:1. Increasing focus on GraphQL API development led to a dedicated role in a team developing streaming technologies for distributed graph systems.
11:FS (March 2019 - December 2019)
Lead TypeScript / React Native developer building a greenfield mobile app UI for a US retail bank’s new challenger offering. Responsibilities included front-end architecture design, development of in-house testing framework and cross-platform styling tools, presenting technology-related talks, and interviewing potential new hires. Singlehandedly developed a fully-functioning prototype app within three weeks of arrival, with entire polished V1 release in users’ hands within less than three months.
Canvas Composer (September 2018 - March 2019)
Solo project building a large-scale IDE for rapid development of React applications (canvascomposer.com). Intuitive UI builder allows toggling between visual drag-and-drop workspace and source code editor. Component library plugins and integrated zero-config build tools and allow rapid application prototyping within a graphical interface. Extensive static JSX source analysis of existing code allows prototypes to be seamlessly integrated within a real codebase.
Deutsche Bank / DWS (August 2016 - August 2018)
Lead architect/developer on a graph-based streaming data framework used to power data-driven front-end applications across DWS. Consumer teams reported large productivity gains and vastly decreased bug count. Project responsibilities included product direction, API/architecture design, core library implementation, development of bespoke unit-testing framework and browser plugin for developer tools.
Fathom (September 2013 - April 2015)
Lead front‑end developer for a highly interactive real‑time corporate bond trading platform for Tradeweb and accompanying component suite. Responsibilities included application architecture, development of in‑house component library, performance tuning/profiling, internal build tools, technical leadership, teaching and supervising other developers, hiring new developers.
Burberry (August 2011 - January 2013)
UI development for all interactive experiences on burberry.com, creation of in-house JS/CSS Framework (used across all campaign sites, live streamed fashion shows, press kits and in‑house tools), development of in-house internationalization tools, automation / build process improvements, technical research, hiring and supervising new developers.