VertivisVertivis ← Back to home

Our engineering approach

How we build systems that hold up in production.

The practices below are how we handle access, data changes, and delivery on the systems we build and support. They are habits, applied the same way on every engagement, so the people who rely on the system can trust it.

Access control

Layered checks, each with its own job.

We don’t rely on the interface to protect data. Permissions are enforced in the services and the database, so each layer adds a check beneath the one above it.

Interface

Presents what it is given

The interface displays the data the services return. Hiding a field on screen is a design choice, not an access control.

Services & APIs

Field-level filtering and write checks

Restricted fields are removed according to the user’s role. On each update, edit rights are checked for every field submitted, and unrecognized fields are rejected.

Database

Row-level security

Where the platform supports it, records are scoped by organization and role in the database itself, adding a second layer of protection beneath the application.

Platform

Identity, audit, and accessibility

Single sign-on through your identity provider, audit trails on records, and accessibility (Section 508 / WCAG) reviewed as part of acceptance.

Changing production data

Every change is visible before it happens.

Data changes in production follow the same steps, so they can be reviewed, verified, and reversed.

  • Preview firstBefore data is updated or removed, we run a query that shows exactly which records the change will affect.
  • Back up and transactChanges run inside transactions, after a backup, so they can be rolled back if something looks wrong.
  • Count and recordThe number of records affected by each step is reported, so the change log matches what actually changed.
  • Readable over cleverWe prefer explicit, step-by-step changes that a reviewer can follow, over large opaque operations.
  • Recovery planEach release includes how to undo it, agreed before it goes out.

Delivery & handoff

Ready for the people who run it next.

  • Tested before releaseAutomated and integration tests run alongside data validation and quality checks.
  • Documented as builtArchitecture notes, data dictionaries, and practical runbooks are maintained with the system.
  • Clean repositoriesBefore code changes hands, we remove credentials and sensitive history and review contributor records.
  • Knowledge sharedWalkthroughs and pairing with your team, plus production support for as long as you need it.

How each practice is applied depends on the platform, the client’s environment, and the agreed scope.