A picture of a map with the colors going from cooler to warmer as they get closer to the center

Explaining the Housing Crisis with the Theory of Constraints

Mathieu Hélie, Montréal. 
11 April 2023

Many voices. Greener cities. Better cities.
Canada is aiming to double its population within decades, but our largest cities are already congested by decades of car-centric infrastructure investment. Laying out a green belt around each is the first step to preventing more automobile dependency, followed by budding (as a plant buds) into that green belt with a new fully planned city.

How economic flows and bottlenecks affect urban growth

When we encounter a contradiction, it’s very likely that we are facing an unresolved “problem of organized complexity,” to paraphrase Jane Jacobs. Such is the situation with the crisis of urban home affordability and NIMBYism, where everyone agrees that the supply of homes is below the need, but none concede that it is their neighborhood’s growth constraints that must be lifted. We are currently trapped in a political deadlock where the energy invested in removing constraints is met with an equivalent increase in the energy applied at protecting these constraints.

In this essay, I intend to introduce the concept of flow, of linked processes of production, to help explain these contradictions in urban affordability. The key insight will be understanding the phenomena of flow bottlenecks, how they arise, and ultimately how cities must use the principles behind the Theory of Constraints to progress through the contradictions of urban growth and unblock the production of new homes and dwellings.

The concept of economic flow was discovered in the field of industrial organization and generalized later to non-industrial economic activities such as management and marketing. For this audience, I, however, first present flow from the perspective of abstract systems, then describe how those systems express themselves in factories, to then arrive at an accurate depiction of economic flow in urbanization. With such a depiction we can finally imagine a form of urban planning and governing that satisfies both the demand for new dwellings and the need of homeowners to protect their neighborhoods from new growth.

What is flow, and what makes it meaningful?

Hydrological flows are well understood by civil engineers and landscape architects, and traffic flows have also been studied for decades. But what of economic flows, in demand and supply? This flow represents the change of a supply of goods over time, and while in economics it is assumed to be either elastic or inelastic to price by the good’s intrinsic nature, in practical matters it is the result of very complicated processes of production that are susceptible to both deterioration and improvement.

In Eli Goldratt’s business novel “The Goal“, where the Theory of Constraints is introduced, a businessman is challenged with accelerating the time a customer’s order requires to be processed by his factory, against his intuition about efficiency and complicated by the opaqueness of the factory’s behavior. It seems that the dimension of time in production has escaped anyone’s control. His breakthrough insight occurs when observing a system of flow in a non-industrial setting: the behavior of a line of children hiking in the woods. Let’s begin our examination of flow starting from this simple model.

In order to complete the hike, the entire group must have arrived at their destination, which is to say that the group has completed the hike when the last member of the group has completed the hike. The surprising insight of flow theory is that the order in which the children walk the trail affects the arrival time of the whole group, and there is an optimal order to place them in.

Let us first imagine two (or more) children, one taller and stronger, and a second much younger, on a hike through a forest. Let’s imagine that the children carry equally weighted backpacks of supplies and walk in order from tallest to shortest. Along the way, children inevitably get distracted or hit obstacles that slow their movement, and because they walk in a single line those children that are walking behind immobile children are blocked from advancing. Slower children that are blocked from moving ahead by children in front of them will not be able to catch up after the faster children once those get moving again. They will also become tired much more quickly from carrying relatively more weight for their strength. The end result is that the whole group will only reach the goal (the whole group arriving at the destination) at the pace that the slowest child can keep, and that pace can be interrupted by any obstacle encountered by the children in front. The slowest child controls the flow of the group, and anything that speeds up the faster child will not help the situation. The slowest child is the bottleneck of the process.

Although it might increase the probability of adding a slower child, adding more children to the group makes no difference to this constraint, but it does make the cause of the slowness more opaque to the outside observer and more difficult to improve. This was the situation faced by industry when the Theory of Constraints was proposed.

An illustration of faces on a flow chart
A flow of equally-burdened children walking a trail, depicted as a temporal sequence line-by-line. As time advances from line T1 to T6, the smaller child gets delayed by the taller one and loses energy at a greater rate.

To remove this bottleneck to flow, Goldratt presents two improvements.

The first improvement is to put the slowest children at the front. As a result, whenever a distraction or obstacle creates distance in the line, the speed of the children at the back allows them to catch up and shrink the distance down again. The entire group of children arrives at the destination simultaneously, despite any blocking events during the hike. (Pacing the process of production to its slowest step was an incendiary proposition to industry when the idea was first proposed by flow theorists, but the statistical results were undeniable. Processes that can be delayed must have the ability to run faster than the rest of the system to ever catch up after a delay. It follows that the slowest steps are the ones where delays have the most long-term impacts, and where delays must be prevented.)

The second improvement is to take the load off the backpacks of the smaller and younger children and hand it to the strongest, such that energy levels remain even across the entire line and the fast children slow down, but never slower than the slowest children. This increases the velocity of the bottlenecked younger children in return for a reduction in the velocity of the stronger ones and allows the entire group to move faster.

An illustration of faces on a flow chart
An improved flow of children walking a trail makes stronger children carry more weight and slow down so that the younger ones can keep their best pace. The finish line is reached sooner by the group.

In Goldratt’s paradigm-defining story, the businessman discovers that one piece of equipment in his factory is the controlling bottleneck of the flow, and must reorganize his production line around keeping that piece always at maximum potential use by reducing the workloads at other steps in the production, against the expectations of accountants, other production managers and factory workers who must sacrifice their own individual productivity goals to improve the productivity of the constraint. The work of flow improvement is first a technical and analytical effort but ultimately becomes a political challenge as the protagonist must change the mindset of the organization to serve the needs of the constraint.

This is an unconventionally holistic view of production processes, and it was so unintuitive to industrial managers that a generation of consultants made good livings teaching and persuading factories to adopt these improvements.

If flow is a general phenomenon relevant both to economic processes and to recreational activities like hiking, could it be also relevant to urbanization, and how would it express itself?

How can we observe urban flow?

In a smoothly flowing urban growth process, we should see the delivery of new floors, new houses, new streets, and new amenities constrained solely by the physical limits of our technology. Improvements in constraining technology would result in the accelerating production of new dwellings and amenities, an increase in the available living space per citizen, and an improvement in amenities, in every city in the world that learns of this technology.

Microeconomics creates the illusion that these problems operate independently of external constraints and can solve themselves. This does not appear to be our intuition about the growth of cities, so what actually happens in the process of adding a floor to a building? A house to a block? A street to a neighborhood? A new neighborhood entirely? How does flow express itself for real-world cities? This is often more a matter of production scale than free markets. Much like a factory grows so large that its flow of production becomes opaque, as cities grow larger, their flow of production also becomes harder to perceive and are subject to deterioration unless carefully attended to.

As any complex system starts from something simple and iterates into complex relationships of many parts, understanding the behavior of urban flow must start from the embryonic state, meaning the smallest possible flow of production. Such a flow is typical of the pre-urban settlement, where no construction, development, or renovation has been taking place. Flow begins once one person or a group of people project to add an expansion to one of the dwellings ― either a new room or a floor to an existing building, even just a garden.

The delivery of this project proceeds through a sequence of steps, from first imagining the project, to acquiring the rights to the property, assembling the materials, organizing the building crew, erecting the structure, cleaning up the site, finishing the interior, etc. Each step in the sequence must wait for the preceding step to complete (with some flexibility in start-stop times) to be able to proceed and may delay the subsequent step if it is blocked. If, for instance, the building crew is otherwise occupied at farming, hunting, or throwing barbecue parties, then the flow is blocked or must wait until the crew becomes available, and accelerating the cleanup of the site is unlikely to deliver the product sooner.

An illustration of faces and buildings on a flow chart
The flow of an embryonic urban area is constrained only by resources. Acquiring and organizing them explains the bulk of the time cycle.

The significance of this law of processes increases as we progress in scale from the embryonic settlement into a recurring system of city building. Once expanding the city with new dwelling space becomes a frequent event, it becomes economically optimal to establish a permanent professional construction crew involved in building these projects. (After enough time has passed the community building crew disbands and focuses on barbecuing parties, slowly losing their skills at construction and the ability to “take weight off” this production step.)

While two projects being initiated concurrently is improbable in a small settlement, a professional crew makes economic sense when a queue of waiting projects has formed, and this professional crew must necessarily complete a project before starting work on another, potentially blocking the next projects in the “pipeline” from starting should any unusual event delay the construction schedule (and something unusual usually happens). Another source of delays would come from governance. In the embryonic city, a building right can be acquired from the community by a simple debate in the town forum. Once these debates start occupying all of the forum’s time, it starts to make sense to adopt a building code that automatically accepts projects that fall within some agreed-upon scopes and limitations, and employ specialist city planners to verify that the codes are respected and grant the approbations. If one project attempts to cheat, the planners are occupied by the project and the others must wait. At one production stage or another, one project has the potential to delay or block the others from progressing, in a pattern typical of the factory described by Goldratt.

An illustration of several faces and buildings on a flow chart
A flow of a scaled urban area, where the permitting process and construction process are always utilized and begin to professionalize. Being utilized implies the possibility of a queue of waiting projects forming if delays arise.

A step that is perpetually blocking others or forming a waiting queue is usually the bottleneck of a flow. Improvements at other steps will be absorbed by bottlenecks, resulting in even longer waiting queues. For example, there is no point in accelerating the acquisition of building materials if the building crew is too busy to start using new materials. More effort at this step will only produce more waiting, leading to the decay of these materials, more waste, and higher costs. (Eliminating this waste, generated by fruitless efforts to improve efficiency elsewhere but at the constraint, is how flow consultants earned their fees. Their mantra was reducing inventories and their holding costs, until arriving at a just-in-time flow.)

Constraints are involved even more extensively in city planning. Industrial theorists see constraints as obstacles to overcome or work around but, in city planning, we have used constraints to stabilize the structure of a city against the impacts of its growth. In a city, more production can result in worsening living conditions. Value is being created in one place but subtracted in another. (For instance, preserving views of the sea has been an objective of building codes in the Mediterranean since the Roman-Byzantine era, shaping many cities with the characteristic morphology of the Mediterranean as a result. https://www.intbau.org/wp-content/uploads/2014/08/besim-hakim-mediterranean-urban-and-building-codes.pdf)

Because of how successful constraints have been historically at stabilizing urbanization, inventing new constraints is the usual response from citizens, politicians, and urban planners to new forms of instability. Thus, in the past century, we invented zones, detached housing, floor-area ratios, parking minimums, and, at the most enormous scale, the green belt. Urban planners are deliberately blocking and obstructing flows of production in the expectation that these flows will divert themselves to less destabilizing paths, such as a building mass that does not obstruct the view over the sea of a neighboring building. Invisible to the stakeholders of these new constraints is the increased cost in flow imposed by the constraint, but some visualizations can help.

An illustration of faces and buildings on a flow chart with a red circle with a line through it
The flow of urban growth under stabilizing constraints creates interruptions in the delivery of new projects. Some of these can be absorbed or prevented, but only until the natural limits are reached.

The impacts of controlling constraints

Have these new constraints brought us the wanted stability? Have they instead introduced a new kind of instability where flows are dwindling everywhere and production capacity is decaying from lack of demand, while we simultaneously observe skyrocketing price increases in existing dwellings? This is the argument put forth by activists in favor of removing growth constraints, who propose that regional or national-level regulation must prohibit municipal codes from constraining certain forms of flows. (Essentially laws that make other laws unlawful, a bet that local authorities can be forced to accept growth. This practice has already escalated to fines on recalcitrant communities in Europe, with no end to the escalation or visible improvement in flow.)

There is a moral argument to be made both for and against these initiatives, but this is not the intent of this essay. What we explore here is whether an initiative to prohibit constraints would be effective in a complex and opaque system of constraints (human, technological, and political).

In North America, we have assumed that the bottleneck constraint to urban growth was financing. The belief was that anything would become possible if consumers could have more purchasing power to “access” homeownership. Thus, programs to insure mortgages and provide tax incentives on mortgage interest have expanded over the past three generations, along with the expanding scale of urban agglomerations.

The cost of dwellings has risen to match and made access to property ownership as difficult as it was at the beginning of those programs. Thus, we observe constraints absorbing other improvements in the flow of production. Any effort not applied at the constraint will be ineffective.

Let’s consider, once again, our embryonic simple project, but now in the context of a regulation promoting flow. This is what the groups championing accessory dwelling units in single-family detached house areas hope to realize ― more dwellings within a stabilizing pattern. How much additional flow could this deliver? There is a great difference between an accessory dwelling unit being constructed out of economic scarcity, and one constructed out of economic speculation. Cities in history grew slowly and incrementally because the resources activated by the building flow were scarce. Accumulating the capital to grow a building might take a family an entire generation, and the risks of production were covered by the entire community, which also formed the construction crew. The picturesque cities of Europe and North Africa are literally the product of millennia of growth.

In a modern metropolis of millions, where single-family detached housing dominates the landscape, professional construction crews outcompete homeowner-operated dwelling expansion. Taking on a construction project in the midst of the bureaucracy, financial instability and production risk of such a project is daunting for most middle-class property owners, for whom their home is their single largest and most at-risk financial asset. In fact, in countries such as France, entire consulting firms have formed to provide municipally-sponsored coaching and project management to homeowners. (Accessory dwelling units being legal countrywide has not prevented the flow of new projects from dwindling to nothing from larger constraining trends.)

It is tragic that energy is being invested by various activist groups in lifting very specific constraints without considering the whole flow of the urban economy. There is nothing that ensures that a larger constraint will not absorb these improvements and leave us experiencing a perpetually stalled flow. What if the competition for construction crews or the lengthy permitting process or the reluctance of insurance companies to guarantee loans prevents these flows from completing? What if homeowners are too exhausted by their lives to grab the financial incentive to rent out their properties? In order for a real improvement to be achieved in the supply of dwellings, we have to realize an improvement at every step of the delivery process, discovering the constraint along the way.

Only a holistic perspective on the production process can help us improve it, as Goldratt painstakingly elaborated in “The Goal” and throughout his career.

Natural Constraints

Considering flow from the largest of all stability constraints, the green belt or urban growth boundary, helps us tackle the issue holistically.

Urban growth processes, unlike industrial flows, are accretive. Each one increases the scale of the system and brings it one step closer to an inevitable failure. Urban planning was classically invented to handle this problem by means of the ordered, right-angled street grid. The hope was to prevent the congestion breakdown of improvised, cow-path city growth. Despite the solution being known from antiquity, and many Hellenistic and Roman cities of that period having been settled on grids, cities today are nevertheless still burdened by cow-path street plans (not to speak of congestion in general). This must not be a constraint of technology or know-how.

The problem of structural improvisation failing at scale is not unique to urban growth processes, it is also characteristic of software systems, and software engineering has developed a deliberate strategy to resolve it ― the refactoring. Software projects have no natural boundaries within which to organize themselves. While there are projects blessed with carefully laid out designs, technical architectures, and orienting requirements, it is quite common for software systems to be the result of a spontaneous improvisation by software analysts required to meet an urgent and immediate need. The software that results from improvisation is typically poorly legible and vulnerable to failure, but that in itself does not motivate an improvement to the structure of the software. A software program could function perfectly well for years, well beyond the duration of the memory of its human analysts before a change in its production context justifies its modification. This latent disorganization in the software is referred to as technical debt, a problem to be fixed in the future.

What typically happens to real-world systems is that, absent any force opposing it, the scale of the program grows as an accumulation of disorganized improvisations, and each improvisation confuses the impacts of the next one until the moment it becomes completely impossible for the human analysts to determine how the software can be enlarged and still function. When this crisis arrives, humans must face a politically tense reality ― that the only way for the system to meet today’s needs is to destroy and rebuild the parts that are disorganized. The stakeholders of the system must accept a painful teardown of features they had accepted as granted in exchange for the possibility of future improvements, on a schedule that the analysts have great difficulty predicting. The alternative choice is to allow the system to stagnate and the memory of its behavior to decay until some time that it is abandoned or replaced by an upstart design.

An illustration of a maze of arrows
A flow of improvisations generates technical debt in software.
An illustration of a maze of arrows with some line erased
A reverse flow of software development in a refactoring effort. The scale of the system has not increased, but it has gained the potential to increase.

Readers knowledgeable about the history of urban planning will immediately recognize the pattern involved. Cities grow in much the same flow of improvisations. Despite their best intentions at planning cities find themselves confronted with instability from improvisation at scale and suffer years of renovations to return to balance. Perhaps the most dramatic example was the renovation of Paris in the 19th century, and the operator of its refactoring into an industrial-scaled metropolis was Georges-Eugène Haussmann, prefect (mayor-governor) of the entire region encompassing the city.

Haussmann’s methods and plan remain controversial, and I will not take sides. For the purpose of this essay, I will summarize them as the deliberate demolition of dysfunctional neighborhood clusters to be replaced with structures that rearranged the scale of the city and defined new neighborhoods, using grand avenues and boulevards lined with apartment buildings designed uniformly by his municipal architecture staff. Those grand boulevards are today iconic for the city, and essential to its life, but one that happens at a larger scale than what the city could produce with its maze of medieval streets.[1]

Haussmann’s refactoring was not limited to circulation. He tasked the engineer Adolphe Alphand[2] with creating a new kind of amenity – the urban park – where woods had been preserved for military or hunting purposes at the edge of the city. Bois-de-Boulogne at the western edge and Bois-de-Vincennes at the eastern edge were redesigned for the deliberate enjoyment of the natural world and opened to the public. This event was a recognition that the city had grown so large that what was once taken for granted, that a city dweller could take a stroll out of the city and enjoy nature at will, was no longer realistically accessible to citizens of a city at the industrial scale.

The necessity of transforming cities to the scale they have reached is illustrated by the dramatic history of Paris’ renovation, and the necessity of limiting and constraining the growth in scale of cities is legitimized by the pains inflicted in conducting the renovation. Neighborhoods ceased to exist and social relations that had grown over centuries also ceased.

The lesson learned from the 19th century was to never allow cities to grow to the level of imbalance where they could stop functioning entirely. At the very local level, this meant density limits that ensured a single block of the city would not be overwhelmed with traffic beyond its designed potential. At the regional level, this meant limiting the removal of the natural world at a strict frontier by the declaration of a green belt beyond which urbanization is forbidden.

As the Theory of Constraints would show us, these political limits on growth eventually absorb any technical improvement in the flow of new dwellings. (Considering this flow is naturally accretive and pushes into those limits.) The supply of dwellings inevitably stops growing and only the increasing price can balance dwellings and citizens. The tension on price and crowding is yet another crisis brewing. We must accept that these constraints are temporary and find a technical resolution to the scale limit that has been reached.

An illustration of houses and a flow chart on a map
Natural or artificial growth constraints eventually impose an obstacle on the flow, beyond which the supply remains stagnant over time.

Haussmann’s renovation is a warning against the pains of urban imbalance, but I suggest we do not yet appreciate its more significant lesson about how a city is brought back into balance: by creating a flow of large-scale, regional structures. In order for the flow of new dwellings to remain stable, there must be corresponding flows in infrastructures and amenities that match the scale reached by the city. Only when all flows at all scales are in balance is the city itself in balance. New dwellings will not impact traffic conditions around existing dwellings if they are planned around new traffic structures. New neighborhoods will not remove access to the natural world of existing neighborhoods if they are planned around new regional parks and ecological preserves. An end to improvisation in urban growth is the necessary solution to growth limits such as congestion, housing density, and green belts.

Removing bottlenecks with larger scales of flow

The green belt aims to stop exurban planning authorities from increasing the scale of the city with new sprawl. That is only half of a solution. In an ideal scenario, a green belt area would be partially transformed into a completely new city at high density, avoiding the improvised urban sprawl characteristic of edge development. This new high-density city matches the scale of the existing city and refactors it around itself as a center of gravity. The new city would be equipped with mass transit, universities, hospitals, and forested ecosystems before being developed with new dwellings.

The design of regional structures must have the ambition of shifting the center of the city outwards, towards its edge, and this must begin by designing mass transit lines that bring residents of the center city to the services, amenities, and recreational areas at the edge. This is the inverse of the typical planning strategy for regional transportation, which aims to bring residents of the suburban edge to center-city employment and commercial areas, at the political service of both the center-city constituency and the suburban residents, but at the expense of a failure in the whole system. The traditional strategy makes the city center even more central, more congested, and more expensive.

An illustration of arrows all pointing to the right on top of a very simple map
Synchronized flows of large-scale structures and small-scale structures keep unbalanced states moving out into the future.


A picture of a map with the colors going from cooler to warmer as they get closer to the center
Space syntax theory has shown that city centers are determined by mathematical topology of their network. A new large-scale edge can shift the center entirely. Was Haussmann the first to understand this concept, and shape the city accordingly?

This brings to our attention the long-tolerated and still growing technical debt of cities, where for many generations capital was invested into exclusively suburban infrastructures such as roadways to the edge and beltways around those roadways. In such cities, there exists no way to bring center-city dwellers to the regional edge except by car, unless capital investments matching all the money ever spent on roads are now invested in railways, bikeways, and walkways. Before any improvement can be experienced, enormous capital investments must be made to catch up to the imbalances, with all the painful politics also experienced in software projects with technical debt ― massive expense, loss of features, and uncertain timelines.

Having understood how flow determines the sequence by which regional problems can and must be solved, we can then design the political structures that allow us to remove the bottlenecks. The Paris region attempted just such a solution to its imbalance of scale in the mid-20th century with five planned new towns of up to a million residents[3], but the plan failed when local communities organized to force the scale back down to suburban edge sprawl. This regional governing experiment is ongoing and evolving, decade-by-decade.

Innovative politics are the ultimate bottleneck of 21st-century city planning[4] ― all the technological solutions are known, but none can be employed to impact dwelling scarcity without political alignment. Metropolitan regions are constrained by amenities and infrastructure. When this is obvious, for instance by the need for an airport to service global travel, the regional powers are quick to align behind an expansion of the urban boundary that resolves the constraints of noise in the urban settlement and land conservation at the regional scale. When this is invisible, such as a deficit of pedestrian mobility and regional mass transit accumulating for many generations, the regional powers are unable to engage in a conversation about how to approach the problem.

Today, political constituencies attempt to combat flow by becoming an absorbing bottleneck in order to prevent their own situation from becoming worse. Improving these local situations comes from investing in physical improvements, such as better transit and mobility, more schools, or simply more pleasant physical spaces. These “infilled” amenities can then be exchanged for concessions on growth limits and political boundaries.

In most North American cities, enormous areas of commercial zones and office parks could be upgraded to dense urban neighborhoods without disturbance to existing residential areas. They first need a large-scale public investment in redesigned amenities and connectivity, which only a higher order of governance can afford, one that has a mandate to fix a problem of regional scale.


Canada is aiming to double its population within decades. This implies at least a doubling of the scale of every city in the country, and greater than a doubling if some cities are bottlenecked and the flow of growth must be absorbed by the others. Our largest cities are already congested by decades of car-centric infrastructure investment. Laying out a green belt around each is the first step to preventing more automobile dependency, then budding (as a plant buds) into that green belt with a new fully planned city is the necessary way to welcome all these new citizens into the promised lifestyle.

The urban growth boundary is no more than a regional government embryo. It must be evolved into a true regional planning system. The green belt must be governed by the city it is a belt for, as an ecosystem preserve and ecological asset of that city. It must be governed at the scale of this city, such that its transformation into more dwellings does not worsen scale constraints.

Whether we succeed at our ambition to be the home for a new generation of immigrants while honoring our climate commitments will depend on our ability to break through our city planning bottlenecks and resolve the instabilities we have accumulated over decades of technical debt. The ambition of this project is tantamount to a national mobilization, especially for a country with one of the world’s heaviest carbon footprints and coldest climates. Despite this, it is a vision worth aspiring to as a model of growth.


Mathieu Hélie

On The Nature of Cities

[1] A century later, Robert Moses would template his own career path on the same social bargain – displacement of some in return for a modernized metropolis. His choice of technology was unfortunately much more destructive.

[2] After Haussmann’s firing and the fall of the Second Empire, Alphand would be tasked with managing the totality of the remaining urban planning transformations that had been initiated.


[4] I proposed a new geography of governance in my previous essay. https://www.thenatureofcities.com/2020/01/23/a-fractal-solution-to-regional-complexity-and-governance/

Mathieu Hélie

About the Writer:
Mathieu Hélie

Mathieu Hélie is a software developer on weekdays and a complexity scientist and urbanist on weekends. He publishes the blog EmergentUrbanism.com .

Mathieu Hélie

Mathieu Hélie

Mathieu Hélie is a software developer on weekdays and a complexity scientist and urbanist on weekends. He publishes the blog EmergentUrbanism.com . Following graduate studies at the Institut d'Urbanisme de Paris and undergraduate studies in economics and computer science, he set out to rediscover the fundamentals that made historic cities attractive and apply them to the challenges facing modern sprawl and slum cities, using the new theories emerging from computer science and complexity science, combined with heterodox economics. He lives and is from Montréal, Canada, where he develops Drupal-based publishing solutions for web publications and organizations. Find him on Twitter @mathieuhelie.

Leave a Reply

Your email address will not be published.