Senior TypeScript/React Software Engineer
Bright, enthusiastic hard‑worker with over ten years’ experience across multiple industries. Frequent open source contributor with high standards of documentation and testing. Excellent problem‑solving skills, fast learner, and a keen eye for detail and aesthetics. I’m highly self-motivated and a very strong team member who knows how to design and ship quality products.
Equally comfortable building large-scale UI-driven applications, robust frameworks and libraries, in-house tools, or time-saving automation utilities, I love to tackle big problems and take pride in writing clean code built around elegant user-focused APIs.
Frameworks / Technologies
Strong expertise in TypeScript, ES2015+, React/React Native, GraphQL/Apollo, Redux, Node.js, Jest, RxJS, lodash, Webpack/Babel, Electron, and various other buzzwords. I particulary enjoy functional coding, reactive/stream programming, and anything involving AST transformation/analysis. I like to learn new concepts from first principles, and have written lots of my own libraries for streams, transducers, virtual DOM, etc., to explore how these approaches work at a fine-grained level.
My hobby projects tend to focus on creating more efficient ways to program computers, often via new takes on existing editor paradigms. Lately I’ve been exploring compiler/interpreter design: current side-project is an innovative stream-based language implemented in Racket (cross-compiling to JS with additional JVM target planned), which I’m using to build a visual IDE.
Selected Work History
- April 2019 - December 2019: 11:FS, Senior Software Engineer (freelance)
- September 2018 - March 2019: Canvas Composer, Founder
- August 2016 - August 2018: Deutsche Bank / DWS, Lead Open-Source Developer (freelance)
- September 2015 - April 2016: Filecanvas, Founder
- 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)
- February 2010 - July 2011: Mohu, Lead Developer
- Summer 2006 - February 2010: Ralph, ActionScript Developer
Selected Open Source Projects
Popular utility libraries
- recursive-copy – Simple, flexible file copy utility
- memoize-weak – Garbage-collected variadic function memoizer
- memoize-bind – Memoized function binding
- Many more at github.com/timkendrick and npmjs.com/~timkendrick
Larger standalone projects
- Muster (2018) – Reactive streaming data language for real-time client/server apps
- Skivvy (2015) – Modular task runner for reusable build systems
- T‑Bone (2013) – Backbone.js view/binding component framework
Selected Job Roles and Responsibilities
11:FS (March 2019 - December 2019)
Lead React Native developer building a greenfield mobile app for a US retail bank’s new challenger offering. Responsibilities include 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.
Primary technologies include TypeScript, React Native, Apollo/GraphQL.
Canvas Composer (September 2018 - March 2019)
Singlehandledly built a large-scale IDE for rapid development of React applications (canvascomposer.com, currently in alpha). 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.
Currently packaged as an Electron app written in React/Redux/Node.js, easily repurposable to be a hosted web service due to client/server application architecture and modular plugin system.
Deutsche Bank / DWS (August 2016 - August 2018)
Lead architect/developer on a graph-based streaming data framework (Muster, now open-source), used to power data-driven front-end applications across Deutsche Asset Management (now DWS).
Muster combines all an application’s data – whether local or remote, synchronous or asynchronous – into a single unified virtual graph that seamlessly spans client and server, allowing client applications to manipulate remote data sources as easily as in-app data. Extensive library allows smart queries, live mutations, and limitless transformations on real-time data streams (mapping/filtering/combining/etc). Production users 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)
Development of 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.
- 2005 - 2008: Trinity College, University of Cambridge (BA degree in Philosophy, 2:2)
- 2003 - 2005: Sevenoaks School (International Baccalaureate Diploma, 45 out of 45)