// skills.html
Technical Skills
Organised by engineering layer — not by arbitrary percentage bars. Skills assessed honestly: Proficient, Working Knowledge, or Learning.
Skill level legend
Knowledge levels:
Skills by engineering layer
Frontend Layer
Semantic elements, document structure, forms, ARIA, metadata, accessibility attributes.
Custom properties, Flexbox, Grid, animations, media queries, specificity management, architecture.
DOM manipulation, event handling, closures, modules, async/await, Fetch API, localStorage.
Mobile-first methodology, fluid layouts, breakpoint strategy, viewport units, container queries.
Element querying, event delegation, mutation observation, dynamic rendering, class/attribute manipulation.
Semantic HTML, keyboard navigation, ARIA roles/attributes, colour contrast, focus management.
Inline SVG creation, path manipulation, animation, charts, icon systems.
IntersectionObserver, ResizeObserver, History API, URLSearchParams, Canvas basics.
import/export syntax, module architecture, dependency management without bundlers.
Image optimisation, lazy loading, Critical CSS, font loading strategies, Lighthouse audits.
Backend Knowledge
Runtime environment, file system, modules, package management, http module basics.
Routing, middleware, request/response cycle, static file serving, error handling.
HTTP methods, status codes, endpoint design, JSON responses, input validation.
Session-based auth, JWT basics, password hashing, protected routes.
Create, Read, Update, Delete patterns — implemented in both client-side and server-side contexts.
Data Layer
SELECT, INSERT, UPDATE, DELETE, JOINs, WHERE, GROUP BY — core query writing.
Embedded database, schema creation, Node.js integration via better-sqlite3.
Normalisation basics, entity relationships, foreign keys, schema planning.
Constraints, NOT NULL, UNIQUE, data validation at application and DB layer.
Structured client-side persistence, schema versioning, serialisation/deserialisation.
Engineering Practices
Version control, branching, merging, rebasing, commit discipline, .gitignore.
Repositories, README documentation, issues, pull requests, GitHub Pages.
Browser DevTools, console methods, breakpoints, network panel, performance profiling.
Custom properties, layered stylesheets, component-driven organisation, specificity management.
GitHub Pages, Netlify, basic FTP hosting, domain configuration, HTTPS.
Manual cross-browser testing, structured test cases, beginning automated testing.
Module boundaries, component contracts, separation of concerns, documented decisions.
Feature detection, vendor prefixes, progressive enhancement, testing on real devices.
Day-to-Day Tools
Primary editor
Debugging + profiling
Version control
Design reference
Deployment
Git, Node, npm
Performance audits
Cross-browser testing
See these skills applied.
The projects page shows how these capabilities are used together to solve actual problems — not just listed on a screen.