Why I Build Independent Software: From the Commodore 64 to Today
READY. prompt and the blinking light-blue cursor.Some archives can't be found online. Mine begins with a light-blue cursor blinking on a cathode-ray screen, forty years before anyone invented the word "cloud". The Construct says that's prehistory. I say it's the reason I'm still here building, while entire platforms have gone dark around me.
Ten years old, one blinking cursor
My first machine was a Commodore 64. There were no app stores, no frameworks, no Stack Overflow: there was a READY. prompt and a manual. If you wanted the machine to do something, you taught it yourself — in Basic first, and then, when Basic got too slow, in machine language[1], writing straight into the processor's registers.
That imprinting never left. Anyone who learned this way carries two convictions: that every machine can be understood all the way down, if you have the patience to descend far enough; and that between you and the result there is no mandatory middleman. Those are the two convictions all of Survival Apps is built on.
The detour that wasn't a detour
Then life took another road, or so it seemed: a degree in Biological Sciences, a PhD in Pharmacognosy[2], years of work in different sectors — automotive, insurance, pharmaceuticals. The code was always there, an evening hobby and an undeclared work tool, from Windows all the way to the final move to Linux.
In time I realized it wasn't a detour. The scientific method and programming are the same trade with different materials: you formulate a hypothesis, build an experiment, observe what actually happens — not what you wish would happen — and document everything, failures included. A bug is an experiment with an unexpected result. A refactoring is a literature review. This blog applies that method in public.
What "independent" means
Independent doesn't mean doing everything yourself on principle. It means choosing tools and architectures that stay in your hands even when the context changes. Over the years I've seen the same movie too many times: a "free forever" service that shuts down, an API that raises its price tenfold, a no-code platform that deprecates the very feature a client's workflow was built on. Those who depend, suffer. Those who build, adapt.
In practice, for me, independence translates into very concrete criteria:
- ESSENTIALISM — the best dependency is the one you don't add. HTML, CSS, vanilla JavaScript where that's enough; Python and Flask where a server is needed; SQLite where data has to persist
- READABILITY OVER TIME — the code must be understandable five years from now, by me or whoever comes after, without having to rebuild an extinct ecosystem of build tools
- PORTABLE DATA — a SQLite file can be copied, read, and inspected with standard tools. No proprietary formats, no database that lives only inside a service
- REPRODUCIBLE DEPLOYMENT — every project must be able to be reborn on a new machine starting from the repository and a README, with no steps passed down by word of mouth
- DOCUMENTED ERRORS — the portfolio includes what went wrong. That's where you see how a person really works
> 1985: BASIC + machine language, C64
> 1990-2020: Windows → Linux, self-taught
> education: biology + pharmacognosy PhD
> today: python / flask / sqlite / vanilla-js
> principle: THOSE WHO CAN BUILD, SURVIVE
Frequently asked questions
What does "independent developer" mean in this context?
Choosing tools and architectures that stay in your hands even when the context changes — not depending on a "free forever" service that can shut down or change its price overnight.
What tech stack does Survival Apps use?
HTML, CSS and vanilla JavaScript where they're enough; Python and Flask where a server is needed; SQLite where data has to persist — always aiming for essentialism and portable data, as in the case study of the personal dashboard.
How does the author's scientific background relate to programming?
The same method with different materials: formulate a hypothesis, build an experiment, observe what really happens and document everything, failures included.
The cursor is still blinking, forty years later. It just got faster — and stopped being light blue.
May your code survive the apocalypse.
Notes
- Machine language — the numeric instructions executed directly by the processor (on the C64, the MOS 6510). Programming at that level means personally managing memory and registers, with no intermediate layer. ↑ back to text
- Pharmacognosy — the discipline that studies active principles of natural origin (plants, fungi, organisms) from which many drugs derive. A fully experimental science: extraction, analysis, verification. ↑ back to text
SURVIVAL APPS