JavaScript, Lisp and C software grown-up. I thoroughly take pleasure in Emacs, functional programming, Linux systems, programmable split keyboards and barefoot shoes.
I join forces remotely with small and independent teams across Europe for all kind 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. Let's have a chat and build something of value!
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, instead, 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 and succinct 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 with extra headaches. Probably a direct result of computing reaching a wider and wider audience, an audience that can't be bothered with installing software and messing with libraries? That's fair. It wasn't bad enough that we've had trouble deciding where to split functions and modules into sensible logical units. Can we now do it better only call them microservices?Didn't we have enough trouble debugging function calls, must we now do it across the network? In multiple languages? By inventing new protocols and APIs all the time? What a beautiful mess! The distributed, always up, computing on demand, instant updates, nothing to install, is sweet, though!
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. I like it better than meetings, sometimes even better than face-to-face interactions, which is not an advantage.
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 passion: forget it, 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.
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.
Damn the efficiency and correctness police. Sometimes efficiency can be a weakness. I look at many a company's website and thick, 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. 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.
Do things by hand. Every bit of content and markup on this page is written 100% by hand. No framework nor extra tools. 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?