Happily building things on the internet since 2008.
Proud to be part of the engineering team at Graphy; giving everyone data superpowers.
Originally from Yorkshire in the UK, I have been living in Norway since 2021. Outside of technology, I spend my time learning Norwegian, walking in nature and listening to podcasts.
- Email deliverability: why SPF softfail is best practiceSPF softfail + DMARC is best practice. I explain the pros and cons of SPF softfail vs hardfail, how DMARC and DKIM work, and tips on making sure your emails get throughBlog-
- Improving Data Analysis with OpenAI APIAn exploration of the challenges faced by language models in understanding math and learn how strategic prompting strategies and descriptive statistics can enable LLMs to give meaningful and reliable data analysis.Blog-
- Why Cookies Are the Best Place to Store Authentication TokensHow you store tokens is critical in defending your application against malicious attack. Here's why you should use same-site secure cookies.Blog-
- Why we chose PlanetScale as our database providerPlanetScale is a database provider that offers a unique approach to scaling databases. We chose PlanetScale as our database provider for our new product, and we're excited to share why.Blog-
- Introduction to Storybook: Building component driven UIs fasterA lightning talk I gave on Storybook in 2022, focused on how engineering and design teams can come together to adopt Storybook successfullyBlog-
- Playbook - Building Psychological Safety on Engineering TeamsSuccessful engineering teams don't just happen by chance. Steal my playbookBlog-
- European Alternatives to VercelA discussion of EU data residency issues and a list of EU alternatives to Vercel you can use todayBlog-
- Utilizing Promises, Context and Hooks for a Modern Alternative to window.confirmUpgrade your clunky native `window.confirm` to a custom modal, whilst keeping the same confirm functionality. Includes Typescript demo codeBlog-
- How to use GetServerSideProps with tRPCgSSP and tRPC is your ticket to a better NextJS experience. Check out how to do it here, with code samplesBlog-
- GraphyMid-stage startup, giving everyone data superpowers. Watch this space!Senior Software Engineer :: 08/2023 - Present
- indyRiotMid-stage startup, making better online communities. Wide ranging role including mentorship, ops and migrating legacy application to Next.js, TypeScript, tRPC & Prisma.Tech Lead :: 04/2022 - 07/2023
- CoastMid-stage startup, helping small businesses organize in a Slack-like app. Responsible for product, marketing and activation projects.Software Engineer :: 04/2020 - 03/2022
- TABLETABLE was an early-stage startup, offering a conversational eCommerce platform. Responsible for product and marketing projects, including our integration strategy.Software Engineer :: 2019 - 2020
- StreamStream was a property management platform, which aimed to make online communities for apartment blocks and residential communities. MVP was well recieved but failed to find market fit.Founder :: 2019 - 2020
- BytemarkAcquired by iomart. Mature IaaS company, with an in-house virtualisation platform. Embedded in engneering team, responsible for product strategy and engineering team enablement.Product Owner :: 2018 - 2019
- JobBoard.ioAcquired by ZipRecruiter. Founding team role with diverse responsibilities, including ops, engineering, marketing and salesFounding Team :: 2014 - 2018