The real cost of living, city to city

Mike's Notes

Got this from reading Vitaly Friedman (Smashing Mag) on LinkedIn. Will need to know what the cost of living is around the world. For contractors, volunteers, interns, etc.

Smashing Magazine is a fantastic resource for CSS, designing accessibility in web UX, design systems and much more. Has a ton of references to useful resources. I follow it daily to build Pipi UX.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Smashing Magazine
  • Home > Handbook > 

Last Updated

10/06/2026

The real cost of living, city to city

By: Vitaly Friedman
LinkedIn: 03/06/2026

Vitaly is the founder and editor-in-chief of Smashing Magazine since 2006, an online magazine for designers and engineers, where he helps curate friendly, inclusive UX conferences (SmashingConfs).



Cost of Living and Quality of Life Comparison (https://cityparity.com), a lovely tool to decide if a move from one city to another is worth it — and compare cities against take-home pay, childcare, healthcare and social safety net. Designed to help answer one single question: "If I take this offer in another country, what salary do I need over there to keep my life roughly the same?"

1. Every City Can Be a “Perfect” City

Every city has its own advantages and disadvantages. Living in Europe, I sincerely appreciate the quality of healthcare and a social safety net. Of course it comes at a cost, but it doesn’t surprise me much that Scandinavian countries are happy to pay larger contributions to make sure that they don’t have to worry about anything — from kindergarten to hospital bills to recovery courses in case of accidents to retirement.

I’ve moved between 7 cities and countries in my life. And looking back, I keep thinking that for every period in life there is a “perfect” city — and that’s a city where you build strong and sincere relationships, where you meet incredible people, where you make memories and experiences for the entire lifetime.

It can be pretty much any city in the world. And usually it's just the one where you happen to be, and where life brings you to.

Really the perfect city is the one where you have incredible people around you, and where you can build relationships that will last your entire lif

2. Numbers Aren’t Everything

Of course numbers will tell you what you can afford, but not where you’ll love the vibe and the people. If anything, it’s always a good idea to travel and stay in a place for a while to really start feeling it. 

As time passes by, even within the same city you can find places to explore and get lost, but then also to relax and calm down, and then to build a family and spend time with children. Finances might matter significantly more in life early, but the chase for finances often fades away as we grow older.

And sometimes it might feel like just the right time to reshuffle things — and that’s a great opportunity to explore a very different city on the other side of the Earth. Even despite lower pay.

If you're looking for another quick tool to compare the quality of life between cities, you can also look up Numbeo (https://lnkd.in/e8yMXJFB), which is world's largest cost-of-living and quality-of-life database with millions of crowdsourced reports on living, housing, crime, healthcare, transport and other key indicators.

And if you already found a perfect place — please leave a comment and share where it is! I’d love to hear your story, and I’d love to learn just what place in the world makes you feel genuinely happy! 💚



I have been very lucky

Mike's Notes

A curious mix of chance and trying hard; who would have thought? I am very grateful to all those who helped me along the way.

I learn by the seat of my pants, making lots of mistakes, never repeating them. Being self-educated is great. So is listening, asking questions, reading print books, learning to use tools to make things, challenging every assumption, "strong opinions, weakly held", subject to change as factual evidence emerges via robust Science. We are all capable of doing this.

We are all smarter than we give ourselves credit for.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

09/08/2026

I have been very lucky

By: Mike Peters
On a Sandy Beach: 27/07/2026

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

I have been very lucky. I have had a lot of people in my life who were a good influence on me. (I get rid of anyone who sabotages or is a bad influence)

My grandmother Bessie showered me with attention and love, gave me endless things to pull apart to see how they worked, and took me to meet very clever people in a small-minded backwater town.

Family holidays in wild New Zealand, next to rivers, beaches, forests and mountains, which ignited a lifelong obsession with the patterns of nature, the why in my life.

My best friend right through school; he was the brightest kid in NZ.

My high school science teacher, Alan Morgan, let me play in the chemistry lab, doing experiments after school unsupervised for several years, and taught me the scientific method on my very last day at school, the most important thing I learned in 12 wasted years.

The wise old tradesmen, who took a skinny kid from sweeping the floor to being able to make anything, by learning on the job, trying hard, and having my butt kicked.

Nelson Mandela taught me to have the courage of my convictions and never give up.

The sculptor Neil Dawson and the set designer Tony Geddes taught me how to work authentically.

My blind friend Grant, who made and gave away $60 M NZD, taught me, while he was cutting down bushes with a chainsaw, determination, quiet courage and human decency.

The magnificent 50,000 working people of South Christchurch, who trusted me to lead a volunteer residents army doing recovery work for 3 years, after the Christchurch Earthquake, teaching me humility, what honour is and valuable leadership skills gained by trial and error in the moment.

My beloved Tracy, the bravest woman I have ever met, the only paraplegic to do the Coast-to-Coast Iron Man, who married an undomesticated autistic male and made me a much better man. Her unwavering devotion, encouragement and loyalty made all this possible.

They all shaped me; I can't thank them enough. May their memories be a blessing.

Microservices Platforms: When Team Topologies Meets Microservices Patterns

Mike's Notes

Great presentation by Chris Richardson, who is very experienced.

"Chris Richardson explains how microservices platforms reduce team cognitive load, sharing six key platform patterns to streamline delivery and accelerate software development flow⁠." - InfoQ

The link has a video recording of the talk. Excellent as usual. 

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > InfoQ Weekly Digest
  • Home > Handbook > 

Last Updated

08/08/2026

Microservices Platforms: When Team Topologies Meets Microservices Patterns

By: Chris Richardson
InfoQ: 04/08/2026

Chris Richardson is a software architect and serial entrepreneur. He is a Java Champion, a JavaOne rock star and the author of POJOs in Action, which describes how to build enterprise Java applications with frameworks such as Spring and Hibernate. Chris was also the founder of the original CloudFoundry.com, an early Java PaaS for Amazon EC2.

Transcript

Chris Richardson: Welcome to my talk on microservices platforms. Really, what the talk's about is a simple idea, taking the concept of team topologies, platforms, and platform groups, which is another term for platform teams, and using those to accelerate the delivery of applications that use the microservice architecture. Basically, it's all about reducing the cognitive load of the service teams, enabling them to deliver better software faster. I've been building software for a million years now, at least that's what it feels like. It did mean that I was actually around when patterns became popular within the software community back in 1994, 1995. I was really good, and that shaped my thinking ever since.

My brain is full of 30 years of patterns now, as well as 30 years of Java. I've just done various things. I've worked on Lisp systems, created the original Cloud Foundry. Then I also, for the past 10-plus years, been pretty much focused on the microservice architecture, just helping organizations around the world improve how they deliver software. I'm excited, so my book, "Microservices Patterns," came out like 7 years ago now, which is still quite current, remarkably. I'm in the middle of working on a second edition of the book, so one day it will come out. I just think about microservices most of the time.

Microservices Platform: Why?

In this talk, I'm actually going to walk through six different patterns that I've identified that will help with the delivery of microservices. I'm sure there's actually many more. I want to start off just by talking about why platforms, why do they matter? What are the benefits in the context of developing microservices? I want to take a step back and talk about what software development is all about, and I like to think that at the heart of software development is a feedback loop. We in IT, we develop software, and then we put it into production, put it into the hands of the users, and we get feedback from that. It's really critical for businesses today to have short feedback loops so that they can thrive in today's volatile, crazy world, which is unpredictable from one moment to the next. Ages ago, I used to talk about brick-and-mortar businesses being disrupted by digital technology.

Since then, we've had pandemics, we've had wars, we haven't had tariffs, now we do, now we don't. It's just completely volatile. Businesses quickly need to be nimble. There's a lot of research that shows, and this is one of the findings from the keynote, that the better you are at delivering software, as defined by continuous stream of small changes, the more successful the business is likely to be. Fast flow is really important. To actually achieve fast flow, you need a combination of three things. You actually need a process, or specifically DevOps, which I'm actually not going to talk about today. That's how an organization should work. You need a properly structured organization, specifically one that follows the ideas of team topologies, which is actually a collection of patterns for structuring an organization for fast flow. Then you need an architecture that enables both of those things, which, at scale, is often the microservice architecture. I'm really focusing on the organization and the architecture piece of this in today's talk.

What is this team topologies thing? That is a collection of organizational patterns and principles for fast flow. It's basically, how do you structure your organization to deliver software rapidly, frequently, and reliably, using DevOps, actually? There are several different concepts involved. The first one is there's four different team types. Most of the work is done by what is known as a stream-aligned team. That is a team that is responsible for the end-to-end flow of work that is taking requirements and turning it into code running in production. These teams are generally small, five to nine people. Those are the teams that are doing the vast majority of the work. Then they're supported by three other team types. There's enabling teams that act as consulting teams that help teams acquire new skills. There's complicated subsystem teams that focus on domains that actually involve deep skills like math, for example.

I'm not talking about them so much in this talk. Then, lastly, there are what used to be called platform teams, and then they got renamed into platform groupings. I reject that, and I just call them platform groups in the second edition of "Team Topologies." Which is what I'm really going to talk about today. You've got these. I'll talk about what platform groups do. Then there are these three different interaction styles. Most of the interactions are via X as a Service, one team consuming the output of another in a self-service fashion. Occasionally, teams need to collaborate to discover new capabilities. Then, of course, enabling teams, which are acting as consultants, facilitate with the team that is learning. I'm going to talk about these interaction types quite a bit. Then there's a set of principles, and the most important principle is about managing a team's cognitive load.

The human brain can only deal with so much complexity. Collectively, a team, a set of brains can only deal with so much cognitive load as well. They only have a certain cognitive capacity, and you do not want to exceed that. Because if you cognitively overload a team, like just in order to get the work done, there's just so much mental effort, then that actually reduces team performance, and it ultimately impacts their mental health in terms of stress, and burnout, and so on. As Nicole mentioned in the keynote, a key part of having a great developer experience is minimizing the cognitive load of a team. As you're going to see, that is one of the key goals of having a platform or a collection of platforms. That's team topologies and cognitive load.

Then in terms of what is my definition of the microservice architecture. It's an architectural style that structures an application as a set of components or deployable units, which also go by the name of services. Then those services have two essential characteristics. They are independently deployable, meaning a service can be built, tested, and deployed in isolation from other services. They are loosely coupled, or specifically loosely design-time coupled, which means that a change to one service rarely requires other services to change in lockstep. Notice in this definition, I'm not talking about claiming that services should be small or numerous. That might be implied by the name, but that's not an important characteristic. The reason I'm talking about microservices here is because they actually enable fast flow. The way they do that is that they enable the teams that are developing in them, the stream-aligned teams, to be independent.

That comes from those two properties. Because the services are loosely design-time coupled, a team can change their service without having to coordinate that change with other teams. Then because the services are independently deployable, a team can deploy their service without any kind of collaboration with those other teams, at least the vast majority of the time, which means that teams are able to work separately most of the time, which is essential for fast flow. The challenge that you have is that the microservice architecture is quite complex. If you go look at the microservices patterns language, most of the patterns there are solutions to problems that you encounter when implementing microservices. There's a lot of different patterns that you have to implement. If you look at each pattern, it's a combination of three things. Application logic, which is what the team should be focusing on. There tends to be a lot of plumbing, so supporting infrastructure code, connecting to databases and message brokers, and logging and so on.

Then there's infrastructure services as well. Teams should be focused on application logic, and for them, having to deal with plumbing or infrastructure services would be an excessive burden. In some cases, it requires deep expertise, so it would impose a significant cognitive load. If each team was dealing with this, it would be duplicated effort. You'd end up with multiple bespoke implementations, which would be a maintenance nightmare. Then, on top of that, there are these cross-cutting application-wide concerns that don't really belong to any one team. Not only that, it's not just patterns. If you go look at the source code for a service, it's not just the application code. There's build logic, a definition of the service's dependencies, and task definitions that compile and test and package that service. There's also some deployment logic. There's also the definition of the service's deployment pipeline. Then there's probably Infrastructure as Code, like Kubernetes YAML, for example, that's there to deploy the service.

You don't want the team reinventing the wheel for all of that, because that would be an excessive burden. There's even more. Not only do you have the services, but then there's all these infrastructure services, including the infrastructure that runs the deployment pipeline, services that are global, like your message broker, for example, and then the deployment infrastructure. It would be a burden for all of the teams to actually have to take on that work themselves. That's the big motivation for platforms and platform groups. From a team topologies' perspective, a platform is an artifact that reduces the cognitive load of a stream-aligned team. It could be just a wiki page, but usually it's a tool or a library or some kind of self-service, SaaS-like solution providing a capability. It's developed by a platform group, and it's consumed as a service by the stream-aligned teams. That's the big idea here.

If you look at what a platform group is, it's actually a composite team type. It most certainly would have a stream-aligned team that develops the platform, but there might also be an enabling team that provides a consulting function that helps the stream-aligned teams be more successful with that platform. Then in terms of collaboration, this is primarily X as a Service. It's all about self-service platforms, but then the teams will collaborate to evolve the platform. Then, as I mentioned, the enabling team that's part of the platform will also consult with the service teams. The primary benefit is that it reduces the cognitive load of the teams, enabling them to work on their specific business functionality and actually deliver value. Then the platform is a single standardized implementation of some important capability. It's done right just once. Then the platform group itself can focus on developing skills in that area. Unlike the stream-aligned team, which is focused on delivering business functionality, the platform team can dive deep into whatever their particular more technical problem domain is. That's the big idea with these platforms.

The Service Foundation Platform

As I mentioned, I identified six different platforms, and there's most likely more, but I thought this was a good start. I'm going to talk about each one very briefly in turn. The first one I want to talk about is the service foundation platform that simplifies the creation and maintenance of services. As I mentioned a little while ago, if you look at a service, there's a lot of plumbing, there's build logic, there's Infrastructure as Code for deploying the service. There's a lot of stuff, and actually setting up a new service from scratch would be quite a burden on the teams, and maintaining all of that would be quite a burden as well. The solution is to have a service foundation platform that simplifies that part of service development. The service foundation platform is comprised of two parts. There's the service template, which, as the name suggests, is a template that can just be cloned to create a running service.

Then there's a service chassis that is a framework that the template is built upon. The idea of a service template, super simple. It's a complete running service that a team can just copy and drop in their business logic, and they've got this testable, deployable, observable service up and running relatively quickly. Big reduction in cognitive load there. The problem you have is that a template, and this is same as true with code generation as well, it is basically glorified copy and paste. Then what's more is the template is changing. When it's time to make an update to the plumbing for the services, you now have multiple copies of the code and it's likely to be slightly different because each service was cloned from a slightly different version of the template. There's potentially a massive maintenance task in updating all of these services. That's where the service chassis comes in.

The idea is you extract out most of the functionality that is in the template into this chassis, which is this framework. Then that framework is just referenced by the template. Hopefully, the template is really small, so the amount of copy and paste is significantly reduced. When it's time to make a change to the plumbing, you just update the framework, release a new version of it, update the service template to use that version, and then update each service to use the new version of the chassis. Fingers crossed, you've just rolled that change out and it's just a one-line version update. Of course, there are scenarios where it's a bit more complicated than that. A lot of the time, the upgrades are quite straightforward. If you have more complex upgrades that require code changes to each service, which includes updating stuff that is in the service template, one option is for the teams to do it themselves.

A much better option is for there to be some kind of update or migration script or some tool that you can apply to each service's repository to create a pull request. That might be a deterministic tool like OpenRewrite, which provides large-scale refactoring of your codebase. Or maybe, and this is my obligatory mention of GenAI, because that's the only thing that's real today, you might be able to use GenAI to actually do this update. You could actually give it the diffs of the service template, and maybe it would figure out how to apply those diffs to each and every service and create a pull request for it. Who knows, because every time you use GenAI, it's a roll of the dice as to whether you'll get something usable out of it. That's the service template, or to be more precise, the service foundation.

The Security Platform

The next platform I want to talk about is the security platform. Who here, first off, understands security and likes it. Because to me, it's like a prime example of my brain does not have the cognitive capacity to maintain knowledge of how OAuth authorization flows actually work. I learn it for a while, and then a month later, it's paged out. I don't know if that's because it's complex or because I'm getting old and my mental capacity is diminished. Security is really important, yet at the same time, it's really complicated. There's a lot of different areas to that, and I just want to talk about three areas that can impact developers. One part of security that's obviously important is authentication, verifying the user is who they claim to be, logging them in, in other words. There's a whole complex mechanism involving OAuth and OIDC and IAM services, and so on, that result in services being handed a token.

Then they have to do authorization based on that token, which might be hard-coded Java authorization rules, or perhaps they delegate to an authorization service like also cloud. There's also access control lists for things like Kafka topics and stuff. This is not what developers should be spending their time thinking about, because this stuff is hard, or at least for me, it's hard. Then, on top of that, there's also transport level security. You want to secure the communication between services as well, and that involves technologies like certifical authorities that are handing out certificates and so on. That's also quite complicated. The obvious solution is to have a security platform that takes care of that. This platform consists of two parts. There's a bunch of infrastructure services that provide the security mechanisms that I just described, like an IAM service, certificate management, which might actually be a service mesh, for example.

Maybe there's the authorization service as well. You've got that infrastructure. Then there are elements that provide security that are incorporated into the service chassis so that services are actually secure by default. You build them on top of the chassis. Then, let's just say automatically every REST endpoint will require a JWT. It knows how to get the JWT signing certificate from the IAM service. The idea is that this insulates the developer from the complexities of security, and the only security aspects they need to think about are writing the authorization rules that determine which operations can be invoked by whom. That's about it. That's the security side of things.

Infrastructure Services Platform

The next platform I want to talk about is the infrastructure services platform. Services are not these standalone things. They need a bunch of infrastructure services in order to run. Most obviously, the services need database servers, which need to be provisioned and managed. Typically, even if you're running on Kubernetes, you'll probably use AWS RDS or Aurora for the service databases. Then there's application-wide infrastructure like Apache Kafka. Maybe you use AWS MSK. On the one hand, it sounds simple, but on the other hand, setting up cloud resources on AWS and other public clouds is incredibly complicated and requires deep expertise, starting with getting an access key and taking it from there. It's like really complicated. You don't want teams dealing with this, because they should be focusing on their business logic. It makes sense to have a platform to do this. Once again, the platform consists of two parts.

One part provides the shared services like Apache Kafka and other pieces of infrastructure. Then there's what I call an infrastructure orchestrator. What that does, it enables the service team to say, my service needs a Postgres database with this capacity. Then the orchestrator is responsible for taking that service specification and creating the appropriate cloud resources, which are then managed. The teams can just go, I need this. They can express their intent and the orchestrator takes care of it. There are a few different solutions out there. One that I've used in the past in the Kubernetes world is Crossplane, which if you can get past the word soup of the documentation, it's actually really interesting. It basically extends the Kubernetes API. Let's say the platform team create a new resource type like service database. That's a CRD in Kubernetes terminology. Then they define how that maps to cloud resources.

Then, a service team can just write the manifest, the YAML that says, I need a service database and it needs to be this big and so on. Crossplane provisions and manages it for you. It's really cool because the service is defined at the Kubernetes level and now its infrastructure is defined at the Kubernetes level. Perhaps it's all packaged up into a Helm chart, so you install the Helm chart. You automatically get cloud resources in that environment. I think the technology is still maturing, but it's actually really interesting. Daniel Hertz company has one, Kratix, even better than Crossplane. Really interesting stuff, but it's deep technology.

The Observability Platform

Yet another platform I want to talk about is the observability platform. As you can imagine, a team that develops a service needs to understand how that service is behaving in production, and then they also need to understand what the users are doing, and how they're actually using that service. In the microservice architecture pattern language, there's actually six observability patterns. The gray ovals are the patterns. This includes the standard stuff like log aggregation, application metrics, and distributed tracing. It's like an observable service has to implement these patterns. As you can imagine, each of these observability patterns is some instrumentation which is comprised of application logic, plumbing, plus some dependencies, and that's emitting telemetry. Then there's infrastructure services like Prometheus, or something for storing logs and so on, that's gathering the telemetry, storing it, analyzing it, and presenting it to the teams. Yet again, on the one hand, the teams probably have to write some application-specific instrumentation, but everything else would be too much of a burden.

Setting things up, yet again, requires specific knowledge or in-depth expertise. Having an observability platform provide the infrastructure services like Prometheus, or ELK, or CloudWatch, or Datadog, so it could be a SaaS, or it could be on-prem, doesn't really matter, but it's stuff that needs to be provided, managed, and so on. Then, in the service template and chassis, there's elements that ensure that out of the box, the service is observable by default. You just build on top of the service chassis. You have an observable service. The team just needs to write the appropriate logging code, and collect the appropriate business-oriented metrics, and all of the low-level details are just insulated from them. Recurring theme. The team either ignores the low-level stuff completely, or focuses on the valuable parts, and everything else is provided via the chassis and these pre-managed infrastructure services.

The Build Platform

I now want to talk about the remaining two platforms, which are actually quite connected in a way, two sides of the same coin, the build platform, which is responsible for the deployment pipeline, and then the deployment platform that's responsible for the production environment. They're actually connected, because what comes out of the build platform actually has to be compatible with what the deployment platform is expected. Let's look at the build platform. Every service has a deployment pipeline that's going to compile the service, run the tests, package it up, perhaps as a deployable unit, like it could actually build a container, and a Helm chart, test that, and then either push it into the production environment or publish it to a registry where the production environment can pull it. Every service has one of these. It needs to be set up. It needs to be administered. That can be a significant burden for the team.

Then, also, the infrastructure that the deployment pipeline runs on also needs to be set up and administered as well. If we're using GitHub Actions, you've got to have a GitHub Actions workflow file for each service. Then the organization that contains the service's repository needs to be configured with GitHub Actions runners that actually execute the deployment pipeline, and also budgets need to be set and all of that administrative stuff. Not something you really want the teams to be doing, especially when you have a lot of services that are more or less built the same way, it's like, why reinvent the wheel? Good use case for having a build platform which provides the pipeline infrastructure, properly configured GitHub organizations. Then in the service template, there's actually a templated definition of the deployment pipeline, whether that's a GitHub Actions file or a CircleCI config.yml. Then, hopefully, the actual pipeline specification is built using these reusable package components like GitHub Custom Actions or CircleCI Orbs, to actually minimize the amount of copy and paste that's involved.

At least those two have a way of providing reusable deployment pipeline logic, and GitLab has something similar as well. Then the build platform can also provide some repository/registries for storing build artifacts, shared libraries, as well as publishing deployable units to a container registry for your container images and Helm charts. Because what comes out of the deployment pipeline obviously has to be stored somewhere. With this build platform, hopefully, most teams don't have to be concerned with all of this. It just happens for them. Maybe they need to tweak the deployment pipeline if they have specialized use cases, but hopefully not so much. I feel like this is pretty standard.

The Deployment Platform

Then that leads to the last part, which is the deployment platform. To actually run an application, you obviously need to have a production environment, and you might actually have some other environments, staging, dev, QA, though unclear exactly how many you really should have. Those are a centralized place where your service is run, and they actually have to provide a rich set of capabilities. They need to have a deployer mechanism that takes an updated service and rolls it out somehow. It's hard to talk about this in the abstract, but later on, I'll mention things like GitOps tooling like Flux CD or Argo. They also need to deploy your services in a fault-tolerant way. The big idea is like, here's my service, I need to run n instances of this. The infrastructure tries its hardest to make sure that's true. That could be an AWS autoscaling group, or it could be Kubernetes deployment, depending on what mechanism you're using.

Then there's also a networking capability as well. Requests that come in get routed and load balanced across your service instances. As you probably know, or maybe you're blissfully unaware, it's really complicated to set all of that up. Then the other part of this, every service needs some Infrastructure as Code configuration to define how it's deployed. It's either Kubernetes YAML, or maybe it's some Terraform Infrastructure as Code or something worse. There's a lot of stuff. It's really funny. I mostly live in the Spring world. When I step outside the Spring world and I go to the frontend, I'm horrified. I have been for many years. Then, over the past few years, I've been doing more of this DevOps-y stuff, and I'm equally as horrified. It is so complicated. I guess it's evolving. As a Spring developer, I don't want to have to deal with this. Actually, I find it cool and interesting, but there's another part of me that just wants to run away screaming.

You need a deployment platform to shield the developers from the complexity of the infrastructure. That will provide the various environments. Hopefully, in your service template, it'll provide IaC code for deploying the service, some kind of template. Then hopefully that is composed out of some reusable Infrastructure as Code components. Though the modularization technologies there leave a lot to be desired, specifically in the Kubernetes YAML world. Here's one example that I've worked with, which is where there's a GitOps tooling, here I've shown Flux, but there's also Argo CD. The state of the cluster is defined by one or more Git repositories. When those change, Flux will actually apply those changes to the cluster. It can also monitor the container registry. When a new Helm chart is published, it will edit the manifest and then deploy that new version. It's a pretty slick setup, but it is quite complicated. That's the deployment platform, and ideally it shields the developers from a lot of the complexity.

Microservices Platforms: How?

That's the six platforms. I just want to wrap up with a few comments about this platform development thing. While I was putting this talk together, I saw this article by The New Stack, which just pointed out that the success rate for platform engineering is not that great. Mostly fails. Based on what I've seen looking at organizations, is it's not surprising. I think one issue that's going on is for a lot of organizations, platforms are a way of ignoring the hard problems of people and solving actual customer problems. They do that by diving into what I call the infinity pool of technology. Because you can just get lost in the Kubernetes world and feel like you're doing useful things like creating custom Kubernetes operators. If you're not actually solving real problems, you're not going to succeed. A few thoughts. I've observed this antipattern forever. You really have to focus on the services, get those deployed in production, and worry about the technology later.

Specifically, what that means in terms of platforms, build some services, put them in production. Figure out what problems the teams are struggling with, then build the platforms, migrate the services to those platforms, and just iterate around that. Rather than go do a lot of platform development up front. Then team topologies has this great concept of a thinnest viable platform, or you could say it's like a minimum viable platform, where you build just enough platform to enable the teams to be successful. No more, no less. Maybe that involves Kubernetes operators, but maybe it doesn't. Then, teams need to adopt a customer-focused mindset, where customers in this case are the teams that are developing the services. The platform teams exist to help those teams, not actually dictate to them. They need to learn what their problems are, and provide platforms that help. Then they also need to actually help those teams use the platforms through facilitation. Build just enough platform to help, and do it in a customer-focused way.

Summary

In summary, microservices do require platforms to avoid the teams having to reinvent a lot of complex wheels. I identified six different platforms. There's probably more. Then I think it's really important to take a software engineering approach to these platforms, which are actually easier said than done with some aspects, and develop reusable components, rather than just copy-pasting everywhere, which creates a maintenance nightmare. Obviously, if you're a developer, you go, that's no big deal. Programming languages have libraries, frameworks, build tools like Maven, Gradle have plugins, even CI/CD platforms like GitHub Actions and CircleCI have reusable components. Then it gets a bit iffy when you're in the Kubernetes YAML world. There's Helm library charts, which are just weird. They work, but they're weird. Then there is a language called q, but that seems slightly weird to me as an application developer. I think there's work to be done in that area. You want to have these modular, reusable components everywhere. When you do have copy-paste, you then need tooling to actually automatically roll out updates to all of your services, generate pull requests for each one. Then, lastly, if you're building microservices, focus on the services, not on the technology. Build just minimal platforms that help.

Demis Hassabis and DeepMind

Mike's Notes

Some useful background about Demis Hassabis, co-founder of DeepMind and a rare genius.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Turing Post
  • Home > Ajabbi Research > Library > Subscriptions > SemiAnalysis
  • Home > Handbook > 

Last Updated

07/08/2026

Demis Hassabis and DeepMind

By: Christian Dinar
The Next Web: 09/04/2026

Cristian Dina is the CRO at The Next Web. He has interviewed 300+ industry leaders and authored the book King of Networking, establishing himself as one of the most connected and respected voices in the ecosystem. At just 23 years old, Cristian was included in the Forbes 30 Under 30 2025 list, representing a new generation of tech builders, bold thinkers who move fast, build with purpose, and create real impact.

In short: Demis Hassabis, speaking on the 20VC podcast with Harry Stebbings in early April 2026, described how Google DeepMind has accelerated its pace over the past two to three years by merging Google Brain’s compute resources with DeepMind’s research culture and returning to what he called a “startup or entrepreneurial” way of working. He also disclosed that he runs Isomorphic Labs, the group’s pharmaceutical AI spinoff, as a “second workday” beginning around 10pm, ahead of expected human trials in oncology later this year.

Assembling the ingredients

Google DeepMind’s formal merger of DeepMind and Google Brain completed in 2023. Hassabis described the period since as one of deliberate acceleration: aligning talent “from around the company, sort of pushing in one direction,” gaining access to the compute infrastructure that DeepMind had previously lacked at scale, and driving what he called “relentless sort of focus and pace.” In his characterisation, the transformation required a cultural adjustment as much as a structural one: the organisation had to “come back to almost our startup or entrepreneurial roots and be scrappier, be faster, ship things really quickly.” The current competitive environment, he said, was “ferocious.” Veteran employees with careers of 20 and 30 years were telling him it was “the most intense environment they’ve ever seen, perhaps ever in the technology industry.”

Hassabis said he speaks to Sundar Pichai, Alphabet’s chief executive, “every day,” reflecting the degree to which Google DeepMind now operates at the operational centre of Alphabet’s product and research strategy. That proximity is matched by a capital commitment of corresponding scale. Google’s compute build-out, developed in part through its custom chip partnerships with companies including Broadcom, is central to that positioning: Alphabet spent $91.4 billion on capital expenditure in 2025 and has guided for between $175 billion and $185 billion in 2026, a near-doubling, with supply constraints rather than capital availability described as the primary limiting factor.

The 90% claim

One of Hassabis’s more assertive statements in the podcast concerned DeepMind’s contribution to the history of AI. He said approximately 90% of the breakthroughs underpinning the modern AI industry were produced by either Google Brain, Google Research, or DeepMind. The claim is broadly consistent with the academic record on foundational developments, including the transformer architecture produced by Google Brain in 2017, early work on reinforcement learning from human feedback, and deep reinforcement learning techniques developed at DeepMind. The 2024 Nobel Prize in Chemistry, awarded to Hassabis and John Jumper and shared with David Baker, for the AlphaFold protein-folding system is the most formally recognised of those achievements. Whether 90% is accurate as a proportion is a matter of interpretation, and the industry has pluralised substantially since those foundational papers. The framing functions as a positioning statement as much as a historical claim.

The operational consequence of that legacy is a product release cadence that has accelerated sharply. Google’s open-weight model programme, most recently Gemma 4, now releases models built from the same research and training infrastructure as Gemini 3, closing a gap between frontier research and open-source contributions that previously existed. Gemini reached approximately 750 million monthly active users by the end of the fourth quarter of 2025, with Gemini 3 described in secondary reporting as having prompted an urgent internal response at OpenAI on its release in November of that year.

The second workday

Alongside leading Google DeepMind, Hassabis also runs Isomorphic Labs, the pharmaceutical AI spinoff that DeepMind established in 2021. He described his working arrangement in the 20VC conversation: a first workday at DeepMind, followed by a “second workday” beginning around 10pm dedicated to Isomorphic’s drug discovery programme. The dual commitment reflects a conviction that applying AI to drug discovery is both Hassabis’s most important long-term ambition and a project that requires sustained personal involvement rather than delegation.

Isomorphic raised $600 million in April 2025 and has existing partnership agreements with Eli Lilly and Novartis with combined milestone values of up to $3 billion. In February 2026, the company released IsoDDE, a drug design tool that Isomorphic says doubles the accuracy of AlphaFold 3 for generating drug candidates. Human clinical trials in oncology are expected later in 2026. The competitive dynamics in AI-driven drug discovery are intensifying across the industry: Anthropic’s acquisition of Coefficient Bio for approximately $400 million in April 2026, a stealth startup founded by former Genentech computational biology researchers, signals that general-purpose AI companies are now treating pharmaceutical discovery as a product category, not merely a demonstration of model capability.

The competitive framing

The 20VC podcast conversation, like Sebastian Mallaby’s biography of Hassabis, “The Infinity Machine,” published on 31 March 2026 and based on more than 30 hours of interviews, presents a researcher who has moved into the most commercially urgent phase of his career with a consistent thesis: that the most important research and the most important products are not separate activities, and that the organisation capable of doing both simultaneously at frontier scale will determine the shape of the industry. The year 2025 consolidated AI as a central strategic priority across the technology industry, with capital, talent, and institutional structure all reorganised around the question of pace. For Hassabis, the answer has been to bring the speed of a startup inside the resource base of one of the world’s largest technology companies, and to treat that combination as a durable advantage.

The scale of the capital flowing into the field makes that advantage harder to sustain. SoftBank’s $40 billion bridge loan to OpenAI represents a form of capitalisation that even Alphabet’s compute commitments cannot trivially match in kind. Hassabis’s account of a “ferocious” competitive environment is not rhetorical: it is a structural description of a race in which the resources of incumbents and the ambitions of challengers have converged to a point where institutional inertia is not merely a disadvantage but a disqualifying one. The startup mentality he describes at Google DeepMind is, in that context, a necessity rather than a preference.

Mathematics in the Age of AI

Mike's Notes

Fantastic lecture by Mathematician Terence Tao.

"The International Congress of Mathematicians is the most important and prestigious conference in the mathematical community and is hosted every four years by the International Mathematical Union. The 2026 congress, running from July 23 to July 30 in Philadelphia, features hundreds of invited talks, panels and presentations on cutting-edge developments across mathematics." - Simons Foundation

"What’s more, you don’t need to be a professional mathematician to read it. It should be mandatory reading for anyone thinking about how AI will affect mathematics, and strongly recommended for anyone who cares about AI’s impact on the world." - Gary Marcus

A link to the GitHub PDF of his talk is below. I will add the YouTube recording when it becomes available from ICM. There is a clip of bits of the talk in the meantime.

Wonderful. 😎

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

06/08/2026

Mathematics in the Age of AI

By: Terence Tao
International Congress of Mathematicians (ICM): 24/07/2026

Terence Tao was born in Adelaide, Australia in 1975. He has been a professor of mathematics at UCLA since 1999, having completed his PhD under Elias Stein at Princeton in 1996.  Tao's areas of research include harmonic analysis, PDE, combinatorics, and number theory.  He has received a number of awards, including the Salem Prize in 2000, the Fields Medal in 2006, the MacArthur Fellowship in 2007, the Crafoord prize in 2012, and the Breakthrough Prize in Mathematics in 2015.  Terence Tao also holds the James and Carol Collins chair in mathematics at UCLA, and is a Fellow of the Royal Society, the Australian Academy of Sciences, the National Academy of Sciences, and the American Academy of Arts and Sciences.  From 2020-2024, he served on the President's Council of Advisors on Science and Technology. 

YouTube clip of full conference talk to come


Terence Tao: "Mathematics in the Age of AI" (ICM 2026)

Recorded by Alvaro Lozano-Robledo

These are some clips from Terence Tao (UCLA) lecture "Mathematics in the Age of AI", delivered at the ICM 2026, July 2026. Hopefully the ICM will post an entire recording of the talk soon. In the meantime, the slides for his talk are here:

Terence Tao - Mathematics in the Age of AI

SAIR 26/02/2026

SAIR co-founder, UCLA Professor and Fields Medalist, Terence Tao reflects on how artificial intelligence is beginning to reshape the field of mathematics — a discipline that has remained structurally unchanged for centuries.

Captured at UC Berkeley, Tao discusses the cultural conservatism of mathematics, the rise of large-scale collaboration, formal verification, and how AI may expand — rather than replace — human mathematical creativity.

From blackboards and solo problem-solving to GitHub repositories, crowdsourced proofs, and machine-assisted discovery, this conversation explores how uncertainty, verification, and collaboration are evolving in the age of AI.

Will AI automate mathematicians — or unlock entirely new ways of thinking?

Note on Video Quality: Due to challenging lighting conditions during the live recording, we have edited this video by overlaying the original Keynote slides. This ensures that all text and graphics are clearly visible for the viewer.

Running Pipi on Cerebras using SDK

Mike's Notes

Pipi doesn't use vectors, which means no real need for GPUs. Pipi 9 is designed to run on CPUs. I wonder if part of it could also run on Cerebras Wafer-Scale Engine-3 (WSE-3) and maybe a little occasionally leased TPU

Here are some first working notes copied from the Cerebras SDK, and some questions.

Later, there will be initial experimental code written that Pipi could run via Python on 900,000 AI cores on a single wafer. 

  • Wafers are the size of dinner plates and more power-efficient than GPUs by storing memory and processing together at each core.
  • GPUs use matrix multiplication, which is expensive because it moves vast amounts of data between different chips.

This is a long shot, would be very expensive to implement, and will need a lot of discovery and learning😎. But using GPUs at scale is also expensive.

All efforts are to reduce costs while improving function.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

06/08/2026

Running Pipi on Cerebras using SDK

By: Mike Peters
On a Sandy Beach: 01/08/2026

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Big picture

  • Pipi runs very well on CPUs. 200 autonomous agents can run on a 16GB utility server. Without using vectors.
  • Running genetic algorithms in a fitness landscape would be better done on a Cerebras Wafer-Scale Engine. I need to test that assumption with some simple experiments.
  • Got CSL and Python code ready to test.
  • Can test on a local sandbox and then run further tests on a VM in the cloud using cheap spot compute.
  • Start with small arrays and scale up, trying different fitness algorithms.
  • Pipi could easily automatically run this deploy to GCP, run, get result, destroy cloud deployment.
  • Later, run directly on Cerebras (will require research grade, given using SDK to directly configure wafer cores).
  • Talk to Andrew at SemiAnalysis.

From Cerebras SDK

"

Cerebras SDK: A Conceptual View

Learn how the Wafer-Scale Engine architecture works, how processing elements communicate, and how the host and device interact.

The Cerebras Wafer-Scale Engine (WSE) is a wafer-parallel compute accelerator, containing hundreds of thousands of independent processing elements (PEs). The PEs are interconnected by communication links into a two-dimensional rectangular mesh on one single silicon wafer. Each PE has its own memory (used by it and no other) and its own program counter. It has its own executable code in its memory. 32-bit messages, called wavelets, can be sent to or received by neighboring PEs in a single clock cycle.

The PE also has dataflow control characteristics. An instruction can terminate the currently running thread (called a task), at which time, hardware selects a new task from among the set of tasks that constitute the PE’s code. It selects a runnable task, one that has been activated (and unblocked; we will describe this in more detail later). Incoming wavelets travel along a virtual channel, called a color. All colors transfer data on a single physical channel. The congestion of one color does not block the traffic of another color. For each color used for incoming wavelets, there may be a task that is activated by its arrival.

The Cerebras System (CS) is a self-contained rack-mounted system containing packaging, power supply, cooling and I/O for a single WSE. The CS communicates via parallel 100 Gigabit ethernet connections to a host CPU cluster. Throughout this documentation, the CS is referred to as the “device,” the host CPU cluster as the “host,” and the ethernet connections connecting the two as “host I/O”. The SDK provides mechanisms for using host I/O to move data between host and device or launch functions on the device.

The below figure gives a visual representation of the mesh of PEs that make up the WSE, and its connections to the outside world. Data is streamed onto the device via host I/O, and enters the WSE through a series of links along its edges. The programming model of the SDK abstracts away the details of these links, and allows the programmer to copy data from the host to arbitrary PEs on the device.

A Processing Element (PE)

A PE contains three key elements:

  1. A processor. Also referred as a compute engine (CE).
  2. A router. The router of a PE is directly connected via bidirectional links to its own CE and to the routers of the four nearest neighboring PEs in the mesh. The link to its own CE is called the RAMP, and the links to the four neighboring PEs are referred to by their cardinal directions. The router is the only communication device the PEs use to send and receive data.
  3. The local PE memory. All of the PE’s data and code are stored within this memory. Neither the CE nor the local memory of a PE is directly accessible by other PEs.


The Programming Model

To develop code for the WSE, you write device code in the Cerebras Software Language (CSL), and host code in Python. You then compile the device code, and run your program on either the Cerebras fabric simulator, or the actual network-attached device. The host code is responsible for copying data to and from the device, and launching discrete programs referred to as kernels.

... "

Cost guesstimates

These guesses are somewhere to start. Most probably wrong. Will start asking around. Corrections welcome, thanks.

  • WSE-3
    • Buy
      • Capex $20M USD from Cerebras
      • Power usage of 25KW works out at $6,500 NZD/month
    • Rent
      • Who?
      • Where?
      • How Much?

Digital Accessibility Training

Mike's Notes

I stole this content from all over the place. Sorry if I didn't credit you; I forgot where this came from. All useful stuff.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

04/08/2026

Digital Accessibility Training

By: Mike Peters
On a Sandy Beach: 04/06/2026

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Accessibility For Everyone (https://lnkd.in/dVvgMG29), a wonderful free book on web accessibility for designers, developers, content folks — pretty much everyone. Written 9 years ago, but still very much relevant today. With sections on disabilities, impairments, planning for accessibility, design and testing. Kindly released by Laura Kalbag.

Free Books on Accessibility

Giving A Damn About Accessibility, by Sheri Byrne-Haber (disabled)

PDF: https://lnkd.in/eqbz5Npw

  • Audio: https://lnkd.in/emYMbEDc

Web Accessibility In Plain Language, by Charlie Triplett

  • https://lnkd.in/e2AMAwyt

AccessAbility Playbook, by Government of Canada

  • https://lnkd.in/e2W3viJb

Appt Accessibility Handbook, by Jan Jaap de Groot, Paul van Workum CPACC

  • https://lnkd.in/e3V7eTU9

Accessibility Foundations (Free Guide), by Henny Swan

  • https://lnkd.in/erGd9vX7

WCAG 2.2 Card Deck (Updated!), by Johannes Lehner

  • https://lnkd.in/eQgDsY9j

Free Practical Books For Designers

  • https://lnkd.in/dsxAukXq

And a *HUGE* thanks yet again to wonderful Laura Kalbag and everyone sharing their insights, learnings, and experiences in wonderful resources like these — for everyone to learn from and build open. Your work doesn’t go unnoticed!

How I work effectively

Mike's Notes

I found it helpful to get this down on paper, so the process I use is conscious and can be tweaked over time.

This process has slowly evolved over many years since I was 15, when I started by grabbing non-fiction public library books off the shelves each week based on intuition. Practising this visual learning method, getting better over time and adding more steps seems to have worked a treat.

Most important is testing all assumptions.

I'm happy to receive suggestions or feedback on this.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

03/08/2026

How I work effectively

By: Mike Peters
On a Sandy Beach: 30/07/2026

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

My creative problem-solving and build process is evolving, and the loop is getting faster.

  • Understanding the problem starts with reading or talking with someone, watching a YouTube talk, or listening to the radio.
  • Do lots of research, mostly reading books (days to months).
  • Cheap thought experiments. What ifs.
  • Drink plunger coffee.
  • Print off a paper(s) or article(s) and file it in an indexed A4 3-hole ring-binder.
  • Drink Chamomile tea.
  • Daydream (solutions come within hours or months later).
  • Drink plunger coffee.
  • Draw the solution as many colour-coded A4 architecture drawing(s).
  • Drink more coffee (Cappuccino).
  • File the drawing(s) with the printed paper.
  • Use the drawings to prompt Google Search AI Mode (free) with detailed instructions on what to build.
  • Output teaches me, describes data model, code, documentation.
  • Print off and file with the rest.
  • Walk a dog. Plant a tree. Watch the sun rise.
  • Read the printed AI output, colour-code, add doodles, correct, test, edit names, build, use in Pipi, while listening to music. (I don't copy-paste. I manually type to copy, because it helps me learn and understand.)
  • Throw away all the paper except for the original research, which is moved from DevOps to the research library.
  • Pipi then generates self-documentation, including mermaid drawings.
  • Repeat.

Each loop cycle takes weeks to years. There are hundreds of cycles running in parallel at any one time. It's a pull system. I work on Pipi when something needs to be solved using my library of solutions. Totally intuitive, like an artist, not an engineer, and always fun like a kid playing with Lego.

Another important part of this process is writing up notes for this blog. As a slow writer, I need to allocate a regular slot each day to do this using Grammarly. I find it reflective; it makes me think a lot. A bit like teaching someone else a skill you have.

It's becoming more important to have regular habits (an autism strength) and replace personal deadlines with going with the natural flow (artistic strength). It's more productive in the long run.

These changes are made possible because of the detailed work done over the last few months, removing barriers, including modifications to Pipi, reorganising space, equipment, and routines. It's also been made possible by the rapid advances in LLMs in 2026.

I think I have now solved all major problems to get Pipi 9 Core (Loki) running 24x7x52. Anything else that pops up can be quickly solved along the way as part of maintenance.

Output has gone up 100x. Now to execute very fast.

Jessica Kerr on Symmathesy

Mike's Notes

I was watching "A Learning System Made of Learning Parts" on Still Burning, an episode of Kent Beck's video blog.

Jessica Kerr joins Kent by the fire to argue that AI didn't take the programmer's job; it split it in two. The part we loved, crafting code by hand, has been commoditised like IKEA furniture. What's left is harder and more human: understanding what to build, proving it works, and stewarding the living "symmathesy" of people, code, and agents all learning from each other. They get into accelerated learning, why play is a signal you're learning, the loop that "becomes a noose," and choosing excitement over fear while the ground keeps shifting."

Resources

References

  • Symmathesy — A Word in Progress Proposing a New Word that Refers to Living Systems. Nora Bateson. Nora Bateson Foundation

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Still Burning
  • Home > Ajabbi Research > Library > Authors > Kent Beck
  • Home > Handbook > 

Last Updated

02/08/2026

Jessica Kerr on Symmathesy

By: Jessica Kerr
Jessitron: 15/04/2018

Jessica Kerr manages the Developer Relations team at honeycomb.io, because observability is one way our teams learn from our software. In speaking and teaching, Jess works across languages and communities, spreading cheerful deep thoughts. Code, tools, and people are not separable; all form the team that operates useful software.

Symmathesy is a term coined by filmmaker and systems theorist Nora Bateson in 2015 to describe a learning system made of learning parts, emphasising mutual learning that occurs within and between living contexts. Derived from the Greek roots sym (together) and mathesi (to learn), it serves as a response to mechanical, rigid frameworks by shifting the focus from individual elements to the dynamic relationships that generate evolution and adaptation.

In a symmathesy, learning is not an isolated process of acquiring information; it is an ongoing, multi-contextual process of mutual adjustment and calibration.

Collective problem solving in music, art, science, and software

A Learning System Made of Learning Parts