Konrad K. Puljavin
I cannot work on one piece of something without wanting to see the rest of it. Handed a broken endpoint, I end up reading the thing that calls it, the thing it calls, and the machine underneath, because a problem is rarely sitting where it shows up. That is how I ended up doing infrastructure as well as code. I kept following problems until they ran out of places to hide.
Routine work puts me to sleep and I am honest about that. I am at my best on something nobody has solved in front of me yet, where I have to take it apart to find out what holds it up. The same thing that makes me good at that makes me keep pulling at a system after everyone else has agreed it is fine.
Nothing I build runs for free, and I would rather know the bill before the first line than after the first invoice. A screen that refreshes itself all day, a job that calls a paid service on every load, a page a hundred people open at once: each one carries a running cost, and the design is what decides how large it is. Deciding that afterwards means rebuilding. Deciding it first usually costs nothing at all.
How I work.
The habits behind the projects above, and why they are still running.
I check my own work from the outside
It is easy to convince yourself something works while you are looking at it from the inside. When I finish a change I open it the way a user would, from another computer, over the internet. It usually means I find the problem before anyone has to report it.
When a result looks perfect, I check it twice
I once ran a security check that told me everything was safe. It was not. The tool could not perform the test, so it answered no to every question. A result that comes back exactly as I hoped is now the one I go back and verify. Quietly being wrong is the expensive kind.
Each application is sealed off from the rest
Most security work is about keeping strangers out. I also plan for the day one gets through. On my server every application runs in its own sealed network, with no route to the database or to the other applications, so a break-in stays where it started. It costs nothing to apply early and is painful to add later.
I measure the cost before I build
Before switching on compression for the sites I host, I measured what the server had spare and what it would save. It cut the data sent to each visitor by about seventy percent, at a cost the machine does not notice. The same question decides how an application talks to the services it depends on: one that pulls from several sources every time a page renders will call them far more often than the data behind them actually changes, so caching the result and refreshing it on its own schedule gives the reader the same freshness for a fraction of the calls. A running cost is a design decision, and it is least expensive to make at the start.
I separate what changes from what does not
Permissions are the clearest case. The quick version is a check in the code for who is allowed; then the roles change, and someone has to edit every file that had one. I put the rule somewhere it can be rewritten without touching the code around it. The parts of a system that will move are usually known in advance, and they are worth isolating while it is still manageable.
I would rather be corrected early
I show work while it is still rough. A wrong direction caught on the first day costs an afternoon; the same mistake caught at the end costs a week.
Education.
Degree project
The final project on the programme: a platform for coordinating volunteers, built end to end. Most of the work was in the rules around people's data, deleting an account properly, keeping a history that cannot be edited afterwards, and making sure each person only sees what they should.
Systems Development, .NET
A two-year vocational degree in Sweden, built around working the way companies work: C# and .NET, databases, delivering in short cycles, and two placements inside real development teams.
View diplomaMy own infrastructure
A rented Linux server that I set up and maintain. It hosts every project I built for myself, each one kept separate from the others, with certificates renewed automatically and alerts if something stops responding.