Senior Frontend Software Engineer (TypeScript / React)

I am a results-driven software engineer with experience across SaaS, PaaS, Gaming, Consultancy and Agency environments.

Technology

I primarily work with React, Typescript and adjacent technologies within the JS ecosystem.

I am first and foremost a frontend expert with a keen interest in design and user experience. Nevertheless, I am a T-shaped developer and have a broad base of knowledge which enables my work on the frontend. My skills and experience range from design tools like Figma to backend technologies like Node.js and Java.

  • React, Next, Vue, Angular, JavaScript (ES6+), TypeScript, Accessibility, Performance
  • Node.js / Express, REST, Microservices Java, Spring Boot MongoDB / Postgres
  • Docker
  • HTML, CSS, Sass, Styled Components
  • Component Libraries - Bootstrap, MUI, Ant Design etc
  • Storybook
  • Figma
  • Design Systems / Primitives / Composable Components - Radix UI
  • Git
  • Agile (Scrum, Kanban)
  • TDD, Jest, Vitest, Testing Library, Cypress (Unit, Integration, E2E Testing)
  • CI/CD, Github Actions, Husky, ESLint

Industry

I have a broad base of experience within the software industry, ranging across Software as a Service, Platform as a Service, Gaming, Consultancy and Agency environments.

Wherever I work, I promote improvements to software development and project workflows. I believe in the principles descibed in Clean Agile (2019) - collaboration, craftsmanship, and rapid, reliable delivery of high-quality software.

My industry projects have included:

  • Developing and maintaining web applications that support a globally recognised online game with millions of active players, optimising for performance, scalability, and user experience in a high-traffic environment.
  • Leading the frontend development of critical scheduling features for a major automotive company's flagship Software as a Service (SaaS) platform.
  • Building intuitive, responsive interfaces for a Platform as a Service (PaaS) to visualise Kubernetes workload scaling, manage deployments, and monitor resource usage in real time.
  • Delivering a variety of commercial projects for a web agency including corporate websites, ecommerce stores, and custom web apps, ensuring consistent UX/UI standards across projects.

Development Philosophy

I am an advocate of the principles described in Clean Code (2008) by Bob Martin. These are:

  1. Meaningful Names - Use descriptive, unambiguous names for variables, functions, and classes that reveal their intent.
  2. Small Functions - Keep functions short and focused on a single task. They should do one thing and do it well.
  3. Readable Code - Write code for humans to read first, machines second. Clear, simple, and straightforward beats clever or complex.
  4. Avoid Duplication - Duplicated code leads to bugs and maintenance headaches. Extract common logic to reusable functions or classes.
  5. Clear Comments - Comments should explain why something is done, not what the code does—ideally, the code itself should be self-explanatory.
  6. Consistent Formatting - Maintain a consistent style for indentation, spacing, and braces to improve readability and reduce cognitive load.
  7. Error Handling - Handle errors gracefully and clearly; avoid cluttering core logic with error checks by using exceptions or other clean patterns.
  8. Write Tests - Automated tests (especially unit tests) ensure code correctness and enable safe refactoring.
  9. Refactor Continuously - Keep code clean and flexible by regularly improving its structure without changing behavior.
  10. Avoid Premature Optimization - Focus first on clarity and correctness; optimize only when necessary and backed by measurement.

About Me

I am based in Cardiff and enjoy science fiction, contemporary art, architecture, languages, video games and travelling the world!

Please contact me by emailing me at miketandy@protonmail.com or calling me on 07769 583 616

Mike

We use cookies on our website to improve your browsing experience and to analyze site traffic using Google Analytics.

For more information about how we use cookies, please read our privacy policy and cookies policy.

By continuing to use our website, you consent to our use of cookies. If you do not consent to the use of cookies, please disable them in your browser settings or refrain from using our website.