Temitayo Adefemi

temitayoadefemi [at] gmail [dot] com

Temitayo Adefemi

Temitayo Adefemi is a computer scientist and mathematician. He enjoys reading, writing, and writing code — although he doesn't write as much of it as he used to, given the prevalence of AI coding agents. His interests run across computer science, philosophy, finance, physics, mathematics (particularly applied mathematics), economics, and much else besides.

His work sits close to the machine: parallel and high-performance computing, computer architecture, hardware/software co-design, compilers, and dynamic neural networks. Recent papers look at when MPI derived datatypes actually pay off in communication-bound stencil codes, how MPI, OpenMP and hybrid parallelism compare on a 3D Jacobi solver on ARCHER2, and how much of a convolutional network a single sample really needs to visit. He reviews for IEEE Transactions on Parallel and Distributed Systems, the Journal of Parallel and Distributed Computing, and Parallel Computing.


Short bio

I've been interested in computer science and mathematics since I can remember, and I've always been curious about numerous subjects. I started writing code in Python, but my first career originally started in business rather than anything technical.

After graduating from Coventry University (Coventry, UK) with a degree in Business Administration, I went on to do an MSc in Business and Management at Aston University (Birmingham, UK), where I finished in the top 5% of my class and wrote a dissertation on the relationship between academic motivation and the Big Five personality model. I expected to spend my career somewhere in strategy or management consulting.

That didn't happen. The programming I'd been doing on the side had quietly become the thing I actually cared about, and by 2021 I'd talked my way into a role as a Senior Backend Engineer at Union Maritime Agency Limited, writing server-side systems in Python and Go and leading DevOps work on their cloud infrastructure. I later joined Mansa as a Senior Software Engineer, building data processing pipelines in Python and C-based tooling for real-time analytics. Somewhere in that period I joined Andela at 21.

The deeper I got into building systems, the more the interesting problems turned out to be the ones underneath: how memory is actually laid out, why a program stops scaling at sixteen cores, what the hardware is really doing. So I went back to school again, this time for an MSc in High Performance Computing with Data Science at the University of Edinburgh and EPCC, where I worked on MPI, OpenMP, and performance programming on ARCHER2 and Cirrus, and was awarded the EPCC Dissertation Scholarship.

Since then I've been writing papers on parallel systems, MPI derived datatypes, and dynamic neural networks — including Juliet, a trie-structured architecture that routes each sample through only the parts of the network it needs — and reviewing for TPDS, JPDC, and Parallel Computing. It turns out the long detour through business wasn't wasted: it just took me a while to notice that the questions I actually wanted to answer were about computation.


Preprints

My full list is on my Google Scholar page.

Juliet: Per-Sample Conditional Branching for Efficient Convolutional Networks was my MSc dissertation at EPCC, advised by Dr Adam Carter. It's a trie-structured architecture with learned per-node routing and online growth and pruning, evaluated on CIFAR-10 with ResNet-18, EfficientNet-B0 and DenseNet-121, and on ImageNet-1K with ResNet-101. At ImageNet scale the best configuration reached 27.1 top-1 accuracy points per GFLOP, ahead of SkipNet, ConvNet-AIG and BlockDrop.


Code

Most of what I write lives on GitHub. A few things I keep coming back to:

I've also contributed to Kivy and Plyer.


CV

My full CV is here.