Skip to content
CK/SYSTEMS
Project: Macquarie College ICT Platform Source: Retrospective active

Macquarie College Engineering Work: building a maintainable digital operations layer

Retrospective on Macquarie College work, focused on turning web content changes into a consistent engineering system for school operations and long-term maintainability.

journal engineering macquarie-college web-platform maintainability

I build tools for non-engineers to use safely, because the product only works if operations can move without asking, again and again.

Problem

The initial website work was not constrained by a single feature request.
Macquarie College needed a site where non-engineers could safely evolve content for:

  • terms and programs
  • event schedules
  • exam timetables
  • operational notices

The platform was changing quickly, but each small change implied disproportionate engineering effort.
The immediate risk was not a missing feature; it was operational fragility: fast growth in content volume with high manual effort and a high chance of inconsistency.

Forces

  • High change frequency: Academic calendars, announcements, and resource pages were edited regularly and often under time pressure.
  • Limited operator autonomy: The content team should not depend on a narrow engineer queue for routine updates.
  • Diverse page patterns: Reusable blocks were useful, but some pages had unique business constraints and required careful exceptions.
  • Low tolerance for regression: A public education site has limited room for accidental downtime or broken navigation.
  • Maintainability over novelty: The project would be judged over years, not by one visually impressive release.

Solution

I treated the repository as an operations platform and evolved it through small, safe refactors:

  1. standardized content models and routing so changes mapped to predictable locations,
  2. codified reusable patterns for recurring page types,
  3. made defaults defensive and explicit to reduce edge-case failure modes,
  4. simplified state and transition points so contributors could understand page behavior without reverse-engineering the implementation.

This was a deliberate “boring architecture” choice: boring in implementation, but durable in maintenance.

Why it was built this way

Because the real consumer of this system is not an engineer.
When content people can follow stable patterns, they spend less time asking “how was this page built?” and more time improving what students and staff actually need.

The architecture thus traded one-time cleverness for long-term operability: predictable structure was the primary feature.

Consequences

  • Positive
    • Faster routine updates and fewer emergency fixes.
    • Easier onboarding for contributors because the same design patterns repeat across key sections.
    • More confidence in changes during peak academic periods.
  • Negative
    • Less room for ad-hoc experimentation without bending conventions.
    • Some one-off design opportunities were delayed or deferred.
    • Product polish in isolated edges was intentionally deprioritized while core maintainability moved first.

The net result was a maintainable baseline the team can extend, with constraints that are explicit and intentional rather than accidental.

Tradeoffs

  • Conventions-first over template diversity.
  • Release safety over rapid UI experiments.
  • Predictable contributor flow over maximum short-term feature velocity.
  • Small, repetitive refactors over a risky large rewrite.

Commit appendix

  • c73fbdd — fix(student-forms): add same-origin API fallback for localhost failures.
  • 14eef86 — feat(forms): support JSON submissions for managed forms.
  • f34c96b — fix(forms): prioritize managed forms before studio store lookup.
  • fb9bf51 — fix(student-forms): simplify Vercel build command.
  • abf02ec — feat(forms): managed form registry, notification pipeline, and strict Vercel blob handling.

Fagan inspection: design review by commit evidence

I run each retrospective article through a Fagan-style inspection checklist so claims are supported by history, not vibes.

Inspection scope

  • Inputs: linked commits in this article, architecture claims in prose, and explicit design trade-offs.
  • Objective: separate intentional architecture from incidental implementation details.
  • Exit condition: no major claim remains unlinked to a commit trail or clear constraint.

What I inspected

  1. Problem framing — was the failure mode explicit and specific?
  2. Decision rationale — was the reason for each structural choice clear?
  3. Contract boundaries — are state transitions, validation, and permissions explicit?
  4. Verification posture — are risks paired with tests, gates, or operational safeguards?
  5. Residual risk — what is still uncertain and where is next evidence needed?

Findings

  • Pass condition: each design direction is defensible as a trade-off, not preference.
  • Pass condition: at least one linked commit backs every architectural claim.
  • Pass condition: failure modes are named with mitigation decisions.
  • Risk condition: any unsupported claim becomes a follow-up inspection item.

How I design things (Fagan-oriented)

  • Start with a concrete failure, not a feature idea.
  • Define invariants before interface details.
  • Make state and lifecycle transitions explicit.
  • Keep observability at decision points, not only at failures.
  • Treat governance as a design constraint, not a post hoc process.

Next design action

  • Turn this inspection into a backlog trail: each remaining risk maps to one upcoming commit with acceptance evidence.
Newsletter

Short notes on building AI agents in production.

One email when something worth sharing ships. No fluff, no daily cadence, no recycled growth-thread noise.

Primary use: consulting updates, governed AI workflow lessons, and major project writeups.

Newsletter

Short notes on building AI agents in production.

One email when something worth sharing ships. No fluff, no daily cadence, no recycled growth-thread noise.

Primary use: consulting updates, governed AI workflow lessons, and major project writeups.