I’ve been using Flickr since 2008. Since then I’ve accumulated: 26000 photos 800 albums 160 Gb of data My photography these days is mainly done on film. Which is to say, there isn’t that many new pictures coming in every day. But the film scans themselves are quite big in size and resolution, and I’d love to keep it that way. Flickr was a fine option for this sort of usage.
It’s been just over a year since I’ve migrated to Voyager as my main keyboard. As the name implies, it was a bit of a journey. Let me document it a bit. Repetitive strain injury is no joke. Along with bad vision this is one of the common injuries in our industry. I’ve been lucky enough to mostly evade it for the first 20 years of my professional career, but it is finally getting…
Unlike a few lucky engineers enjoying tokenmaxxing, most of us are living within the constraints of a token budget. It might be small, it might be big, but it is likely there somewhere. As tokens are getting more expensive, ability to live and deliver within the budget will probably be the leading topic in hiring interviews. Here are a few hints, some more obvious than others, that help me month…
There are famously 3 stages of debugging networking issues. It can’t be DNS Surely it is not DNS? It was DNS DNS is not something we think of when browsing internet. It usually works fine, and is quite transparent. When connection is slow, it’s easier to blame on wifi / mobile signal, bandwidth issues, or server availability. DNS usually “just works”. It is however a…
I’ve been catching up on AI engineering talks from all the conferences that are happening as we speak. Thanks, by the way, for posting all the talks online for free. Last year we went collectively from chats with LLMs to semi-autonomous agents. This year the push seems to be “let your agent loose”. Claude is pushing for looped multi-agents environments. They’ve also…
If anything, I welcome our new AI overlords. They bring joy to my life of a software engineer. Claude Code is great, but with some asterisks. Git and pull requests Claude is amazing with terminal, and that includes Git. Combined with the GitHub CLI gh tool, Claude knows how to check for recent changes, write a great commit message, push changes, and if that fails, rebase your changes. Then, create…
I’m calling this a conference, but with 15000 attendees and 500 speakers it wasn’t something I was truly prepared for. It was big, took a good chunk of a massive historical exhibition hub of West Berlin, and offered something like 15 simultaneous tracks in addition to 2 massive floors of exhibitions with their own mini talks and demos. I’ve been to a similar scale dev events in…
If I had to pick one takeaway from the massive dev conference in Berlin last week it’ll be - adopt agentic product development or go out of business. It might not be that dramatic if you are a massive corporation with a unique know-how, or if you are in a unique business niche. But for a generic product company it’ll be exactly that. Agentic development, end to end, from product specs…
I’m in Berlin this week, and one thing I want to write about is bottle deposits. See, in Germany when you buy bottled drinks, a deposit price is applied on top. By returning said bottle, you get your deposit back. Usually it is around 0.25€ for a small bottle, which is not nothing. This deposit applies to glass bottles, as well as plastic ones. Even thin plastic bottles of chocolate milk -…
Sometimes getting your change all the way to production feels like crossing a finishing line after a marathon. Massive fanfares, you’ve made it all the way to the user. Time to get a cup of tea and pick up next JIRA ticket. When a company is small, or tech stack is young, or all of the above, pushing changes to live is a breeze. No one yet discovered Husky git hooks, or had time to set them…
Tom Blomfield is a bit of a legend here in the UK. In 2016 he founded Monzo bank - digital-first bank with iOS app and no website. Their very first offices were right around the corner from ours at Old Street in Shoreditch, and this is probably why I got my very first Monzo (back then called “Mondo”) bank card back in December 2016. Last week Tom tweeted the above - he has since…
I’m a huge fan of public libraries. This is one of the best things we’ve invented as a humanity - somewhere among the likes of sliced bread and cat memes. Oodi is of course a unique place that has been widely posted about, but only this year I’ve had a chance to visit it. So, without further introduction, let me give you a tour of Oodi. Oodi the central library of Helsinki is…
LP as in Long Play record. Usually 45-50 min long. Sometimes you need a bit of focus. At any given moment there are so many things you could be doing. But to do something well you need to commit to one of those ideas, give it your full focus and stick with it for a period of time. At this point usually you get recommended Pomodoro. Get a kitchen clock in a shapte of a tomato.
My first job out of uni was working for the hottest company in the world. In 2003 FAANG was mostly AG - Apple was sort of around, Google was doing web search and not much else. And back in Finland, we’ve had Nokia. Nokia has been around since the 1800s and is still around today. But 2000 to around 2009 were undoubtedly Nokia’s golden years that it is remembered for today.
Slack is the TikTok of your working day. Originally a simple chat client for work and hobbies (compatible with any alternative IRC client!) - today it can do way too many things. While we usually have detailed guides on how to review a pull request or deploy to production, there is nothing about how to use Slack daily and still love your job. I’ve been burned out by Slack in the past, so let…
They say when interviewing for a job at NASA you are asked to name as many mistakes as you can from a 1998 movie Armageddon. In the UK we could probably do the same, but with the Post Office scandal and the nationwide rollout of the Horizon IT system. And yes, Mr Bates vs the Post Office is a brilliant show, go see it. So, given the wiki article, the show, and the 300 pages long High Court ruling…
Intro I’m a UK based full-stack software engineer and a tech lead with over 20 years of industry experience. I worked in tiny startups, scale up consultancies, and massive worldwide corporations. My first programming language was Borland Pascal on a DOS machine. Let’s talk. Tech skills Programming languages and stacks Hands-on: TypeScript / JS / Node.js / Deno Python Ruby Aspirational:…
I’ve been playing with the new Slack SDK - based on Deno and Typescript. It’s good. Up until now you’d use REST API to build your Slack apps. Sure, there might be a library in your native stack, but under the hood it would still be the same http calls to the same API. Often, quite a lot of those. A complex app would be like building a ship in a bottle - bunch of requests and…
Most of software testing always been fairly deterministic. You’d expect a certain button to be in a certain spot, and behave in a very specific way. Given a very specific input, you assert on a very specific output. Determinism means fragility, and while it takes a lot of time to write such tests, they would also break easily, sometimes even when they shouldn’t. Have you ever written…
I’ve been gradually restoring a 35 years old Acorn Archimedes computer. Gifted by a friend, who used it in their childhood and then fathfully kept it safe in the attic - it is quite a piece of retro computing. The model I have - 440/I - features one of the original ARM CPUs, 4Mb of RAM, RISC OS, a hard drive and a floppy drive. It also has a built-in 8-channel sound and a speaker.
For the past 10 years, I’ve been mostly writing JavaScript. Don’t get me wrong - it pays quite well. And yes, sometimes it would be TypeScript. Or LiveScript. Or ECMAScript. Transpilation became a trend. Abstract Syntax Trees became a hot topic. But it was always you, JavaScript. And the reason - you run in a browser. Other languages always existed, but none of them could be natively…
Github Actions are gaining more popularity, thanks to them being right next door to your repository. Lately I’ve noticed Github also actively suggesting workflow templates based on the contents of your repo, like “hey, I see you’ve got a NodeJS project going, how about we build it here too?”. It’s not a bad options, and my biggest complaint so far is about YAML - like…
One of the most important things you could be doing as a tech lead is making sure there are plenty of sandboxes. This is easily overlooked. After all, you won’t be shipping a sandbox to production. Sandboxes are for play, not for “real work”. When time budget is tight, you cut on play and anything that is not directly relevant for delivery. Having sandboxes however brings up one…
This is going to be partially an appreciation blog, and partially aspirational. Some of my favourite apps and games are made in Ukraine, and there are still plenty of software engineers doing work despite a raging war outside. And they make amazing products, used and praised around the world. Apps and games that I’ve used Grammarly I discovered Grammarly shortly after moving to the UK. It…
Python is one of the most popular languages in the world - not the least thanks to its application in ever growing popularity of ML and data science. As there are a number of tools helping you with a local Python setup, I thought to share best practices and ways of dealing with things like multiple Python versions, libraries and virtual environments. All very much hands-on, and tested at the point…
Hello! My name is Alexander Savin and I’m based in Edinburgh, UK Current job I work at Ki Insurance where we build the future of specialty insuretech. If you are trying to insure a big space rocket, I might be able to explain how that would work. Zero tracking This website will not track your visit in any way. There is no Google Analytics or any other tracker attached. It will not save any…
TLDR: You can run tests on production. It’s the ultimate integration test, but there are a few rules to follow. Software delivery is always full of compromise. You either ship it (slightly) untested, or you don’t ship it at all. There are a number of practices that are considered good and increase chances of your uninterrupted night sleep. It is generally a good idea to write tests. It…
I love chess. It might feel like a predictable game with a limited amount of choice. An average game is only about 40 moves. But thanks to math (and mainly to factorial function) there are more possible chess games than atoms in the known Universe. I had to check that. Apparently there is this thing called Shannon number, saying there are at least 10 to the power of 120 possible games.
It’s been 8 years now since we moved to the British Island, and in all these years most of the island was sort of neglected by us. Life in London is full of downsides, but a major upside was always cheap flights anywhere in Europe and the rest of the world. Literally every country wants to have a flight to London for some reason. So when it was time to pick a holiday destination, it would be…
I’ve been observing this pattern for a while. A company adopts Slack. There is a brief period of fun when default channels are used for general chit chat. Pretty soon an RFC is issued with rules for proper use of Slack for work. Specifically - what should be posted where. More specifically - how to name Slack channels. The rules are adopted with a huge aplomb and everyone starts making new,…
Let’s talk data. An average web app would likely have some sort of a frontend, a backend and a database. The frontend would display the form, the backend would receive the form contents, and a database would be a place to persist the form forever (or at least until a catastrophic failure of a particular region of your instance). Consider a scenario when a user buys a train ticket. We’d…
This blog is not about how to integrate Stripe or arrange payments. This is mostly about how to name your variables. As you know, naming variables is the second most difficult problem in software engineering. Money is a highly sensitive topic, and if you are tasked with the implementation of money related features, there are a few things to consider. This primer will apply to JavaScript-based…
It is time to migrate my self-hosted standalone blog to a more modern engine. This engine is going to be Hugo - a super fast static site generator, which is also super friendly and highly customizable. It might also push me towards learning Go, but we’ll see about that. The original engine this site was running on was a bespoke generator written in LiveScript language about 7 years ago.…
Code documentation has always been a controversial topic. You’ve probably heard “Code is documentation” mantra, and I 80% agree with it. As long as this is just about the code, and just for the coders. This mantra quickly breaks when you have business logic in your code, which needs to be read and understood by, well, business. A natural timeline of events might look something…
“Idempotency is the property of certain operations in mathematics and computer science whereby they can be applied multiple times without changing the result beyond the initial application.” - Wikipedia This might not sound particularly exciting, but it is one of the fundamental tools when building fault-tolerant systems. I believe the very first time I’ve heard about idempotency…
“But is this database atomic?” This is the most common scenario when someone would remember atomicity. However, this is one of the core concepts which is incredibly useful when implementing fault-tolerant systems. It’s good to keep it handy and use when reviewing pull requests. In some cases, it might also be very hard to plan ahead. What is atomicity? Atom is a definition of the…
My current company - a UK energy startup - has always had this ongoing remote work mindset. I thought I’d share a thing or two how we made it work for us. In short - although we are mostly a traditional “work from office” company, for a software developer there’s nothing that would stop you from being 100% productive while working remotely. Step 1: No meetings Wednesdays…
“What, you’re not using Instagram? Where do you post your photos then?” This question came up a few times recently in conversations with my friends, so I thought I’d write a more detailed explanations. I’ve been an active user of Instagram for a number of years. Daily logins, thousands of posts. Never became a proper IG celebrity, or even a micro-influencer - but…
What is your release pipeline? It probably looks something like this. You write some code, add unit tests, maybe an integration test. Run it on your machine, then push to a CI and see if the build is green. Maybe test it on staging if you have one. Then - deploy to prod. What usually happens next is that real-world users break your app. Not deliberately, of course, there’s no pre-meditated…
I wonder if my blog publishing pipeline still work, as the last blog post was about couple of years ago. Time flies. Since then I’ve started a micro blog: http://alexsavin.micro.blog/. This is effectively my replacement for Twitter, as it is still maintaining open Web ideology, and is a nice place to be. Do subscribe, and let me know if you also have a micro blog - I’d be happy to…
Some of my highlights and notes on the recent conference in Bratislava. 3 days, 2 tracks, lots of cake and some Angular. @swannodette on Datomic David Nolen of Cognitec and Clojure gave a good overview of issues we’re experiencing today when implementing mid to large scale apps, before explaining how Datomic database might solve some of them. Some of my thoughts here inspired by his talk. If…
I should probably explain why there are no fresh blogs here. The reason is daily vlogging. For the past 43 days I would film an episode, cut it, and publish. YouTube is my primary platform for now. Every day a small short film is finished and revealed to the world. This takes a bit of dedication, concentration, passion and self organising. Latter one is probably the most important. Editing,…
We’re off to the epic trip in Russia, and I’m implementing a new season of the daily vlog. 5 episodes released so far, much more to go. You can follow our adventures on this YouTube playlist. All new episodes are being added there daily. This is the longest stretch of daily vlogs I’ve ever done. Expect Saint-Petersburg, Cherepovets, Vologda region, small villages, countryside,…
It’s early summer morning. I’m 15 years old. I and my mum are standing in a long crowded queue outside of the embassy of Finland in Moscow. The consulate reception is not opened yet, but the queue is already impressive. Tourists, businessmen, travel agents. Our case is somewhat different - a couple of months ago I was picked as an exchange student to be sent to a foreign country, together with…
TLR means twin lens reflex. Unlike SLR:s, TLR features 2 lenses and a mirror. Most TLR cameras are made for medium format film. 35mm film TLR:s are a rare breed, Agfa Flexilette being one of those. Flexilette itself is a rare find. It’s been manufactured in 1960-61, succeeded by Agfa Optima Reflex camera. Agfa struggled to compete with the growing range of SLR cameras and gave up after producing…
There are so many words written on the topic of Brexit that I was going to just ignore the issue and move on. Especially since I have no vote on the matter. However, I live in the UK now. I pay taxes. And I genuinely love this place. Well, mostly London. But also rest of the country, the bits I’ve seen. The reason I live here is my Finnish passport. I was born in Russia, but then moved to…
One of the basic needs when dealing with governmental services for a person is to prove your current place of residency. It may sound trivial, but there are multiple approaches to solving this problem. In the UK it is called “proof of address”. It is always required when you want to: Open a bank account Register with a local surgery Change your address details with a bank Apply for a travel visa…
I’ve got my CV1 order now about 2 months ago and been playing with it semi-actively. It’s a solid piece of experience, it works, and there is good selection of content. Ordering In January Oculus did that famous announcement of a pre-order date for a consumer version. They had a countdown on a site. I think it was around 4pm in the UK when it stroke 0:00, and the whole Oculus site went down.
This post was not sponsored by Brompton. I bought it with my own money. Brompton is a locally made brand of foldable bikes. They are praised for easy folding and tiny amount of required storage space. They are also very well built and suppose to last for years. I’be been biking all my life but never owned a foldable before. You can see Bromptons everywhere, often with well dressed people riding…
We’re back from the Netherlands. Our base was in Amsterdam, but we also managed to get out of town and travel to a few locations around that beautiful country. For one week I also made daily video log episodes, all of which are now available for watching. As usual, everything is filmed, cut and released during the same day. Day 01: Gatwick to Amsterdam We get through the morning rush hour in…