Many open distributed systems and networks have to deal with a resource allocation problem compounded by an economy of scarcity and opportunistic non-compliance. We have approached this problem from the perspective of self-organising multi-agent systems, using electronic institutions founded on the institutional design principles of Nobel Prize winner Elinor Ostrom. In axiomatising these principles in computational logic, we have exposed a requirement for formalising different qualifiers of ‘justice’ (intuitively, trying to capture some notion of ‘correctness’ in the outcomes of algorithmic decision-making, thereby trying to accommodate some elements of fairness, utility, equity, proportionality and tractability in the process). In this talk, we present some recent results in distributive, retributive and organizational justice, and then ask the question: what happens when the algorithmic solution to an engineering problem is offered to the people who have to solve the same problem (in fact, the one that inspired the original solution)? We present three examples of such socio-technical systems, in workplace design, smart grids and knowledge commons.