š§ 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.