smallbox

Technical clarity first. Clean implementation after.

Smallbox is a small backend studio for companies that need more than task execution. We study the system, make the hidden structure visible, and build only after the path is clear.

The first deliverable

The report is where the work begins.

Every serious project starts with a System Report. Not because we like documents, but because responsible implementation requires understanding. A software system is more than code — it contains business rules, old decisions, deployment assumptions, third-party services, data flows, user expectations, and parts that may work only because nobody has touched them recently. The report makes those things visible before new work begins.

The System Report is not paperwork. It is the first engineering deliverable.
01

Business goal

PlainWhat you actually want, in your words.

TechnicalThe concrete change request, normalized to scope and outcome.

02

Access and context

PlainWhat we can see, who we can ask, what's in and out of bounds.

TechnicalRepo access, environment access, deployment info, business-rule contact.

03

System map

PlainWhat's there today and how the parts fit.

TechnicalRepositories, services, jobs, integrations, data flow, runtime topology.

04

Business-rule discovery

PlainThe decisions buried in the code that nobody wrote down.

TechnicalImplicit invariants, edge cases, state transitions, ownership ambiguity.

05

Coupling and risk

PlainWhere a small change has surprising effects.

TechnicalShared services, hidden side effects, fragile boundaries, missing tests.

06

Build path

PlainThe order in which things should land so nothing breaks.

TechnicalSequencing, isolation boundaries, what to refactor first, what to leave.

07

Estimate

PlainHonest range with the assumptions written down.

TechnicalPhase ranges with named risks and what would move them.

08

Open decisions

PlainThe questions we need answered before code starts.

TechnicalRequired product decisions, business-rule confirmations, scope cuts.

Even if we do not continue into implementation, the report remains useful. It gives the company a clearer map of its own system.

How complexity becomes manageable

Layered responsibility, not extra ceremony.

We are not architecture religious. We use structure where it reduces confusion, risk, or maintenance cost — and avoid it where it only adds noise. Click a layer to see what lives there, and what doesn't.

ClientFrontend / Admin / External
ControllerHTTP
FacadeCoordination
Business ServiceRules & meaning
RepositoryData access
DomainEntities

End to end

From intake to validated run.

The path is the same on every project. The shape and weight of each step is set by what the report finds — not by a fixed package.

01

Intake

Clarify scope, access, and whether the work can be understood responsibly.

02

System Report

Study the system, surface the rules, name the risks.

03

Scope agreement

Compose the right package from what the report revealed.

04

Implementation

Build inside the system, with shared language and clear seams.

05

Launch

Ship to production with rollback paths, observability, and small surface area.

06

Validated run

Watch it run on real data, real users, real schedules. Confirm the report's assumptions.

What we do

Composed after the report. Never before.

The System Report determines the right package. Sometimes the system is clear enough for direct implementation. Sometimes the first phase is cleanup, testing, or isolation. Sometimes the safest path is a smaller version first.

01

System Review & Clarity Report

The foundation. The report itself, scoped to one area, change, or integration path.

02

Backend Feature Implementation

Bounded backend work, landed responsibly inside the existing system.

03

Data Integration & Batch Pipelines

Vendor boundaries, scheduling, retries, lifecycle tracking, admin visibility. Not just an API call.

04

Cleanup & Isolation

Untangle responsibilities, separate concerns, prepare the system for new work.

05

Testing & Simulation Scaffolding

Integration tests through real layers. Realistic states, not artificial setups.

06

Admin Tools & Dashboards

Make runtime behavior visible. Status, exceptions, batches, content, support flows.

07

Deployment & Runtime Setup

Linux, nginx, systemd, webhooks, backups, health checks. Simple and reliable.

08

AI Development Scaffolding

The structure that lets AI-assisted development stay coherent, bounded, and safe.

Proven in real systems

How we make systems safer to change.

Patterns we use because we have shipped them in production, not because they look good in a deck.

Layered responsibility boundaries

Controller, Facade, Business Service, Repository, Domain. Each has one job. When something is wrong, you know where to look.

Read → Act → Read

The UI reads page state, performs an allowed action, reads the new state. The frontend never invents behavior outside the contract.

Batch pipelines with visible lifecycle

Background work tracks start, end, outcome, and idempotency. If a batch ran, the system knows what happened.

Simulation-based integration testing

Generate realistic state by simulating users for weeks of activity, snapshot the database, then run tests through the same Facade and BusinessServices code production uses. Catches errors that only appear when business rules interact.

AI scaffolding for bounded collaboration

Architecture docs, working notes, context-re-entry rules. AI does not maintain context on its own; we build it for the model.

What we have built

Real systems, end to end.

Projects that show the working method — backend depth, domain modeling, and AI-collaboration discipline.

StockSignal

Production stock analysis platform built end to end.

stocksignal.me

  • 190+ REST endpoints, 480+ signal specifications, 270+ story types
  • 104,000+ stocks in the data pipeline, 35 batch executors
  • PostgreSQL, .NET backend, Next.js public site, React admin dashboard
  • TwelveData, Stripe, DeepL, SMTP integrations
  • Hetzner, nginx, systemd, webhook deploys, scheduled backups
Answers what this company is as a system — not whether the stock will go up.

Simulation-based education platform

Gamified learning system, proven by simulating weeks of student activity through real backend code.

  • Day-by-day simulation: realistic student personalities, weeks of activity
  • Real Facade + BusinessServices code runs every action; time and market data mocked
  • Resulting database state captured as a pg_dump baseline
  • Per test run: throwaway Postgres testcontainer, baseline restored, real DI graph wired
  • Tests resolve real Facades against the restored state; invariants checked after every action
  • Catches coupling bugs across XP, agreements, holdings, and progression
Coupling between business rules can't be caught by testing methods in isolation — so we run the real system on simulated time.

Working With Claude

AI-assisted development as disciplined context management.

  • ChatGPT as thinking and alignment partner
  • Claude as coding partner
  • Documents as scaffolding: CLAUDE.md, architecture docs, working notes
  • Loops, not sprints; correction through conversation
  • Human decides what; AI decides how
AI does not maintain context on its own. Context must be built for it.

What we optimize for

How we work.

  • Understanding before implementation.
  • No blind building.
  • Messy systems are normal — we map them.
  • Ambiguity should be documented before it becomes code.
  • Abstraction is a tool, not a virtue.
  • Clear responsibility beats cleverness.
  • If the system cannot be tested, future changes become risky.
  • Runtime visibility matters; systems should be understandable while running, not only in code.
  • One main project at a time. Focused immersion.
  • Technical risk, explained in plain English.

Who we are

A small studio. Focused immersion.

Smallbox is a small software studio led by Jack G., a senior C#/.NET backend developer with 15+ years of experience in production systems. When useful, Smallbox works with a small number of trusted collaborators — but the process stays focused: one main project, clear ownership, and deep system understanding.

Get in touch

Send your system context.

Send a short description of your system, what you want to change, and what context is available. Useful details: repositories, deployment setup, integrations, database, admin tools, business rules, and the person who can answer product questions.

You'll get a reply on whether a System Report makes sense for your case, what access would be useful, and the likely starting scope.

The better the access and collaboration, the more precise the report.