Software architecture, discovery and MVP planning
Software architecture, discovery and MVP planning covers a new product, or a system that has outgrown its first design. nandsec defines the requirements and user journeys, models the data and records each architecture decision. Each design is threat modelled before any code is written, and its security controls become part of the architecture.
Deliverables
- Requirements and user journeys, written down and agreed
- A domain model and database design
- Architecture diagrams with the reason for each decision
- A scoped MVP and a delivery plan
- A threat model before the first commit
How it runs
We run workshops with your team and deliver written documents you own.
Full-stack application development
Full-stack application development covers web applications and internal tools, from the front end to the back end, database and hosting. nandsec builds authentication, authorisation and session handling into the design, and ships each feature with end-to-end tests. Applications can include AI features such as retrieval-augmented generation and tool calling.
Deliverables
- Front end, back end and database built together
- Authentication, authorisation and session design
- AI and LLM features, such as retrieval and agents with tool access
- Unit, integration and end-to-end tests in CI
- Documentation your team can maintain
How it runs
We work in your repository under your review process or as part of your team.
Back-end and API development
Back-end and API development covers APIs, services and data pipelines in Rust, Go, Python and TypeScript (Node.js), on PostgreSQL or SQLite. nandsec defines each API in an OpenAPI or GraphQL schema, and builds idempotent endpoints, versioned migrations and queues.
Deliverables
- REST and GraphQL APIs with published schemas
- Database design, migrations and query performance
- Queues, data pipelines and third-party integrations
- AI and LLM integration through provider APIs
- Property-based and integration tests
How it runs
We agree the API contract first and build against it.
Front-end, interface and UX design
Front-end, interface and UX design covers interfaces in TypeScript with React or Svelte, built on accessible HTML and CSS. nandsec designs the interface, then builds it as a component library with a strict Content Security Policy.
Deliverables
- User research, flows and wireframes
- Visual design and a component library
- Accessibility to WCAG 2.2 AA
- WebAssembly where the browser needs native speed
- Desktop apps with Tauri, Electron or native toolkits
How it runs
You review clickable prototypes before we write production code.
Mobile app development
nandsec focuses on modern mobile app development. We cover applications for iOS and Android, native in Swift and Kotlin, or cross-platform in React Native or Flutter. nandsec stores credentials in the iOS Keychain and the Android Keystore, and builds offline sync that keeps data encrypted on the device.
Deliverables
- Native or cross-platform, chosen for each app
- Secure storage of tokens and keys on the device
- Offline use and sync with your back end
- App Store and Google Play releases
How it runs
We set up the build and release pipeline first.
Systems programming
Systems programming covers services, libraries, command-line tools and WebAssembly modules in Rust, Go and C on Linux. nandsec writes memory-safe code where the language allows, and runs sanitisers and fuzzing in CI on the rest.
Deliverables
- Libraries, daemons and command-line tools
- Developer tooling and build automation
- WebAssembly modules
- Fuzzing and memory-safety checks in CI
How it runs
We profile before we optimise and keep the benchmarks in the repository.
Code review, refactoring and modernisation
Code review, refactoring and modernisation covers a codebase that has become hard to change. nandsec adds characterisation tests first, then refactors in small steps. Where a rewrite is needed, nandsec migrates the code to another stack, such as PHP or Java to Go, Rust or TypeScript.
Deliverables
- A code and architecture review with a ranked list of problems
- Refactoring in small, tested steps
- Performance profiling and optimisation
- Legacy migration in stages
How it runs
Each change is delivered as its own reviewable step.