# Frontend Engineering

> Selected Engineer ApS work demonstrating Frontend Engineering — the achievements that prove it.

- [Directed full‑stack GIS map development, overseeing PostgreSQL, Mapbox, ReactJS, and NodeJS to deliver an integrated solution.](https://engineer.company/portfolio/directed-full-stack-gis-map-development-overseeing-postgresql-25/)
- [Presented 200 UI/UX improvements for the GIS map application, boosting revenue by 10x through enhanced software features.](https://engineer.company/portfolio/presented-200-ui-ux-improvements-for-the-gis-28/)
- [Contributed to user interface design processes, ensuring intuitive, visually appealing, and user‑friendly project interfaces.](https://engineer.company/portfolio/contributed-to-user-interface-design-processes-ensuring-intuitive-36/)
- [Developed 100 web applications using HTML/HTML5, CSS/SCSS, Django, WordPress, and Joomla frameworks, ensuring diverse online presence.](https://engineer.company/portfolio/developed-100-web-applications-using-html-html5-css-51/)
- [Designed 30 websites, delivering unique and flexible solutions by converting Photoshop designs to HTML.](https://engineer.company/portfolio/designed-30-websites-delivering-unique-and-flexible-solutions-52/)
- [Architected a layered maritime platform separating a Next.js PWA frontend, a Go (Huma/Fiber) API, and a PostgreSQL function layer, keeping all business logic in the database.](https://engineer.company/portfolio/architected-a-layered-maritime-platform-separating-a-next-57/)
- [Designed an organization context‑switching system with client localStorage and server‑side cookie mirroring, letting users act as managed organizations while enforcing least‑privilege authorization.](https://engineer.company/portfolio/designed-an-organization-context-switching-system-with-client-59/)
- [Built the Next.js 16 frontend with deliberate SSR, SSG and CSR strategies, and a reusable prefetched‑server‑page factory that removes the N+1 fetch cascade from each authenticated page moved onto it.](https://engineer.company/portfolio/built-the-next-js-16-frontend-with-deliberate-73/)
- [Delivered full Progressive Web App support — installable and offline‑capable — with Workbox runtime caching via next‑pwa.](https://engineer.company/portfolio/delivered-full-progressive-web-app-support-installable-and-74/)
- [Designed an iOS 26 'Liquid Glass' design system and a canonical component inventory enforced by lint rules to prevent UI divergence.](https://engineer.company/portfolio/designed-an-ios-26-liquid-glass-design-system-75/)
- [Designed the product's UI and UX end to end — directory grids, dual card/table views, live requirement validators and breadcrumb navigation.](https://engineer.company/portfolio/designed-the-product-s-ui-and-ux-end-76/)
- [Hardened the application with nonce‑based CSP, HSTS, SameSite cookies, least‑privilege database roles and server‑side entitlement re‑checks.](https://engineer.company/portfolio/hardened-the-application-with-nonce-based-csp-hsts-77/)
- [Established an English/Danish internationalization system carrying 12,027 messages per locale across 458 namespace files, with linter‑enforced vocabulary and a 400‑line budget per file.](https://engineer.company/portfolio/established-an-english-danish-internationalization-system-with-linter-78/)
- [Set the platform's founding decisions in the weeks after the repository opened in November 2025 — the layering, database‑first data access and the zero‑warnings bar — and they still hold nine months on.](https://engineer.company/portfolio/set-the-platform-s-founding-decisions-in-november-2025-80/)
- [Developed and maintained Django web applications for the IPTV platform, shipping new features and improving performance and stability.](https://engineer.company/portfolio/developed-and-maintained-django-web-applications-for-the-84/)
- [Maintained and enhanced the legacy Hugo static‑site website while contributing UI/UX improvements to the primary asset‑management product.](https://engineer.company/portfolio/maintained-and-enhanced-the-legacy-hugo-static-site-87/)
- [Drove client web success by combining custom website development and design with SEO, content strategy and copywriting.](https://engineer.company/portfolio/drove-client-web-success-by-combining-custom-website-91/)
- [Built a layered automated test suite — 981 Go tests, 543 frontend and browser specs, 494 SQL behavioural tests — with mutation testing, property‑based tests and an accessibility gate.](https://engineer.company/portfolio/built-a-layered-automated-test-suite-across-four-layers-94/)
- [Built the operator back‑office — around 40 admin routes and 128 components covering claims, moderation, feature flags, cache and diagnostics — so the platform can be run without database access.](https://engineer.company/portfolio/built-the-operator-back-office-for-the-platform-102/)
- [Built company ownership claims end to end — a user claims a company, an administrator adjudicates, and an approval rewrites the authorization graph that decides who is allowed to edit what.](https://engineer.company/portfolio/built-company-ownership-claims-end-to-end-103/)
- [Built the platform's social layer — posts, feed, groups, mentions, a follower graph and an occasions digest — on the same function‑first data layer as the rest of the product.](https://engineer.company/portfolio/built-the-platform-s-social-layer-106/)
- [Built a multilingual static site in Hugo across 104 template files including 49 partials, publishing every page in four representations from one content tree in three languages.](https://engineer.company/portfolio/built-a-multilingual-static-site-in-hugo-126/)
- [Built a commit gate of 22 one‑line linters plus four that earn a paragraph, with no warning tier and no inline suppressions permitted, covering HTML, CSS, JavaScript, Python, YAML, Markdown, shell, links, spelling, secrets and typography.](https://engineer.company/portfolio/built-a-22-linter-commit-gate-127/)
- [Cut the site's browser‑driven quality gate from 1,636 seconds to 615 by scheduling its checks longest‑first through a worker pool bounded to four lanes, after measuring that alphabetical order cost 320 seconds against 224.](https://engineer.company/portfolio/cut-the-visual-quality-gate-to-ten-minutes-128/)
- [Replaced 27 rendered font sizes whose nearest neighbours were 0.6% apart with a six‑step Major Third scale, and wrote the linter that fails the twenty‑eighth.](https://engineer.company/portfolio/replaced-27-font-sizes-with-a-six-step-scale-129/)
- [Took WCAG 2.2 Level AA across 32 representative pages — one per template per language — in both colour themes, plus two AAA criteria, with a documented conformance record and a check defending each claim.](https://engineer.company/portfolio/took-wcag-2-2-level-aa-across-the-whole-site-130/)
- [Found and fixed 11 accessibility defects the browser reported as healthy — eight footer links still in tab order behind pointer‑events, a scroll timeline clipping the colophon off three pages, and a rule engine running 70 of its 105 rules.](https://engineer.company/portfolio/fixed-11-accessibility-defects-the-browser-called-healthy-131/)
- [Generated 495 achievement pages across three languages from a read‑only SQLite export, with the page address authored as data so that correcting a sentence no longer moved the page and broke the link.](https://engineer.company/portfolio/generated-321-achievement-pages-from-a-sqlite-export-132/)
- [Closed the colour system at 28 documented colours with a linter that fails a value painted but undocumented, documented but unpainted, mis‑measured, respelled as a literal, or within a perceptual distance of 0.02 of one already there.](https://engineer.company/portfolio/closed-the-colour-system-at-28-colours-133/)
- [Found that the light theme had been missing a full‑page overlay layer since the day it was written, by asserting that both themes paint every layered surface with the same number of layers.](https://engineer.company/portfolio/found-the-light-theme-missing-an-overlay-layer-134/)
- [Made reduced‑motion honest after finding eleven selectors still animating under the preference, because a universal transition‑none rule loses on specificity to any rule carrying a class.](https://engineer.company/portfolio/made-reduced-motion-honest-135/)
- [Built a 637‑line print stylesheet against four documented rendering‑engine behaviours, including run‑in headings that printed white on white for any reader whose browser preferred dark.](https://engineer.company/portfolio/built-a-637-line-print-stylesheet-136/)
- [Mirrored the entire site as 777 Gemini documents and 777 Gopher documents off the same deployed tree, at zero bytes of change to the HTML.](https://engineer.company/portfolio/mirrored-the-site-to-gemini-and-gopher-137/)
- [Replaced 963 anonymous structured‑data blocks that restated the company 1,671 times with one linked graph of 16 types minted from stable origin identifiers.](https://engineer.company/portfolio/replaced-963-structured-data-blocks-with-one-graph-138/)
- [Cut the stylesheet bundle from 87 KB to 31 KB by taking a base64 font out of it, and dropped 756 KB across 22 files that were published on every deploy and referenced by nothing.](https://engineer.company/portfolio/cut-the-stylesheet-bundle-from-87kb-to-31kb-139/)
- [Brought 10,242 lines of quality‑gate JavaScript under a formatter and a linter after establishing it was the largest body of code in the repository and the only one nothing read, fixing 13 findings and suppressing none.](https://engineer.company/portfolio/brought-the-quality-gate-code-under-a-linter-143/)
- [Built a native macOS messaging client in Swift 6 and SwiftUI — 11,141 lines across 53 files — over the C interface of a Rust core linked as a static archive from a pinned revision.](https://engineer.company/portfolio/built-a-native-macos-messaging-client-in-swift-6-154/)
- [Stopped an application filling memory at 41 MB a second — a recorded 111 GB of compressed pages on a 36 GB machine — by bounding every event stream, subscribing by event type and putting a rate budget on logging, taking 610,996 log lines down to 1,411.](https://engineer.company/portfolio/stopped-an-application-filling-memory-at-41mb-a-second-155/)
- [Adopted Swift 6 complete strict concurrency with no actors, bridging a blocking C event loop to the main actor through one producer, one consumer and one ordering — after establishing that a task per event loses the ordering the interface depends on.](https://engineer.company/portfolio/adopted-swift-6-strict-concurrency-over-a-c-event-loop-156/)
- [Named every icon‑only control in the interface for screen readers after finding the send button announced as "arrow up circle, button", and wrote the linter that requires the label within eight lines of the icon.](https://engineer.company/portfolio/named-all-seventeen-interface-icons-for-screen-readers-159/)
- [Built a 48‑token design system on the platform's own glass material and wrote the linter that rejects a magic number, a hardcoded font size, or an animation that ignores the reduce‑motion preference.](https://engineer.company/portfolio/built-a-48-token-design-system-160/)
- [Rewrote the application's error messages against a written tone standard after a refused sign‑in blamed the user for mistyping when the provider actually required an app‑specific password, and covered it with a test that names the provider.](https://engineer.company/portfolio/rewrote-the-error-messages-against-a-tone-standard-162/)

<https://engineer.company/categories/frontend/>
