Services Scope and pricing
What I build, and what you get when it is done.
Every project ends the same way: full source, build instructions that have been run on a clean machine, and a walkthrough. There is no hosting plan to sign and no part of the work that only I can rebuild.
01 Windows, packaged
Desktop applications
Installers and portable executables that run on a machine with nothing installed on it. Real windows, real file handling, no browser tab pretending to be an app.
Built with Electron or plain Node where a window is genuinely needed. You get both an installer and a portable build, an application icon generated from real geometry rather than a stretched screenshot, and a packaged executable that has been launched and used on a clean machine before it reaches you.
02 Kotlin or WebView
Android applications
Signed APKs, background services that survive the battery optimiser, and the honest conversation about what the platform will and will not let an app do.
Native Kotlin when the app needs the platform, or a WebView shell when the interface is the product and the size matters. Foreground services, boot receivers, file providers and share targets are ordinary work here. So is telling you, before the quote, which parts of Android will refuse to do what you want.
03 Node, zero dependencies
Command line tools
Scanners, linters, generators and converters that install with one command and keep working, because there is no dependency tree underneath them to rot.
Node with no dependencies, which means it installs in one command with nothing to resolve, runs the same way in a year, and cannot be broken by a package you never chose. Tests, a real help screen, and output designed to be read by a person as well as piped into something else.
04 Static, fast, indexable
Websites and portfolios
Hand built pages with real metadata, a sitemap, a custom error page and no framework tax. This site is an example of the output.
Static pages with hand written markup: unique titles and descriptions on every page, breadcrumbs, structured data, a sitemap, a custom error page, and images that carry proper alternative text. It loads on a bad connection because there is nothing to load.
05 Node, Kotlin, Discord
Small servers and bots
HTTP APIs, long polling, signalling servers and chat bots. Small enough to read in an afternoon and cheap enough to host on anything.
Small services that do one job: an HTTP API, a long polling room server, a signalling server for peer to peer video, a Discord bot. In memory where that is honest, on disk where it is not, and small enough that you can read the whole thing before deploying it.
06 Scanners, log tools
Security and analysis tooling
Vulnerability scanners, malware triage and static analysis. Tools that name what they found instead of returning a number you cannot act on.
Scanners and analysers that name what they found. A finding that says "suspicious" is not actionable. A finding that says which family, which signature and which line is. Written to be run in a pipeline and to fail loudly rather than quietly.
07 Money
How pricing works.
Fixed price per project, quoted after a scope conversation that costs you nothing. You see the number and the delivery date before any work begins, and the quote names exactly what is included so that the boundary is written down rather than remembered differently by each of us later.
Scope changes are quoted in the open, before they happen. Bugs in what was agreed are fixed at no charge. If a project turns out to be a bad fit halfway through, you keep everything built to that point along with its source.
For work that has no clear end, an hourly rate with a monthly cap works better than a fixed price, and I will say so rather than pretending a moving target is a fixed one.
More answers in the questions section, or ask something specific.
Get a number before you commit.
Describe the project in a paragraph. You get a plan, a fixed price and a date, and none of it costs anything until you say yes.
Reply within 24 hours on weekdays. Taking new projects.