Arsenal F.C

Joined October 2020
Photos and videos
ibukun retweeted
TIL about a race condition bug in a radiation therapy machine called Therac-25 that caused the deaths of 3 patients. Therac was a radiation therapy machine for treating cancer patients. It had two modes: electron beam for shallower treatment, and high-energy x-ray/photon for deeper treatments. The older models of the machine had hardware interlocks as safety mechanisms to prevent any bad configuration from ever happening. Then came Therac-25 that removed many of the hardware interlocks in favor of implementing them in software. There was a race condition in which if an operator entered the wrong mode (e.g. x-ray) and then switched it quickly within 8 seconds, the mode would not be updated. As a result, the patient could end up receiving massive overdose of radiation. Between 1985-87, six such accidents were known to have occurred, leading to the death of at least 3 patients. Wikipedia notes this as a case study in software engineering and the danger of engineer overconfidence.
12
38
304
20,477
ibukun retweeted
In whatever you do, never stop reading books.
9
21
56
3,190
ibukun retweeted
Spotify Engineering Blog Check here: engineering.atspotify.com/
1
2
21
3,779
ibukun retweeted
I very much relate to this .... started implementing papers in late 2024 and still I implement few there is a lot of learning in those papers ... the constraints and solution to those .... soo for anyone starting with papers you can checkout these papers ... [1] scribd.com/document/36122501… [2] carlosproal.com/ir/papers/p1…
Reading academic papers is one of the best ways to extend your engineering knowledge. There's abundant cool research being put out by universities and research labs. Combining this with the iconic ("historic") papers from the past 50 years lets you go DEEP. If you want to become an expert on something, do a weekly / monthly paper read.
5
33
444
18,689
ibukun retweeted
The only way to learn a new programming language is by writing a program in it.
4
1
23
434
ibukun retweeted
Performance is the currency of computing. MIT 6.172 Performance Engineering of Software Systems, Fall 2018.
Your algorithm isn't always the bottleneck. Two 4096×4096 matrices, same triple loop start to finish. Pure Python takes 6 hours. Hand-tuned C does it in 0.41 seconds. That's 50,000× and the math never changed. Python managed 6 MFLOPS on a machine that peaks at 836 GFLOPS. That's 0.0007% of what the chip can do. Reorder the loops to i, k, j and turn on -O3, and you're already at 54 seconds. The cache stops thrashing and the compiler vectorizes the inner loop, and that's 390×. Spread it across 18 cores with OpenMP: 3 seconds. Then write the AVX by hand, four doubles per instruction, and you're back at 0.41. At this size it beats Intel's own MKL.
9
73
590
28,746
Many engineers default to using UUIDs as primary keys in PostgreSQL without considering the trade-offs. The problem? Traditional UUIDs are random. And random values don't play nicely with B-Tree indexes. Every new insert can land in a completely different part of the index,
1
1
1
9
causing page splits, fragmentation, and more work for PostgreSQL as your table grows. At a few thousand rows, you'll never notice. At 10 million rows, you probably will. That's why many teams are moving towards ULIDs and UUIDv7. You still get globally unique identifiers.
1
7
But you also get time-based ordering. New records are inserted closer together in the index, which means less fragmentation and more predictable write performance. Small change. Big impact. Especially when you're operating at scale
2
ibukun retweeted
A Dutch computer scientist gave one lecture in 1988 arguing that programming is unlike anything humans have ever tried to do before, and the reason most software on earth is broken is that we are still teaching it as if it were a hobby. His name was Edsger Dijkstra. He won the Turing Award in 1972. He invented the shortest path algorithm that every GPS on earth still runs on. He wrote the paper that killed the goto statement in modern programming languages. He spent 50 years quietly being one of the most consequential thinkers in the entire history of computer science, and he was in a very bad mood by the time he stood up at the ACM Computer Science Conference in 1988 to deliver the lecture that almost nobody at the conference wanted to hear. The lecture was called On the Cruelty of Really Teaching Computer Science. It is now one of the most cited papers in the entire history of computing education. It was filed in his archive as EWD1036, handwritten in his careful fountain-pen calligraphy because he refused to use a typewriter and famously refused to use email for the rest of his life. The argument was simple and uncomfortable. Programming, Dijkstra said, is a radical novelty. Not a new tool. Not a new skill. Not a faster version of something humans already knew how to do. A genuinely new category of intellectual activity that has no real precedent in the entire history of the human species, and our brains have not been built to handle it. Here is what he meant by that. When a programmer writes a line of high-level code and presses run, that single line might trigger a billion operations at the level of the silicon. The ratio between the abstraction you are working in and the physical events you are actually causing is roughly one billion to one. No engineer in history before computing ever had to reason about a system spanning that kind of ratio inside their own head. A bridge builder reasons about steel beams and the physics of weight. A surgeon reasons about organs and the physics of tissue. A chemist reasons about molecules and the physics of bonds. All of them are working inside ratios of physical scale where the largest and smallest things they need to think about are within a few orders of magnitude of each other. A programmer routinely writes one line that orchestrates a billion physical events on a chip, and is expected to predict the behavior of all of them in advance. Dijkstra argued that the human brain was simply not built for this. Every intuition we have evolved over hundreds of thousands of years comes from a world of medium-sized objects behaving in continuous ways. Computing is the opposite. It is discrete, not continuous. A program that runs perfectly a billion times can crash on the billion-and-first iteration because of a single bit. A single character missing from a line of code can take down a power grid. There is no margin. There is no graceful degradation. The system either works or does not, and the only way to know is to actually run it. This was the part of the lecture where Dijkstra made everyone in the room uncomfortable. He said the way computer science was being taught in universities was a quiet disaster. Professors were teaching programming the way carpenters teach woodworking. With examples. With metaphors. With analogies to things students already understood. Files are like folders. Memory is like a desk. A function is like a recipe. Dijkstra said this was actively making it harder for students to think clearly. The whole point of a radical novelty is that there is nothing in your past experience to compare it to. The moment you start reaching for metaphors, you are smuggling in old intuitions that do not apply, and those intuitions will betray you the first time you try to reason about a system the metaphor was not built to describe. His exact line was this: the usual way in which we plan today for tomorrow is in yesterday's vocabulary. And yesterday's vocabulary, he argued, was killing the field. The reason most software is broken is downstream of this single misunderstanding. Programmers are taught to think of code as a craft. Something you get a feel for. Something you pick up through practice. Something where intuition gets sharper with experience. Dijkstra said this is exactly backwards. Programming is not a craft. It is closer to mathematics than to carpentry, and the moment you treat it as a craft, you guarantee that the software you produce will be full of the kind of bugs that craftsmanship cannot catch. The fix, in his view, was to teach programming the way mathematics is taught. You should be able to prove your program correct before you run it. You should reason about your code formally, the way a mathematician reasons about a theorem, not the way a carpenter feels their way through a joint. The students who learned this way, he said, would walk out of their classes with a kind of confidence that no amount of typing practice could produce. The lecture was published in Communications of the ACM in 1989. The field did not listen. Universities kept teaching programming the same way. Software kept getting bigger. Bugs kept compounding. By 2026, almost every piece of software on earth has known security vulnerabilities, undefined behaviors, and edge cases that nobody has ever proven safe. The doom that Dijkstra warned about in 1988 is now the default condition of the digital world we have built. The deeper lesson is the one most readers miss the first time through. Dijkstra was not just talking about software. He was making a much bigger point about how humans learn anything that is genuinely new. The instinct to translate the unfamiliar into the familiar is the most natural thing in the world. It is also the single biggest obstacle to actually understanding something that has no precedent. If you keep reaching for analogies, you will never see the new thing clearly. You will only see your old framework projected onto it. This is happening right now with AI. The same instinct that made people learn programming through metaphors of files and folders is making people understand large language models through metaphors of brains and people. Almost every framework being used to describe AI in 2026 is borrowed from a previous domain. None of them quite fit. The few people who are actually building useful intuitions about how these systems work are the ones who have done what Dijkstra recommended forty years ago. They have set down the old vocabulary. They have looked at the new thing on its own terms. They have accepted that the radical novelty is radical for a reason. You are not slow. You were taught a discipline as if it were a hobby. The cruelty is real. The fix is still available.
93
340
1,729
285,720
ibukun retweeted
We just crossed 4,000 backend engineers in the backend community 🎉 To celebrate, we are doing a ₦350,000 giveaway. Prize split: - ₦150k - ₦100k - ₦50k - ₦25k - ₦15k - ₦10k This is sponsored by: - Myself - @_deven96 , creator of Ahnlich, an in-memory vector database for semantic search: ahnlich.dev - @_289volts, who is giving free credits for on remoteworkpadi.com, a platform that accelerates your job search success rate at the speed of light But this is not just a giveaway. I am also using this to start building better engineering statistics, hiring insights, and a stronger talent pipeline for Nigerian/African software engineers. To enter: 1. Follow me (important) 2. Repost this 3. Fill the engineer profile form: forms.gle/iYvLTz7sstcJWxkt6 The form helps with: - engineering statistics - hiring opportunities - salary and stack insights - better visibility for engineers in the community Winners will be announced on 12th June 2026.
15
187
102
5,445
ibukun retweeted
You need to adopt the concept of excellence and trash cheap appraisals or dopamine. Don’t build rubbish softwares all in the name of shipping fast, put your head down and actually learn. Twitter no be real life.
11
39
178
4,906
ibukun retweeted
May 11
I'm open to new opportunities. backend (distributed systems) role. primarily golang some c little bit of rust too refer me or dm me.
14
96
392
15,208
ibukun retweeted
Most people quit because they forget that you have to be bad at something before you can be good at it. It's so obvious. You suck. Of course you're not going to win in 2 weeks. But if you can learn to enjoy extended periods of failure, you will make it very, very far in life.
554
1,887
12,442
593,519
ibukun retweeted
Apr 29
The problem I see with AI usage is that it has inflated the egos of a lot of devs. They don’t read books, docs and now they don’t even read the code they commit. If you’re wondering the type of devs that will be 'replaced' by AI, these are the devs. They don’t even know that they have knowledge gaps because they can very easily run to Claude or codex and type a prompt. I think the best way to understand this knowledge gap is to have a mock interview with a more experienced engineer where you’re free to use ChatGPT/Claude and have 30 seconds to think (prompt).
6
13
116
4,041
ibukun retweeted
13 Dec 2022
Why do you stay up late every night when you already have a job? Me: When I was still an undergraduate, I read as though my life depended on it even though I had no assurance of getting a job after graduation. Now, I am in a career path that rewards hard work, why I go sleep?
2
18
125
ibukun retweeted
Apr 11
Until it is mathematically impossible to clinch the title We move on
4
2
2
144
ibukun retweeted
Am I disappointed? Yes. Will I ever stop supporting Arsenal? No. I love this team, and no matter what phase they’re in, nothing will ever shake that loyalty. ❤️🤗
167
734
2,940
52,428
ibukun retweeted
Software engineering fundamentals are more important now than ever. I don't care what any influencer or CTO has said. Good fundamentals means you can direct AI to write more productive code for you. Bad fundamentals means your AI-written code will be a liability.
60
86
898
23,882