Transitioning into tech
Clear explanations, practical examples, and guidance for moving from learning to shipping real software.
Open the guideI help people transition into tech, engineers grow with confidence, and teams improve how they build software. Writing aboutBreaking into Tech
Who this site is for
Clear explanations, practical examples, and guidance for moving from learning to shipping real software.
Open the guideAdvice for engineers who want stronger habits, better judgment, and more confidence at work.
Open the guidePractical guidance for teams that want healthier delivery habits, clearer expectations, and better software outcomes.
Open the guideLatest writing

ESLint, Prettier, and Husky for an Astro Site
Flat config linting, Astro-aware formatting, editor integration, staged checks, and CI enforcement
How I set up ESLint, Prettier, Husky, lint-staged, EditorConfig, and VS Code support for this Astro site, and wired the same checks into pre-commit hooks and GitHub Actions CI.

Adding reading times to an Astro blog
The reading-time package and flowing the value through blog cards and post pages
How to add reading times to blog cards and post pages in Astro using the reading-time npm package, including the full component data flow from raw Markdown body to rendered label.

Automating Dev.to cross-posting from an Astro blog
A Node.js script that reads your frontmatter, sets the canonical URL, and publishes or updates in one command
How to cross-post Astro blog posts to Dev.to automatically: reading frontmatter from markdown files, converting mermaid diagrams and SVGs to images, normalising tags, and setting the canonical URL so search engines attribute traffic back to your site.

Adding emoji reactions to your Astro blog with Netlify Blobs
Serverless key-value storage, a Netlify Function API, and an optimistic UI that feels instant
How to add emoji reactions (❤️ 🔥 💡 👏) to an Astro blog using Netlify Blobs for persistent storage, a serverless function for the API, and an Astro component with optimistic updates and localStorage to prevent duplicate votes.

Adding search to a static Astro blog
Pagefind, a command-palette modal, and the thumbnail problem
How this blog uses Pagefind for static site search: a command-palette style header modal with keyboard navigation, autocomplete results, and cover image thumbnails. Covers the build pipeline, Pagefind's JS API, and the non-obvious problems with meta elements, display:none, and hashed asset paths.

Moving blog content to a private repository
Keeping the site code open while protecting unpublished work
How I split this blog's Markdown content into a private GitHub repository while keeping the Astro site code public, using a build-time clone, a fine-grained GitHub token, and a one-line change to the Netlify build command.
Courses
For career switchers and engineers building confidence
Founding enrolment opens soon. Take the full bundle for end-to-end context, or pick up the single course that matches what you need right now. 1:1 support is included whether you start with one course or take the full bundle. If you need more help, additional 1:1 sessions can be added.
Web Foundations
Semantic HTML, modern CSS, accessibility, and responsive layouts that hold up on real projects.
JavaScript for Frontend
JavaScript, the DOM, React, and data-driven UI patterns for building production-grade front ends.
JavaScript for Backend
Node, Express, databases, authentication, and server-side patterns for secure web applications.
DevOps and Delivery
DNS, CI/CD, Docker, Kubernetes, and the deployment habits that turn code into running software.
Community
The charity sector is close to my heart, so I set aside one day each month for a charity or community organisation that could use practical help moving a digital problem or piece of work forward.
Growth, mentoring, and team impact
The feedback I hear most often is about calm leadership, helping engineers grow, and making teams work better together.
“Roger has been an exceptional tech lead and manager during my time at NewDay. He has a real ability to quickly unblock problems and create an environment where engineers can do their best work. He has been a great mentor to me and played a significant role in helping me progress from a mid-level to a senior engineer. I've learned a huge amount from working with him and really value the experience of having worked together.”
“Roger is, without question, one of the best technologists I know—a genuine visionary who translates innovative ideas into real-world impact and helps define best practices. His leadership is calm, thoughtful, and earns respect at every level. What sets him apart most is his gift as a teacher and mentor; throughout my career he has been my go-to for complex technical challenges and important career decisions alike.”
“As a product designer I've enjoyed working with Roger on New Day's SaaS product Fusion. He's a collaborative engineering lead who is deeply engaged in problem solving and thinks outside the box to find the best solutions for both business and users. Easy to approach, calm and always happy to talk through ideas, Roger is a great colleague to work with.”
“When we hired Roger a decade ago at Into Film, we couldn't decide between him and another candidate—so naturally, we took them both. Turns out Roger was worth it. As a principal software engineer, he solves problems I didn't even know existed, with a calm that makes the chaos of charity work look orderly. Ten years later, I still think hiring him was the smarter half of that indecision.”
Free · Practical · One email per post
One short email when a new article goes live. Useful if you are breaking into tech, growing as an engineer, or improving engineering practice on your team.