Skip to main content

Standards you can verify

Claiming to care about quality is easy. This page lists the standards I apply as a software engineer — from the architecture of a backend to an agentic system — and uses this site as the part you can check yourself, right now, without taking my word for it.

See the measurements

The verifiable sample

A website is the only part of my work you can audit without my permission: it's public, and standard tools exist to measure it. That's why I use it as a sample. It is not the scope of what I do — it's the part that can be checked.

Taken with Lighthouse on www.andrealosavio.com/it, mobile profile, on August 17, 2026.

100
Accessibility
100
Best Practices
100
SEO

Core Web Vitals

LCP
1,07 s
CLS
0,00
TTFB
36 ms

Largest Contentful Paint, Cumulative Layout Shift, Time To First Byte. The thresholds considered good are 2.5 s, 0.1 and 800 ms respectively.

Lighthouse's Performance category is missing here because its score depends on the network and CPU throttling of the machine running the test: publishing a number without stating those conditions would be misleading. You get the raw metrics instead, which are comparable.

Measure it yourself

Open DevTools on any page of this site, Lighthouse tab, mobile profile, and hit Analyze. Nothing in this section asks you to take my word for it.

19 pages prerendered at build time, generated in 244 ms.

The standards, area by area

Every line is a design decision, not an intention.

What you can verify here

Measurable with public tools, on this domain, in a minute.

Accessibility

  • Skip link to the main content as the first focusable element
  • Every control without visible text exposes a translated aria-label
  • Accessible name always contains the visible label (WCAG 2.5.3)
  • Visible focus on every interactive element, never removed
  • prefers-reduced-motion honoured globally
  • ARIA roles only where needed: never override native semantics

Performance

  • Pages statically prerendered and served from the CDN cache
  • Cumulative Layout Shift at zero: no content jumps while loading
  • Images in WebP, no asset above 72 KB
  • Self-hosted, preloaded fonts, with no third-party requests
  • Translations loaded per route: a page never ships catalogs it cannot use
  • Server rendering wherever interactivity isn't needed, to avoid paying for hydration

SEO and machine readability

  • Canonical URL and hreflang from a single source, with no conflicting signals
  • JSON-LD structured data linked into one entity graph with stable @id values
  • Multilingual sitemap with alternates declared for every URL
  • Public, maintained llms.txt, compliant with the recommendations
  • Content present in the served HTML, not produced after hydration
  • Permanent 301 redirects from every legacy address, so history isn't lost

What a website cannot show

The part of the work that lives behind an API, inside an app or in an agentic system — where Lighthouse doesn't reach and design is what counts.

Architecture & APIs

  • Explicit module boundaries: every unit has a purpose statable in one sentence
  • Input validated at the system edge, before any business logic runs
  • Typed errors separated by audience: what the user sees versus what the maintainer sees
  • Domain state kept separate from transport state, so either can change alone
  • Architectural decisions driven by real constraints, not by technology fashion
  • Reversible choices when the cost of being wrong is high and the context uncertain

Data & persistence

  • Schema as the source of truth, with versioned and reversible migrations
  • Integrity constraints in the database, not only in application code
  • Indexes designed around real queries, not bolted on afterwards to treat symptoms
  • N+1 queries treated as design defects, not as load problems
  • Caching with explicit invalidation: never a cache whose expiry nobody knows
  • PostgreSQL, MongoDB or Redis chosen for the access pattern, not out of habit

AI engineering & agentic systems

  • Structured, validated output: no model response enters the system without a schema
  • Tool and function calling with explicit contracts and handled failures
  • Multi-agent orchestration with declared delegation and responsibilities
  • Context treated as a finite resource: what goes in, what gets summarized, what is dropped
  • Models interchangeable behind a boundary, local ones via Ollama included
  • Cost and latency treated as project requirements, not as end-of-month surprises

Mobile & cross-platform

  • A single React Native and Expo codebase, with no drift between platforms
  • Native conventions respected where users expect them
  • Offline state designed in, not added once the reports come in
  • Automated updates and releases, with traceable versions
  • Real products in the stores, not just prototypes: Fast Memo, 1,000+ downloads in 7 languages
  • Open-source components extracted and maintained when they outlive the project

Security, delivery & maintainability

  • Secrets server-side only: no key ever reachable from the client
  • Layered defence on public endpoints: origin, rate limit, CSRF, validation, in that order
  • No user input echoed back in error responses
  • TypeScript in strict mode, with no exceptions and no weakening of the config
  • A CI pipeline that blocks on types, lint and build before every release
  • Code that explains itself: explicit names instead of comments, shared constants against divergence

Want this level of care on your product?

I apply the same standards to client work, from the backend to the mobile app to AI systems. If you need someone who treats quality as a requirement rather than an extra, let's talk.