🧠 Skills and Experience

This is a brief and honest summary of my skills and experience in different areas of full-stack web development.

General

  • Languages: I’m currently most interested in full-stack Javascript/Typescript, however I want to experiment with languages like Go & Rust at some point. I’ve used PHP, Python and Java in the past too.
  • Testing: I have experience with unit testing and end-to-end testing full-stack Javascript, although I’ve implemented tests for back-end code and ā€œlogical front-end codeā€ more than I’ve done UI level testing. I’ve had limited opportunities to gain testing experience in my current role, but I push for it where I can and also use personal projects to improve.
  • Code Architecture: I’m always interested in how I can structure systems and design better solutions. I believe a balance of up-front planning and iteration over time generally works best. This is an area I’m always looking to improve in, and I think my growing experience in testing is very helpful here too.

Front-End

  • Accessibility: I always follow guidance such as the ā€˜ARIA Authoring Practices Guide’ when building features and ensure I’m using semantic HTML, checking contrast, testing with keyboard navigation and screen readers etc. I’m aware there is always more to learn and improvements to make here though, and I always want to build solutions for all users.
  • Frameworks: Most of my experience is in React (Next.js, Gatsby etc), however I’ve played with Svelte and Solid a little and want to continue experimenting with React alternatives.
  • Web APIs: I like to think I’m quite good with standard web APIs, and my interest in local-first software has exposed me to lots of things such as WASM, OPFS, WebCrypto, WebLocks, BroadcastChannel, WebSockets and more!
  • CSS and Styling: I’m most experienced with BEM-based SASS and Tailwind. I’ve experimented with a few CSS-in-JS libraries though, and enjoy using CSS modules or just Vanilla CSS where possible with libraries like LightningCSS/PostCSS for supporting draft specs.
  • Transitions and Animations: I’ve done my fair share of implementing animations/transitions work and used libraries like motion, but I do consider this one of my weaker areas I’m looking to improve.

Back-End & DevOps

  • Back-End Services: I’m yet to experience building back-end services in industry (apart from via a CMS like Drupal), but I’ve built quite a few Node.js servers for my own projects and do run services ā€œin productionā€ for myself. This has included implementing unit & end-to end testing for services, using tools like Redis and building my own authentication/authorization system.
  • CMS: I have the most experience building with Drupal, although I’m stronger with the front-end and site building aspects of Drupal than the back-end. I’ve also built with Contentful, Directus, Strapi and Wordpress a little.
  • Databases: I’m no database administrator, but as part of building with Drupal and creating my own back-end services I’ve used Postgres, MySQL & MongoDB and have done migrations, query optimizations etc.
  • CI and DevOps: I consider this one of my weaker areas, but I have built GitHub Actions, published NPM packages, distributed Docker containers and self-host my own production services and a home lab. My experience daily-driving linux for years often helps here too.