Inversion of Control Doesn't Need a DI Container
We started designing a dependency scanner, and its needs led us to Inversion of Control. It turned out we were already doing it, without a DI container.
Employable software engineering, taught through live projects

We teach on open tools that run on modest hardware, and we work keyboard first, so accessibility is built in from day one and learners design software everyone can use.
Founded through workshops in Nigeria and now launching with a first cohort in rural Greece, we widen access to digital skills in low resource settings.
Ways to learn
Wherever you are starting from, there is a way in, and every one of them is taught on real code.
For anyone with code or an idea
A developer beside your code, or your idea. Leave knowing the next step.
Single sessions or weekly
See the lessons
For developers after their next job
Skills employers hire for, built on real code, with work to show them.
Short courses
See the courses
For developers who want to climb
Beginner to Expert, then the full course. Start where you are.
Four levels
See the levels
For organisations and their teams
Consultancy and coaching inside your codebase, while the work ships.
Shaped to your team
See how it works
Learn to build software yourself, or bring us a project to deliver.

Individuals, startups and teams

Every project does two things at once, because the learning and the impact are one.
A developer
with employable skills that last
A community
with software it keeps and runs
And in the places that need it most, that is how opportunity takes root. The skills and the software stay where they are scarce, and a community comes away more able to build its own future.
Grassroots in Nigeria, launching in rural Greece, and built to cross borders.
Grassroots teaching, learned through real client work.
Our first European cohort, rigorous and agile software engineering, on the border with Bulgaria and Türkiye.
Shared cohorts across the border, then a growing network through the Balkans and Africa.
Ideas
Writing on coding, software engineering, and digital education.
We started designing a dependency scanner, and its needs led us to Inversion of Control. It turned out we were already doing it, without a DI container.
A stub that holds no documents could not say whether a change still matched a query. Letting it answer unknown named a case the real database has too.
Signing in by emailed code puts a mailbox on the critical path. How we use Mailpit on Studomia, how our tests read the code, and what one question taught us.
Pick what sounds like you