RSSAmplifier

Blog

samir : coffee → nonsense

Samir Talwar's blog.

functional.computerRSS feed ↗10 posts

Latest posts

Fairness in disjunctions

When we last left our little logic DSL, it had grown a monad . I relent Solving the technical interview Solving the technical interview, explained Monadic logic Fairness in disjunctions With that working, let’s turn our attention to another piece of functionality expected from a logic language: fairness. That is, if we create a disjunction between two goals ( g ||| h ), we should sample from the…

LLMs can't program

The word “generative” in “generative AI” refers to what it does , not what it is useful for . But that’s the conclusion. Let’s start from the beginning. Years of ignoring the world I have wondered, for a long time now, why I haven’t written on the topic of generative AI for programming. After all, everyone else is. I recently realised that that’s why. Everyone else is. I have nothing to add,…

Monadic logic

It is a truth universally acknowledged that a data structure in possession of information, must be in want of an extra type parameter. In the last couple of posts, we looked at implementing a simple logic DSL in Haskell. I relent Solving the technical interview Solving the technical interview, explained Monadic logic Fairness in disjunctions It works, but the syntax is a little un-Haskell-like. We…

Solving the technical interview, explained

Let’s talk about Solving the technical interview , and how it all works. You probably want to read that first. And as it’s based on stories by Aphyr, read those too. And there’s a riff by Richard Towers. Reversing the technical interview , by Aphyr Hexing the technical interview , by Aphyr Typing the technical interview , by Aphyr Typescripting the technical interview , by Richard Towers Solving…

Solving the technical interview

With apologies to Aphyr. You heave a sigh and get up from your desk, stopping by the kitchenette for a tea and a biscuit on the way to the meeting room. Recruiting for this role has not been going well, and your manager is starting to get nervous. Nervous is bad. Nervous means more scrutiny, more questions, more micro-management. And nervous means you get nervous too. You can feel your heart beat…

I relent

Every year or so, I start writing a programming language. I never make it very far before giving up, or just getting bored. But I keep coming back to the underlying problems, trying again and again. Last year, I wrote a little database which is missing a programming language. So I figured I should give it another go. But I want this database to be able to compute backwards as well as forwards, so…

Cleave clients from servers

I was once in an interview for a Silicon Valley job. The interviewer, an American, asked me how I found out about the job. I told them that a recruiter contacted me. They replied, “London is a city of middlemen.” It’s true, London is full of people who will sell you their contact book. It’s their asset: who to talk to, and who not to bother with. But compared to Silicon Valley, we 1 are but tiny…

So I'm that age, apparently

I’m 37. Apparently I’m now at that age where I feel the need to make sweeping statements about life, the universe, and everything. So here’s my wisdom, collected over the last year or so. Perhaps I’ll do this every year. Life The three most dangerous words in the English language are “they”, “should”, and “is”. When someone talks about “you”, they are usually talking about themselves in the second…

You're not procrastinating

It’s the end of the year, and many of us, with a week or two with little to no “real” work, take the time to clean up, doing chores we’ve been putting off for weeks or months, making our homes, our workspaces, our lives a little tidier and more manageable. (I finally took the defunct electrical goods to the recycling point, after ignoring them in a box behind my desk for approximately 9 or 10…

The cardinal sin of software architecture

I’ve been conducting a lot of software architecture interviews this year, and I have found that many, perhaps most, candidates fall into the same trap: too much complexity . That is, they know how to stick software together, but when faced with a problem in their design, they intuitively think: “I know, I’ll add another component”. When this new component is extra computation (for example, another…