Writing
Longer pieces. The short opinions still go on LinkedIn.
You solved the Riemann Hypothesis. Now do your taxes.
A million-dollar maths prize lands in a Romanian bank account. The 1973 treaty everyone assumes will help doesn't.
What the LLMs actually changed
We had machine learning in production at eJobs.ro for years before any of this was called AI. Skill classification and occupation taxonomies, vectorisation, …
Why I took on Danish
I’ve been treating language learning as a gym for the mind since 2013, when I took German. Every so often I get the itch for another session. Last month I …
How to use Tensorboard inline in Jupyter Lab (or Colab)
After many useless searches on the internet and using all the most capable LLMs out there, I couldn’t find the solution to the problem in the title. First let …
ChatGPT system prompt update
We all have seen a few days back how simple it was to convince ChatGPT to reproduce its system prompt. Since then, there was an attempt to stop people from …
Dynamic DNS with CloudFlare
Here’s a simple bash script to keep your DDNS updated: #!/usr/bin/env bash # Create this in the CF UI API_TOKEN=********************************** # This is …
Browser hot-reloading for Go
Software engineers coming from a Javascript/Typescript background are accustomed to having their web apps auto-reload when they save a change in their code. …
Simplicity is the ultimate sophistication
Simple things are not banal. They’re the most elegant thing available, and in software they’re also the cheapest. Dijkstra put the economics better …
Moving away from PHP at eJobs
Business issue faced At the end of a rewrite of eJobs.ro, Romania’s largest online recruitment marketplace, we needed to migrate the current website data …
How I ended up learning Norwegian
I was learning Russian on Duolingo. Then Russia invaded Ukraine and I couldn’t open the app any more. Nothing dramatic happened, I just didn’t want …
Nobody describes the same job the same way
An employer writes “Analist / Teste”. A candidate writes “QA engineer”. Same job. Zero words in common. That’s the structural …
Don't call the model from your application
The hard part of machine learning in a marketplace is not the model. It’s that everything you’ve embedded is already out of date. At eJobs.ro both …
What's left of Agile?
Agile was seventeen people in a ski resort in Utah in February 2001 who couldn’t agree on much. They agreed on a name, four values and twelve principles, …
A botnet summer story
Sixteen days, five wrong answers, and a default value that was set when people still used modems. This is what I did on my holiday in July 2020. 14 July On …
Event driven programming
Programming reactions to events is mostly a UI idea, and it has been slowly moving into the backend for years. I think it should move faster. The shape of it …
How to be happy!
Happiness, in the broad sense, is a label for a family of pleasant emotional states: joy, amusement, satisfaction, gratification, euphoria, triumph. …
When the output is somebody's application
We score candidates against jobs. A recruiter opens a role and sees applicants ranked by how well they fit it, and that score is computed by a model. It …
Every project gets two dates
Most projects carry a single date: the day the thing ships. That one date is doing two separate jobs, and when it slips you can’t tell which of the two …
Predictions instead of estimates
Ask an engineer how long something will take and you get a number. The number is a feeling. It comes out of how well they slept, how recently they were burned …
What I'm changing at eJobs
A year into running engineering at eJobs.ro, here’s where I’m taking it. Off the servers we install by hand Docker first, then Kubernetes, which I …
Choosing an orchestrator
We’re moving to containers, which means picking something to run them. Here’s the shortlist and why I landed where I did. The four worth considering …