Skip to main content

Devjuju

At a glance

Category
Learning and training
Website
www.devjuju.com

Learning software engineering is not a scarcity problem. It is an ordering problem. Any topic has been explained ten ways for free; what is not given is which one to read next and where you are now. What Devjuju sells is not the content but the order.

A path is a sequence with a name, a summary and a position, plus a flag that says whether it is published. The ordering is a database column rather than a decision the page makes, so an unfinished path stays off the list instead of appearing half-built. Below that sits the learning itself, and it is measured with more care than you might expect.

Who arranges the path

The ordering is not generated from each learner’s behaviour. A person arranges it, it is stored as a position on the path, and learners get the same sequence. That looks like a weakness and it is a choice: nobody can explain why each learner got a different order after some optimisation, whereas a sequence that is written down and published can be looked at, argued with and improved. An unfinished path is not published, so if the ordering is not settled yet, nobody sees it.

Reading and watching are counted separately

A lesson can have two forms: text to read and video to watch, each carrying its own expected duration. So your progress is not one number. Two percentages are kept for each lesson, how much you have read and how much you have watched, one row per learner and lesson. This looks like a detail and it answers the right question: somebody who watched the video and did not read the text is not in the same place as somebody who did the reverse, while a single blended number would make the two look identical.

An unstamped connection matches nothing

What a learner sees of their own progress is decided by rules written in the database rather than by a check in the server’s code. Every request stamps its identity onto the connection, and the rules read that stamp. The detail that matters is what happens on failure: if the stamp was never set, the read comes back empty, so an unstamped connection matches nothing rather than everything. The right to delete is likewise kept for the superuser alone, and the distinction between an administrator and a superuser was restored, because collapsing the two would have handed every administrator a right they never had.

What you pay for, and who takes the payment

Devjuju itself never talks to a payment provider. It makes sure the learner has a billing account, then asks the shared billing service for a checkout session by plan and cycle. And everything gated behind a paid tier asks one module, never the payment provider and never the subscription table directly. The tiers are ordered and a check is always of the form at least this tier, so adding a new tier above them does not mean revisiting every call site. It also means that when billing moves, one place changes.

Who it is for

People moving into software engineering who want a sequenced path rather than scattered tutorials.

Visit Devjuju: www.devjuju.com