CV %20--%3e%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20version='1.1'%20id='SVGRoot'%20sodipodi:docname='download.svg'%20inkscape:version='1.4.3%20(0d15f75042,%202025-12-25)'%20xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape'%20xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:svg='http://www.w3.org/2000/svg'%3e%3csodipodi:namedview%20id='namedview246'%20pagecolor='%23505050'%20bordercolor='%23eeeeee'%20borderopacity='1'%20inkscape:showpageshadow='0'%20inkscape:pageopacity='0'%20inkscape:pagecheckerboard='0'%20inkscape:deskcolor='%23505050'%20inkscape:document-units='px'%20showgrid='true'%20inkscape:zoom='11.930303'%20inkscape:cx='-3.3528067'%20inkscape:cy='14.91999'%20inkscape:window-width='1920'%20inkscape:window-height='939'%20inkscape:window-x='0'%20inkscape:window-y='32'%20inkscape:window-maximized='1'%20inkscape:current-layer='layer1'%3e%3cinkscape:grid%20type='xygrid'%20id='grid252'%20originx='0'%20originy='0'%20spacingy='1'%20spacingx='1'%20units='px'%20empspacing='8'%20/%3e%3c/sodipodi:namedview%3e%3cdefs%20id='defs241'%3e%3cinkscape:path-effect%20effect='mirror_symmetry'%20start_point='12,0'%20end_point='12,24'%20center_point='12,12'%20id='path-effect1'%20is_visible='true'%20lpeversion='1.2'%20lpesatellites=''%20mode='vertical'%20discard_orig_path='false'%20fuse_paths='false'%20oposite_fuse='false'%20split_items='false'%20split_open='false'%20link_styles='false'%20/%3e%3cinkscape:path-effect%20effect='mirror_symmetry'%20start_point='30,23.545847'%20end_point='30,45'%20center_point='30,34.272923'%20id='path-effect6126'%20is_visible='true'%20lpeversion='1.2'%20lpesatellites=''%20mode='free'%20discard_orig_path='false'%20fuse_paths='true'%20oposite_fuse='false'%20split_items='false'%20split_open='false'%20link_styles='false'%20/%3e%3cinkscape:path-effect%20effect='mirror_symmetry'%20start_point='30,10'%20end_point='30,30'%20center_point='30,20'%20id='path-effect6124'%20is_visible='true'%20lpeversion='1.2'%20lpesatellites=''%20mode='free'%20discard_orig_path='false'%20fuse_paths='true'%20oposite_fuse='false'%20split_items='false'%20split_open='false'%20link_styles='false'%20/%3e%3cinkscape:path-effect%20effect='mirror_symmetry'%20start_point='30,13'%20end_point='30,50'%20center_point='30,31.5'%20id='path-effect425'%20is_visible='true'%20lpeversion='1.2'%20lpesatellites=''%20mode='free'%20discard_orig_path='false'%20fuse_paths='false'%20oposite_fuse='false'%20split_items='false'%20split_open='false'%20link_styles='false'%20/%3e%3cinkscape:path-effect%20effect='mirror_symmetry'%20start_point='49.54956,11.853962'%20end_point='49.54956,40.066391'%20center_point='49.54956,25.960177'%20id='path-effect421'%20is_visible='true'%20lpeversion='1.2'%20lpesatellites=''%20mode='free'%20discard_orig_path='false'%20fuse_paths='false'%20oposite_fuse='false'%20split_items='false'%20split_open='false'%20link_styles='false'%20/%3e%3c/defs%3e%3cg%20inkscape:label='Layer%201'%20inkscape:groupmode='layer'%20id='layer1'%3e%3cpath%20style='fill:none;stroke:%23ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round'%20d='M%2012,3%20V%2017%20L%207,12%20m%205,-9%20v%2014%20l%205,-5'%20id='path1'%20inkscape:path-effect='%23path-effect1'%20inkscape:original-d='M%2012,3%20V%2017%20L%207,12'%20sodipodi:nodetypes='ccc'%20/%3e%3cpath%20style='fill:none;stroke:%23ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round'%20d='M%203,21%20H%2021'%20id='path2'%20/%3e%3c/g%3e%3c/svg%3e)
Skills
- Languages - TypeScript, C#, Python, Rust
- Frameworks - SvelteKit, Vue, React, PixiJS, Three.js
- Databases - SQL, MongoDB, Prisma
- Development Tools - Git, Vitest, ESLint, XUnit, Playwright, npm, Github Actions
Experience
Cambridge Kinetics / Software Engineer
7th September 2022 - 31st December 2025Started off by working on various consulting projects before shifting to the launch and continuous development of their new product, Kinabase.
- Architected and implemented many of Kinabase's core features, including computed fields, aggregations and the automation system
- Acted as a technical leader for the project, reviewing the majority of pull requests, mentoring junior developers and presenting internal talks on software engineering best practices
- Modernised a client's sensor-data platform by migrating critical data synchronisation services from legacy PHP to fully unit-tested TypeScript
Gearset / Intern
June - September 2021Worked on various features and QOL improvements for the company's Salesforce DevOps software, culminating in working with UX to design and build an entirely new user-facing page. Mainly used C# for backend and Javascript for frontend code, but also gained some knowledge of SQL and Kubernetes.
Softwire / Intern
June - August 2020Worked in a team of 5 other interns on a feature for a multiplatform phone app, with core and Android code in Kotlin and iOS code in Swift. Also worked on a static site to support our feature made using React, and learnt a lot about how agile development works on a day-to-day basis.
Education
University of Cambridge / MEng Engineering (specialising in Information and Computer Engineering)
September 2018 - July 2022- 1st Year: 1st
- 2nd Year: Unclassed due to COVID-19
- 3rd Year: 1st
- 4th Year: Merit
Projects
NoNotParty Arcade
7th April 2023 - PresentGames website built using SvelteKit, focusing on encouraging competitiveness via global leaderboards and using server verification of high scores to prevent cheating. Currently features 20+ games, with around half using PixiJS for rendering.
Methodoku Online
19th March - 15th April 2023Daily randomly generated version of a popular bellringing puzzle.
Inspired creating games with a similar daily puzzle + leaderboard format on my games website after noticing that many people were still playing it long after I'd stopped adding new features.
CUGCR Website Rewrite
1st - 19th September 2020As the CUGCR webmaster, decided to recreate the entire website using React after accidentally permanently deleting some old news articles using the old site's admin interface.
The new site is more performant and mobile-friendly.