JavaScript, Lisp and C software grown-up. I thoroughly take pleasure in Emacs, functional programming, Linux systems, programmable split keyboards and barefoot shoes. Erlang teenager.
I join forces remotely with small and independent teams across Europe for all kinds of software activities related to, but not limited to Node-based microservices and distributed systems. I take on short-term and project-based contracts through my single-member company.
Things move quickly in a live system. JavaScript allows me that. I can abuse its respect for functions to write concise and abstract code with it, composable software with functional programming influences from fantasy-land. I'm not scared of that absolute freedom, I avoid sticking types and unit tests too early in the project and bring everything to a halt. Explore it first, build it after!
I like to manually test the core functionality, those pure functions and project ideas that never change, like math never changes once you get it right. I like to keep the codebase small through exploration and constant iteration which takes a lot of effort. If I get that right, the rest is assembling and reassembling the pieces. Then tearing them down. And reassemble. Then tear down. Then go for a walk. Then they fit.
A revelation: distributed systems are the function calls of the old but across networks and with extra headaches. We stil have trouble deciding where to split functions and modules into sensible logical units, now there's the extra challenge with splitting functionalities into microservices. Most of the time we're still building monoliths, as I see, only with extra calls, tools, APIs and harder to deploy and debug.
My nuclear advantage: the written word. It's a hard thing to do it right. It's exhausting work, mentally. I'm proud to do it right sometimes, work-related or pleasure-related. There's still a lot to learn and experiment with. I wondered if I should write my personal stories here or just keep all this blog professional. But I'm human. I have feelings and struggles. And joys outside the profession. So I've decided for sharing. I'm looking for other humans to work with not just machines on auto. That would probably sift a good portion of companies and teams I wouldn't be happy working with in the first place, so why pretend.
A strange feeling: I've worked with C for many years and the teams were more organized even though we've had ancient, dumb tools. Or maybe just because of that? Or maybe because the industry was less flashy, less prone to golden goose dreams and thus poorer? You tend to spend less when impoverished and don't embark on adventures beyond your means. I don't know, really.
I'm proud of my open-source projects in Lisp, mostly packages for Emacs, born out of pleasure and necessity.
On work and passion: one's passions and job should be two different things, slightly overlapping. What I get payed for and what my hobbies and pleasures are, are two different matters. The example I like to give myself in this regard: a mechanically-inclined and adventurous individual who eats cars for breakfast so they drives a taxi because a taxi is a car. But you have to mind the speed limit in that business, be respectful to your passengers, no sudden breaks, keep a clean car, take the shortest route. No speeding, no screeching of wheels, no modifying the engine, no sawing off the roof, no off-road driving, no exploring the country. Just driving around town with 50km/h in a nice shirt. That's not a love of cars! That's using a car to earn a living. I write software, professionally, to earn a living.
Damn the efficiency and correctness police. Sometimes efficiency can be a weakness. I look at many a company's website and think, yes this looks right. It is correct. Has everything in place. But it somehow feels void, empty, soulless. It looks just like all the rest of the websites out there. Similar to how the majority of the articles on the internet on important topics (or the ones occupying the top spots from the search engine's point of view, at least): they use the right words, the right sentences, they put the subject matter into perspective, ask the right questions, deliver the right answers. But they might be written by robots as far as I'm concerned. Maybe they even are. The person that wrote the piece has no soul into the subject. They're just professional writers, doing a job. They write in the third person, objective, correctly, bland.
I like the repetitive, manual and copy/paste methods sometimes. Every bit of content and markup on this page is written 100% by hand, for example. I'm not using any framework nor extra tools. Maybe it takes a bit longer but there are less tools involved and the feeling of working on it is much nicer .Code duplication is fine sometimes. Copy/paste and day-long marathons once or twice a year are fine, if I must, than rely on some tool that breaks in mysterious ways. When a simple tool fails, at least I understand the failure and can apply pressure in the right spot to resurrect it.
Outside work: Summer time is the season for road-biking, hiking, the smooth roads and the shady forests. Winter is for sleep, reading and thinking. Autumn is for filling up the jars with jams and pickles. How about spring? I don't know. Awaiting for new beginnings, maybe?