{"version":1,"site":"https://treenodes.com","title":"TreeNodes public content index","description":"Public pages, selected software projects, articles and reader exercises. This JSON index is an optional discovery aid, not an MCP server or a WebMCP standard endpoint.","search":"/search/?q={query}","entries":[{"kind":"page","title":"TreeNodes","description":"People. Data. Processes. TreeNodes designs, builds, connects and improves software systems, digital products and applied AI for business operations.","url":"/","markdownUrl":"/index.md"},{"kind":"page","title":"Services","description":"Business analysis, technology evaluation, software architecture, web and native app development, APIs and system integrations, data transfer and migration, media, document and data processing, databases, applied AI and scoped technical support.","url":"/services/","markdownUrl":"/services/index.md"},{"kind":"page","title":"What we do","description":"Applications, business systems, integrations, data, files and media, applied AI, cloud and delivery, and existing software, with the tools TreeNodes uses daily: C# and .NET, JavaScript, Swift, Kotlin, SQL Server, GraphQL, Azure, Google Cloud, Cloudflare, OpenAI and Claude.","url":"/services/#service-catalogue","markdownUrl":"/services/index.md"},{"kind":"page","title":"Problems we solve","description":"Disconnected tools, data stuck in old systems, manual copying and chasing, files and media to process, legacy systems nobody dares to change, shadow spreadsheets and AI on your own data, each linked to the TreeNodes service that fixes it.","url":"/services/#problems","markdownUrl":"/services/index.md"},{"kind":"page","title":"How we work","description":"How a project moves from understanding the business to working software and operation. Compare discovery and scope, architecture review and an initial build, with deliverables, planning ranges, collaboration and handover arrangements.","url":"/services/working-together/","markdownUrl":"/services/working-together/index.md"},{"kind":"page","title":"How TreeNodes works","description":"Your business goes in: people, data, processes and what gets in their way. TreeNodes understands, designs, builds and connects the software, then checks the results in real use and keeps improving it.","url":"/services/#system-approach","markdownUrl":"/services/index.md"},{"kind":"page","title":"About TreeNodes","description":"Business and systems analysis, technology evaluation, software architecture, hands-on development and applied AI for clearer workflows, connected information and dependable applications.","url":"/services/#about-treenodes","markdownUrl":"/services/index.md"},{"kind":"page","title":"What we build","description":"Custom web platforms, native apps, APIs and business software. Explore projects in file collection, project management and personalised learning.","url":"/products/","keywords":["File & document processing","A product for collecting client files through a structured request, with requirements, outstanding items and progress visible in one place.","Project management","A complete project management platform connecting projects, client files and file sending, planning and team coordination, with continuing technical support and improvements.","Music learning","A complete music learning platform across web, iOS, iPad and Android, connecting course information, data processing and visualisation with personalised learning paths and certification.","Real estate","A website and backend for a real estate photography and marketing business.","Social platforms","A social network for American football fans, connecting member activity, conversations and shared interests. ManUp developed into Hoottle.","Medical & health","A women’s community discussion website, delivered through requirements analysis, website and data structure, and software implementation.","Commerce","An eyewear marketplace delivered from the initial idea through analysis, architecture and complete software implementation.","Education and tutoring","A platform connecting young people aged 11–17 with verified volunteer teachers and university students for supervised, recorded online classes.","Care planning app","A completed iOS app bringing daily records, chemotherapy and medication planning, diary entries and trend charts together.","Drama school website","A completed WordPress website helping a drama school present its classes online.","Image processing","Image assets need to move from source to the right version, format and destination without losing their context.","CMS & publishing","Publishing works better when content has a clear structure, an owner and a reliable route from draft to release.","Construction","Construction work brings together project records, changing plans and people working across sites and offices.","Theatre & events","An event has one public experience supported by schedules, people and information that can change right up to delivery.","Travel","Travel products need to keep useful planning information connected to availability, booking status and changes along the way.","Food & cuisine","Food businesses need clear ways to manage their content, keep service information current and coordinate the work behind it."],"markdownUrl":"/products/index.md"},{"kind":"page","title":"FileTRX workflow case study","description":"A detailed look at the FileTRX request workflow, product design decisions and screenshots, from defining required files to tracking partial completion.","url":"/products/filetrx/","searchType":"project","markdownUrl":"/products/filetrx/index.md"},{"kind":"page","title":"Projects: platforms, websites and volunteering","description":"Explore TreeNodes platforms, commerce and corporate websites, professional services projects and volunteering, with the delivery scope described for each project.","url":"/case-studies/","markdownUrl":"/case-studies/index.md"},{"kind":"page","title":"Applied AI","description":"Business requirements, analysis, architecture, implementation and operation. AI recommendations, document processing, OpenAI, Claude and hosted or self-hosted open-source AI API integration. Showcases a complete music learning platform delivered under NDA in 2023–early 2026 across web, Swift iOS and iPad apps, and Kotlin Android apps. The platform combines data processing, visualisation and course and learner relationships with AI course and learning-path recommendations. Its technology includes C#, GraphQL and an open-source AI API.","url":"/applied-ai/","searchType":"service","searchSummary":"AI recommendations, document processing and workflow integration, from requirements and architecture to implementation, evaluation and support.","markdownUrl":"/applied-ai/index.md"},{"kind":"page","title":"Articles","description":"Browse systems design, applied AI, approach and computer fundamentals.","url":"/articles/","markdownUrl":"/articles/index.md"},{"kind":"page","title":"Article reading paths","description":"Guided reading on designing an AI system, improving business workflows and making architecture decisions.","url":"/articles/reading-paths/","markdownUrl":"/articles/reading-paths/index.md"},{"kind":"page","title":"Practical resources","description":"Prompts, code, worksheets and models to try with the articles.","url":"/resources/","markdownUrl":"/resources/index.md"},{"kind":"page","title":"Discuss a project","description":"Prepare an enquiry, then review and submit it using the contact form.","url":"/contact/","markdownUrl":"/contact/index.md"},{"kind":"page","title":"Search TreeNodes","description":"Find articles, practical resources, services and authors by topic or title.","url":"/search/"},{"kind":"page","title":"For AI readers","description":"Read public TreeNodes pages as Markdown, find original sources, and use supported browser tools.","url":"/ai-readers/","markdownUrl":"/ai-readers/index.md"},{"kind":"page","title":"Privacy policy","description":"How TreeNodes handles contact enquiries, subscriptions and website data.","url":"/privacy/","markdownUrl":"/privacy/index.md"},{"kind":"page","title":"Terms of use","description":"Terms for using the TreeNodes website, articles and downloadable materials.","url":"/terms/","markdownUrl":"/terms/index.md"},{"kind":"page","title":"Business & systems analysis | TreeNodes services","searchType":"service","searchSummary":"Understand the operation, map workflows and agree requirements, responsibilities and business rules before committing them to software.","description":"TreeNodes business and systems analysis: understand workflows, agree requirements and business rules, and define a practical scope for software delivery.","url":"/services/business-systems-analysis/","keywords":["service","Business & systems analysis","discovery","requirements analysis","business processes","workflow mapping","An operation model","Agreed requirements","A practical scope"],"markdownUrl":"/services/business-systems-analysis/index.md"},{"kind":"page","title":"Software architecture | TreeNodes services","searchType":"service","searchSummary":"Clarify system boundaries, responsibilities and dependencies. Make the important design decisions before a difficult change or a new build.","description":"TreeNodes software architecture: evaluate technology options, system boundaries and dependencies, then agree a workable route for implementation and change.","url":"/services/software-architecture/","keywords":["service","Software architecture","architecture review","system design","technology evaluation","system integration","migration","Useful architecture views","Design decisions","An implementation route"],"markdownUrl":"/services/software-architecture/index.md"},{"kind":"page","title":"Web, mobile & business software | TreeNodes services","searchType":"service","searchSummary":"Build web and mobile applications and business systems, with the frontend, backend, APIs and databases they need. Take the agreed design through testing, release and handover.","description":"TreeNodes software development for web and mobile applications, native iOS and Android apps, business systems, APIs, databases and integrations.","url":"/services/software-development/","keywords":["service","Web, mobile & business software","software development","mobile app development","web application development","custom business software","iOS","Android","frontend","backend","APIs","customer portal","internal tools","Connected software","Data processing and visualisation","Reviewed behaviour","Release and handover"],"markdownUrl":"/services/software-development/index.md"},{"kind":"page","title":"Workflow automation | TreeNodes services","searchType":"service","searchSummary":"When work depends on copying, chasing or re-entering information, connect the steps and give exceptions a clear route.","description":"TreeNodes workflow automation: connect business steps, systems and data while keeping approvals, exception handling and operational ownership clear.","url":"/services/workflow-automation/","keywords":["service","Workflow automation","business process automation","automate manual tasks","system integration","approvals","An agreed workflow","Connected steps","Exception handling"],"markdownUrl":"/services/workflow-automation/index.md"},{"kind":"page","title":"Database & technical support | TreeNodes services","searchType":"service","searchSummary":"Support the software already in use, including database work, technical issues and new requests. Agree priorities, scope and response arrangements around your operation.","description":"TreeNodes database and technical support for existing software: investigate issues, maintain data and implement agreed improvements and new requests.","url":"/services/technical-support/","keywords":["service","Database & technical support","software maintenance","database support","existing system","application support","A shared technical picture","Agreed fixes and changes","Clear support arrangements"],"markdownUrl":"/services/technical-support/index.md"},{"kind":"page","title":"Designing an AI system","description":"Choose the parts, define the task, give the agent useful context, then apply it to a changing design. A clearer system design and a task brief you can try with an AI model.","url":"/articles/reading-paths/#ai-system-design","keywords":["reading path","guide","AI system design"],"markdownUrl":"/articles/reading-paths/index.md"},{"kind":"page","title":"Improving business workflows","description":"Understand the work people actually do before changing the software that supports it. A map of hidden rules, responsibilities and exceptions, with a small improvement to test.","url":"/articles/reading-paths/#work-the-system-cannot-see","keywords":["reading path","guide","Business workflows"],"markdownUrl":"/articles/reading-paths/index.md"},{"kind":"page","title":"Making architecture decisions","description":"Understand what software architecture means, model the system, choose useful views, then trace what happens at runtime. A design you can explain at several levels, from business rules to a running machine.","url":"/articles/reading-paths/#dependable-systems-ai-era","keywords":["reading path","guide","Software architecture"],"markdownUrl":"/articles/reading-paths/index.md"},{"kind":"page","title":"Nermien Barakat","description":"Principal Software Architect & Engineer | Web & Mobile Applications | Business Systems & Applied AI. I design and build web and mobile applications, business systems and applied AI. My work connects how a business operates with the architecture and implementation of its software, from understanding requirements to improving a system in use.","url":"/articles/by/nermien-barakat/","author":"Nermien Barakat","keywords":["author","profile","articles","systems architecture","applied AI"],"markdownUrl":"/articles/by/nermien-barakat/index.md"},{"kind":"page","title":"FileTRX | TreeNodes projects","searchType":"project","searchSummary":"A product for collecting client files through a structured request, with requirements, outstanding items and progress visible in one place.","description":"A product for collecting client files through a structured request, with requirements, outstanding items and progress visible in one place. Analysis, architecture, software implementation and ongoing technical support. Current project","url":"/case-studies/filetrx/","keywords":["portfolio","project","Client file collection","systems analysis","software architecture","software development"],"markdownUrl":"/case-studies/filetrx/index.md"},{"kind":"page","title":"Infinitely Big | TreeNodes projects","searchType":"project","searchSummary":"A complete project management platform connecting projects, client files and file sending, planning and team coordination, with continuing technical support and improvements.","description":"A complete project management platform connecting projects, client files and file sending, planning and team coordination, with continuing technical support and improvements. Analysis, architecture and frontend and backend development, with ongoing database and technical support, new requirements and implementation. 2008–present","url":"/case-studies/infinitely-big/","keywords":["portfolio","project","Project management","systems analysis","software architecture","software development"],"markdownUrl":"/case-studies/infinitely-big/index.md"},{"kind":"page","title":"Music learning platform | TreeNodes projects","searchType":"project","searchSummary":"A complete music learning platform across web, iOS, iPad and Android, connecting course information, data processing and visualisation with personalised learning paths and certification.","description":"A complete music learning platform across web, iOS, iPad and Android, connecting course information, data processing and visualisation with personalised learning paths and certification. Complete project delivery: requirements analysis, technology evaluation, software architecture, web and native apps, backend, APIs and databases. 2023–early 2026","url":"/case-studies/music-learning/","keywords":["portfolio","project","Music learning and applied AI","systems analysis","software architecture","software development","C#","GraphQL","Swift for iOS and iPad","Kotlin for Android","Open-source AI API"],"markdownUrl":"/case-studies/music-learning/index.md"},{"kind":"page","title":"Eyeking Marketplace | TreeNodes projects","searchType":"project","searchSummary":"An eyewear marketplace delivered from the initial idea through analysis, architecture and complete software implementation.","description":"An eyewear marketplace delivered from the initial idea through analysis, architecture and complete software implementation. Complete project delivery: idea development, requirements analysis, software architecture, frontend and backend implementation.","url":"/case-studies/eyeking/","keywords":["portfolio","project","E-commerce","systems analysis","software architecture","software development","nopCommerce","C#","SQL Server","JavaScript","jQuery","HTML","CSS"],"markdownUrl":"/case-studies/eyeking/index.md"},{"kind":"page","title":"2View.COM | TreeNodes projects","searchType":"project","searchSummary":"A website and backend for a real estate photography and marketing business.","description":"A website and backend for a real estate photography and marketing business. Analysis, architecture and complete website and backend development, with continuing technical support.","url":"/case-studies/2view/","keywords":["portfolio","project","Real estate photography and marketing","systems analysis","software architecture","software development"],"markdownUrl":"/case-studies/2view/index.md"},{"kind":"page","title":"ManUp → Hoottle | TreeNodes projects","searchType":"project","searchSummary":"A social network for American football fans, connecting member activity, conversations and shared interests. ManUp developed into Hoottle.","description":"A social network for American football fans, connecting member activity, conversations and shared interests. ManUp developed into Hoottle. Analysis, architecture and complete frontend and backend development, with continuing technical support. From 2009 · Three-year project","url":"/case-studies/manup/","keywords":["portfolio","project","Community platform","systems analysis","software architecture","software development"],"markdownUrl":"/case-studies/manup/index.md"},{"kind":"page","title":"MIDI | TreeNodes projects","searchType":"project","searchSummary":"An interactive Case Studies section for a product development website, connecting category browsing with project details and imagery.","description":"An interactive Case Studies section for a product development website, connecting category browsing with project details and imagery. Frontend implementation of the Case Studies section using HTML, CSS and jQuery.","url":"/case-studies/midi/","keywords":["portfolio","project","Interactive case studies","systems analysis","software architecture","software development","HTML","CSS","jQuery"],"markdownUrl":"/case-studies/midi/index.md"},{"kind":"page","title":"MedImmune | TreeNodes projects","searchType":"project","searchSummary":"A corporate website project delivered from the initial idea through analysis, architecture and complete implementation.","description":"A corporate website project delivered from the initial idea through analysis, architecture and complete implementation. Complete website project delivery: idea development, requirements analysis, software architecture and implementation.","url":"/case-studies/medimmune/","keywords":["portfolio","project","Corporate website","systems analysis","software architecture","software development","HTML","CSS","JavaScript"],"markdownUrl":"/case-studies/medimmune/index.md"},{"kind":"page","title":"Eliquis e-library | TreeNodes projects","searchType":"project","searchSummary":"A resource portal connecting category navigation with document and media discovery.","description":"A resource portal connecting category navigation with document and media discovery. Website and resource-library development, including category navigation, document and media browsing.","url":"/case-studies/eliquis/","keywords":["portfolio","project","Digital resource library","systems analysis","software architecture","software development","C#","ASP.NET","SQL Server","HTML","CSS","jQuery"],"markdownUrl":"/case-studies/eliquis/index.md"},{"kind":"page","title":"Capital Contractors | TreeNodes projects","searchType":"project","searchSummary":"A facilities-services website delivered from the initial idea through analysis, architecture and complete implementation.","description":"A facilities-services website delivered from the initial idea through analysis, architecture and complete implementation. Complete website project delivery: idea development, requirements analysis, software architecture and implementation.","url":"/case-studies/capital-contractors/","keywords":["portfolio","project","Facilities services website","systems analysis","software architecture","software development","HTML","CSS","jQuery"],"markdownUrl":"/case-studies/capital-contractors/index.md"},{"kind":"page","title":"Mavrides Moyal & Associates | TreeNodes projects","searchType":"project","searchSummary":"A public website for a legal practice, delivered from the initial idea through analysis, architecture and complete implementation.","description":"A public website for a legal practice, delivered from the initial idea through analysis, architecture and complete implementation. Complete website project delivery: idea development, requirements analysis, software architecture and implementation.","url":"/case-studies/mavrides-moyal/","keywords":["portfolio","project","Professional services website","systems analysis","software architecture","software development","HTML","CSS"],"markdownUrl":"/case-studies/mavrides-moyal/index.md"},{"kind":"page","title":"Women’s discussion forum | TreeNodes projects","searchType":"project","searchSummary":"A women’s community discussion website, delivered through requirements analysis, website and data structure, and software implementation.","description":"A women’s community discussion website, delivered through requirements analysis, website and data structure, and software implementation. Requirements analysis, architecture, website and database implementation, with attention to sensitive information.","url":"/case-studies/women-living-with-cancer/","keywords":["portfolio","project","Community discussion website","systems analysis","software architecture","software development"],"markdownUrl":"/case-studies/women-living-with-cancer/index.md"},{"kind":"page","title":"Women’s support app | TreeNodes projects","searchType":"project","searchSummary":"A completed iOS app bringing daily records, chemotherapy and medication planning, diary entries and trend charts together.","description":"A completed iOS app bringing daily records, chemotherapy and medication planning, diary entries and trend charts together. Complete project delivery: requirements, architecture, frontend, backend, APIs and databases.","url":"/case-studies/womens-support-app/","keywords":["portfolio","project","Swift iOS application","systems analysis","software architecture","software development","Swift","SwiftUI"],"markdownUrl":"/case-studies/womens-support-app/index.md"},{"kind":"page","title":"Volunteer learning platform | TreeNodes projects","searchType":"project","searchSummary":"A platform connecting young people aged 11–17 with verified volunteer teachers and university students for supervised, recorded online classes.","description":"A platform connecting young people aged 11–17 with verified volunteer teachers and university students for supervised, recorded online classes. Website analysis, architecture and software contribution for learning resources and volunteer connections.","url":"/case-studies/learning-support/","keywords":["portfolio","project","Supervised online learning","systems analysis","software architecture","software development"],"markdownUrl":"/case-studies/learning-support/index.md"},{"kind":"page","title":"Drama school website | TreeNodes projects","searchType":"project","searchSummary":"A completed WordPress website helping a drama school present its classes online.","description":"A completed WordPress website helping a drama school present its classes online. Website development and class presentation using WordPress.","url":"/case-studies/drama-school/","keywords":["portfolio","project","Arts and education website","systems analysis","software architecture","software development","WordPress"],"markdownUrl":"/case-studies/drama-school/index.md"},{"kind":"page","title":"Volunteering","description":"Our team has contributed software skills to women’s support, young people’s learning and the arts. These completed projects include a discussion forum, an iOS support app, a volunteer learning platform and a drama school website. For future voluntary work, TreeNodes welcomes enquiries from verified organisations and businesses supporting women living with cancer or widening access to education. We can help with software architecture, applications, websites and databases. We consider each request individually, based on available capacity and where our skills can make a useful contribution.","url":"/case-studies/#volunteering","keywords":["community support","volunteering","voluntary support","women living with cancer","education","free courses","volunteer tutors","young people","verified organisations","websites","databases"],"markdownUrl":"/case-studies/index.md"},{"kind":"article","title":"Skills, MCP, RAG and Memory: How an AI Agent Investigates a 500 Error","description":"A post will not publish. Follow one 500 error from the server logs to a missing database update, and see how skills, MCP, RAG and memory support the investigation.","url":"/articles/skills-mcp-rag-memory-500-error/","topic":"Applied AI","author":"Nermien Barakat","published":"2026-09-22T00:00:00.000Z","updated":"2026-09-22T00:00:00.000Z","readTime":"6 min read","keywords":["agent skills","Model Context Protocol","MCP","retrieval augmented generation","RAG","AI agent memory","500 internal server error","AI debugging","database migrations"],"markdownUrl":"/articles/skills-mcp-rag-memory-500-error/index.md"},{"kind":"article","title":"Jira and Confluence: From a Business Question to a Working Feature","description":"Follow the work. Make its logic visible. Three scenarios connect a map of current operations to shared decisions, scoped Jira work and validation.","url":"/articles/jira-confluence-business-question-to-working-feature/","topic":"Systems design","author":"Nermien Barakat","published":"2026-09-16T00:00:00.000Z","updated":"2026-09-18T00:00:00.000Z","readTime":"25 min read","keywords":["Jira and Confluence","product requirements document","requirements traceability","Jira user stories","acceptance criteria","decision records","requirement changes","business analysis","project capacity planning","customer onboarding"],"markdownUrl":"/articles/jira-confluence-business-question-to-working-feature/index.md"},{"kind":"article","title":"What is software architecture?","description":"How a system’s parts fit together, why the design matters, and how to think about the choices behind it.","url":"/articles/what-is-software-architecture/","topic":"Systems design","author":"Nermien Barakat","published":"2026-09-09T00:00:00.000Z","updated":"2026-09-09T00:00:00.000Z","readTime":"6 min read","keywords":["what is software architecture","software architecture definition","architecture decisions","software architecture trade-offs","quality attributes","software architecture examples","system boundaries","information ownership","software architecture components","software architecture diagrams","architectural thinking","software architect role"],"markdownUrl":"/articles/what-is-software-architecture/index.md"},{"kind":"article","title":"If AI can build the software, what is the architect for?","description":"A convincing portal demo leaves important decisions open. Follow a delivery-change request to see how architecture connects business rules, system ownership and recovery when AI helps build the software.","url":"/articles/if-ai-can-build-software-what-is-the-architect-for/","topic":"Systems design","author":"Nermien Barakat","published":"2026-09-07T00:00:00.000Z","updated":"2026-09-07T00:00:00.000Z","readTime":"8 min read","keywords":["AI-assisted software architecture","architect role","business analysis","legacy modernisation","transitional architecture","architecture decision records","request recovery","idempotency","system ownership"],"markdownUrl":"/articles/if-ai-can-build-software-what-is-the-architect-for/index.md"},{"kind":"article","title":"How AI systems fit together","description":"LLMs, RAG, fine-tuning, workflows, agents, MCP and WebMCP: what each contributes, when to use it, and how to combine them in a working system.","url":"/articles/how-ai-systems-fit-together/","topic":"Applied AI","author":"Nermien Barakat","published":"2026-09-06T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"13 min read","keywords":["AI system design","large language models","retrieval-augmented generation","RAG vs fine-tuning","workflows vs agents","Model Context Protocol","MCP vs WebMCP","AI architecture","supplier onboarding","structured prompt example"],"markdownUrl":"/articles/how-ai-systems-fit-together/index.md"},{"kind":"article","title":"What is Astra, and when would I use it?","description":"Where OpenAI’s Astra fits in architecture and delivery: compare models and pricing, then work through a booking-system migration as the requirements change.","url":"/articles/astra-and-the-moment-the-brief-changes/","topic":"Applied AI","author":"Nermien Barakat","published":"2026-09-05T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"13 min read","keywords":["GPT-6 Astra","OpenAI model comparison","Astra Sol Terra Luna","AI-assisted architecture","booking system migration","software architecture","mid-turn steering","asynchronous tool calling"],"markdownUrl":"/articles/astra-and-the-moment-the-brief-changes/index.md"},{"kind":"article","title":"The exception path is the real workflow","description":"An invoice needs approval. A reviewer is away. A payment times out. Each needs a different next step. Here is how to design for those cases.","url":"/articles/the-exception-path-is-the-real-workflow/","topic":"Systems design","author":"Nermien Barakat","published":"2026-08-25T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"15 min read","keywords":["workflow exception handling","exception paths","workflow automation","business process exceptions","human in the loop","operational resilience","workflow design","business process modelling","idempotency","retry patterns","exception management","human judgment","process improvement","systems architecture"],"markdownUrl":"/articles/the-exception-path-is-the-real-workflow/index.md"},{"kind":"article","title":"The person missing from the diagram","description":"The diagram shows a handoff. Someone still has to chase it, check it and make it happen. How to design for the human work your system depends on.","url":"/articles/the-person-missing-from-the-diagram/","topic":"Systems design","author":"Nermien Barakat","published":"2026-08-23T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"10 min read","keywords":["invisible work in software systems","articulation work","tacit knowledge","situated action","sociotechnical systems","system diagrams","operational resilience","key person dependency","business operations","software architecture","human judgment","organisational knowledge"],"markdownUrl":"/articles/the-person-missing-from-the-diagram/index.md"},{"kind":"article","title":"What the spreadsheet knows that the system does not","description":"The new system is live. Why does the team still need a spreadsheet? Look at its columns, formulas and workarounds before deciding what to replace.","url":"/articles/what-the-spreadsheet-knows-that-the-system-does-not/","topic":"Systems design","author":"Nermien Barakat","published":"2026-08-23T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"11 min read","keywords":["shadow spreadsheets","shadow systems","shadow IT","spreadsheet workarounds","hidden business rules","tacit knowledge","situated action","boundary objects","end-user computing","spreadsheet governance","business system migration","knowledge migration","legacy modernisation","systems analysis"],"markdownUrl":"/articles/what-the-spreadsheet-knows-that-the-system-does-not/index.md"},{"kind":"article","title":"What happens when you press a computer’s power button?","description":"From the first light to the login screen: how power, firmware and the operating system bring a computer to life, and where startup can stop.","url":"/articles/what-happens-when-you-press-the-power-button/","topic":"Computer fundamentals","author":"Nermien Barakat","published":"2026-08-22T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"16 min read","keywords":["computer boot process","how computers work","computer components","computer architecture","operating systems","platform security","cold boot","warm boot","Windows Fast Startup","UEFI","BIOS","POST","reset vector","UEFI boot manager","EFI System Partition","bootloader","initramfs","operating system kernel","user space","Secure Boot","Measured Boot","TPM","boot failure troubleshooting","firmware security"],"markdownUrl":"/articles/what-happens-when-you-press-the-power-button/index.md"},{"kind":"article","title":"The C4 model: architecture at the right level","description":"Explain a software system without putting everything on one diagram. A practical guide to C4 views, examples, AI-assisted documentation and tools.","url":"/articles/c4-model-software-architecture/","topic":"Systems design","author":"Nermien Barakat","published":"2026-08-13T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"25 min read","keywords":["C4 model","software architecture","architecture diagrams","system context diagram","container diagram","component diagram","system landscape diagram","dynamic diagram","deployment diagram","architecture documentation","architecture documentation tools","architecture as code","architecture decision records","model-code gap","microservices architecture","message-driven architecture","software architecture diagram review","IcePanel","Eraser","Structurizr","arc42","4+1 view model","UML","ArchiMate","TOGAF","AI architecture","AI-assisted documentation"],"markdownUrl":"/articles/c4-model-software-architecture/index.md"},{"kind":"article","title":"Give AI agents a design reference","description":"“Make it look modern” leaves too much to guess. Give your coding agent the colours, type, spacing and component rules it needs to build consistently.","url":"/articles/design-references-for-ai-agents/","topic":"Applied AI","author":"Nermien Barakat","published":"2026-08-10T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"6 min read","keywords":[],"markdownUrl":"/articles/design-references-for-ai-agents/index.md"},{"kind":"article","title":"Kaizen, applied to software","description":"A small daily workaround can waste hours over time. How to spot one, try a manageable improvement and check whether it actually helped.","url":"/articles/kaizen-and-software/","topic":"Approach","author":"Nermien Barakat","published":"2026-08-05T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"3 min read","keywords":[],"markdownUrl":"/articles/kaizen-and-software/index.md"},{"kind":"article","title":"Modelling the system before the code","description":"Sales, Finance and Fulfilment may mean different things by “order”. Find those differences before they become database fields and API rules.","url":"/articles/modelling-the-system-before-the-code/","topic":"Systems design","author":"Nermien Barakat","published":"2026-07-22T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"5 min read","keywords":[],"markdownUrl":"/articles/modelling-the-system-before-the-code/index.md"},{"kind":"article","title":"Giving AI a job description","description":"Before AI reads an invoice or drafts a reply, decide what it should do when it gets stuck. Define the task, the review and the fallback.","url":"/articles/giving-ai-a-job-description/","topic":"Applied AI","author":"Nermien Barakat","published":"2026-06-18T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"5 min read","keywords":[],"markdownUrl":"/articles/giving-ai-a-job-description/index.md"},{"kind":"article","title":"Software should follow the business","description":"Follow one order, invoice or client request from start to finish. The waits, decisions and workarounds tell you what the software needs to support.","url":"/articles/software-should-follow-the-business/","topic":"Approach","author":"Nermien Barakat","published":"2026-05-12T00:00:00.000Z","updated":"2026-09-06T14:36:29.000Z","readTime":"11 min read","keywords":["business-aligned software architecture","Conway's Law","domain-driven design","sociotechnical systems","software modularity","operating model","software boundaries","Team Topologies","work as done"],"markdownUrl":"/articles/software-should-follow-the-business/index.md"},{"kind":"resource","title":"Diagnose the publishing failure","description":"Use a small, fictional evidence pack to check whether an explanation follows from the records.","url":"/articles/skills-mcp-rag-memory-500-error/#reader-exercise","articleTitle":"Skills, MCP, RAG and Memory: How an AI Agent Investigates a 500 Error","topic":"Applied AI","keywords":["agent skills","Model Context Protocol","MCP","retrieval augmented generation","RAG","AI agent memory","500 internal server error","AI debugging","database migrations"],"author":"Nermien Barakat","format":"Prompt","instructions":"Copy the complete prompt into a new chat, or work through it yourself. Everything needed is included. This exercise uses supplied records; it does not connect to a live system or configure MCP, retrieval or memory.","downloads":[{"title":"Trace a 500 error from the evidence","url":"/downloads/practice/ai-agent-500-error-evidence.txt"}],"markdownUrl":"/articles/skills-mcp-rag-memory-500-error/index.md"},{"kind":"resource","title":"Can a colleague follow the change?","description":"Pick one requirement that changed recently. Give a colleague its Jira story and ask them to find the reason, decision owner, impacted work and validation evidence.","url":"/articles/jira-confluence-business-question-to-working-feature/#reader-exercise","articleTitle":"Jira and Confluence: From a Business Question to a Working Feature","topic":"Systems design","keywords":["Jira and Confluence","product requirements document","requirements traceability","Jira user stories","acceptance criteria","decision records","requirement changes","business analysis","project capacity planning","customer onboarding"],"author":"Nermien Barakat","format":"Worksheet","instructions":"Use a requirement you are allowed to review, or one of the fictional scenarios above. Copy the worksheet, fill in the records you can locate and mark missing evidence as pending. Ask your colleague to follow the links without an extra verbal explanation.","downloads":[{"title":"Decision-to-delivery worksheet","url":"/downloads/practice/decision-to-delivery-worksheet.txt"}],"markdownUrl":"/articles/jira-confluence-business-question-to-working-feature/index.md"},{"kind":"resource","title":"Try it in five minutes","description":"Identify the parts, responsibilities and connections in a fictional shared task application.","url":"/articles/what-is-software-architecture/#reader-exercise","articleTitle":"What is software architecture?","topic":"Systems design","keywords":["what is software architecture","software architecture definition","architecture decisions","software architecture trade-offs","quality attributes","software architecture examples","system boundaries","information ownership","software architecture components","software architecture diagrams","architectural thinking","software architect role"],"author":"Nermien Barakat","format":"Quick check","instructions":"Read the small brief below and answer in three sentences, on your own or with a colleague.","downloads":[{"title":"Explain a small system","url":"/downloads/practice/software-architecture-promise-review.txt"}],"markdownUrl":"/articles/what-is-software-architecture/index.md"},{"kind":"resource","title":"Recover an uncertain delivery change","description":"Use the article’s hypothetical supplier and a delivery-change request whose response never arrived. Compare the proposed customer state and recovery process with the business rules.","url":"/articles/if-ai-can-build-software-what-is-the-architect-for/#reader-exercise","articleTitle":"If AI can build the software, what is the architect for?","topic":"Systems design","keywords":["AI-assisted software architecture","architect role","business analysis","legacy modernisation","transitional architecture","architecture decision records","request recovery","idempotency","system ownership"],"author":"Nermien Barakat","format":"Prompt","instructions":"Open a new chat in your preferred AI assistant and copy the complete prompt. Its fictional fixture is included; no live order system or external data is needed. Compare the response with the expected results, then inspect the staff-change variation.","downloads":[{"title":"Recover a delivery-change request","url":"/downloads/practice/delivery-change-recovery.txt"}],"markdownUrl":"/articles/if-ai-can-build-software-what-is-the-architect-for/index.md"},{"kind":"resource","title":"Review a supplier using supplied evidence","description":"Two prompts, fictional supplier evidence, a review policy and expected outcomes.","url":"/articles/how-ai-systems-fit-together/#try-it-yourself","articleTitle":"How AI systems fit together","topic":"Applied AI","keywords":["AI system design","large language models","retrieval-augmented generation","RAG vs fine-tuning","workflows vs agents","Model Context Protocol","MCP vs WebMCP","AI architecture","supplier onboarding","structured prompt example"],"author":"Nermien Barakat","format":"Prompts + visual guide","instructions":"Use a new chat with the model of your choice. Follow the supplied evidence and policy; compare the result with the article.","downloads":[{"title":"Both supplier-review prompts","url":"/downloads/supplier-review-prompts.txt"}],"markdownUrl":"/articles/how-ai-systems-fit-together/index.md"},{"kind":"resource","title":"Design the booking migration","description":"Use the same four-location business and the same launch constraint. First plan the staged migration; then add customer credits that must work across locations.","url":"/articles/astra-and-the-moment-the-brief-changes/#reader-exercise","articleTitle":"What is Astra, and when would I use it?","topic":"Applied AI","keywords":["GPT-6 Astra","OpenAI model comparison","Astra Sol Terra Luna","AI-assisted architecture","booking system migration","software architecture","mid-turn steering","asynchronous tool calling"],"author":"Nermien Barakat","format":"Prompts","instructions":"Open a new chat with Astra or another reasoning model. Run the first brief, read the decision record, then send the change request in the same conversation. These records are fictional and self-contained.","downloads":[{"title":"1. Prepare the migration decision","url":"/downloads/practice/booking-migration-brief.txt"},{"title":"2. Introduce shared credits","url":"/downloads/practice/booking-credit-change.txt"}],"markdownUrl":"/articles/astra-and-the-moment-the-brief-changes/index.md"},{"kind":"resource","title":"Make an uncertain payment recoverable","description":"A timeout leaves the payment outcome unknown. This small state machine makes the next action explicit and keeps a repeated event from changing the case twice.","url":"/articles/the-exception-path-is-the-real-workflow/#reader-exercise","articleTitle":"The exception path is the real workflow","topic":"Systems design","keywords":["workflow exception handling","exception paths","workflow automation","business process exceptions","human in the loop","operational resilience","workflow design","business process modelling","idempotency","retry patterns","exception management","human judgment","process improvement","systems architecture"],"author":"Nermien Barakat","format":"Code","instructions":"Download the example and run node exception-transitions.mjs with Node.js. It uses invented records and calls no payment service.","downloads":[{"title":"Payment state and event handling","url":"/downloads/practice/exception-transitions.mjs"}],"markdownUrl":"/articles/the-exception-path-is-the-real-workflow/index.md"},{"kind":"resource","title":"Review a handoff before automating it","description":"Use a handoff review to find the responsibility hidden inside an arrow. The useful result is an agreement about the work, including what happens when the usual person is away.","url":"/articles/the-person-missing-from-the-diagram/#reader-exercise","articleTitle":"The person missing from the diagram","topic":"Systems design","keywords":["invisible work in software systems","articulation work","tacit knowledge","situated action","sociotechnical systems","system diagrams","operational resilience","key person dependency","business operations","software architecture","human judgment","organisational knowledge"],"author":"Nermien Barakat","format":"Worksheet","instructions":"Use this as an interview worksheet or paste it into a chat to analyse the fictional notes. Validate the result with the people who own the real process before applying it.","downloads":[{"title":"Handoff review worksheet","url":"/downloads/practice/handoff-review.txt"}],"markdownUrl":"/articles/the-person-missing-from-the-diagram/index.md"},{"kind":"resource","title":"Recover the rules behind a spreadsheet","description":"A table alone will not explain why somebody highlighted a row. Use the records and their accompanying notes to separate an observed workaround from an agreed business rule.","url":"/articles/what-the-spreadsheet-knows-that-the-system-does-not/#reader-exercise","articleTitle":"What the spreadsheet knows that the system does not","topic":"Systems design","keywords":["shadow spreadsheets","shadow systems","shadow IT","spreadsheet workarounds","hidden business rules","tacit knowledge","situated action","boundary objects","end-user computing","spreadsheet governance","business system migration","knowledge migration","legacy modernisation","systems analysis"],"author":"Nermien Barakat","format":"Data + prompt","instructions":"Paste both the sample and the review prompt into a new chat. You can also save the CSV in a spreadsheet. All records are fictional; the colour meanings are supplied separately because CSV does not preserve formatting.","downloads":[{"title":"Sample request register","url":"/downloads/practice/request-register.csv"},{"title":"Extract candidate rules with evidence","url":"/downloads/practice/spreadsheet-rule-review.txt"}],"markdownUrl":"/articles/what-the-spreadsheet-knows-that-the-system-does-not/index.md"},{"kind":"resource","title":"Inspect your own startup","description":"The layers in the article leave different evidence. These read-only commands show either startup timing or the operating system’s recorded boot time; those are different measurements.","url":"/articles/what-happens-when-you-press-the-power-button/#reader-exercise","articleTitle":"What happens when you press a computer’s power button?","topic":"Computer fundamentals","keywords":["computer boot process","how computers work","computer components","computer architecture","operating systems","platform security","cold boot","warm boot","Windows Fast Startup","UEFI","BIOS","POST","reset vector","UEFI boot manager","EFI System Partition","bootloader","initramfs","operating system kernel","user space","Secure Boot","Measured Boot","TPM","boot failure troubleshooting","firmware security"],"author":"Nermien Barakat","format":"Commands","instructions":"Choose the block for your operating system and run it in a terminal or PowerShell. No administrator elevation or firmware change is part of this exercise. Availability and recorded fields vary by machine.","downloads":[{"title":"Linux using systemd: startup timing","url":"/downloads/practice/startup-linux.sh"},{"title":"macOS: recorded boot time and uptime","url":"/downloads/practice/startup-macos.sh"},{"title":"Windows PowerShell: recorded OS boot time","url":"/downloads/practice/startup-windows.ps1"}],"markdownUrl":"/articles/what-happens-when-you-press-the-power-button/index.md"},{"kind":"resource","title":"Generate two views from one model","description":"The Business Operations Platform in this article can be represented as one maintained model. This example generates its context and container views without drawing the same relationship twice.","url":"/articles/c4-model-software-architecture/#reader-exercise","articleTitle":"The C4 model: architecture at the right level","topic":"Systems design","keywords":["C4 model","software architecture","architecture diagrams","system context diagram","container diagram","component diagram","system landscape diagram","dynamic diagram","deployment diagram","architecture documentation","architecture documentation tools","architecture as code","architecture decision records","model-code gap","microservices architecture","message-driven architecture","software architecture diagram review","IcePanel","Eraser","Structurizr","arc42","4+1 view model","UML","ArchiMate","TOGAF","AI architecture","AI-assisted documentation"],"author":"Nermien Barakat","format":"Code + prompt","instructions":"Download the model as workspace.dsl. Open Structurizr’s DSL editor, paste it and render the workspace, or use the local workflow linked below. All systems in this model are fictional.","downloads":[{"title":"Business Operations Platform model","url":"/downloads/practice/workspace.dsl"},{"title":"Compare the model with repository evidence","url":"/downloads/practice/c4-evidence-review.txt"}],"markdownUrl":"/articles/c4-model-software-architecture/index.md"},{"kind":"resource","title":"Build from a design reference","description":"Give the agent a screen with a defined job. This reference turns the supplier-review example into a small implementation task while leaving the existing project’s visual identity intact.","url":"/articles/design-references-for-ai-agents/#reader-exercise","articleTitle":"Give AI agents a design reference","topic":"Applied AI","keywords":[],"author":"Nermien Barakat","format":"File + prompt","instructions":"Add the downloaded DESIGN.md to a test project you can edit, then give your coding agent the prompt below. This is a fictional screen; use a local preview for the exercise.","downloads":[{"title":"The design reference","url":"/downloads/practice/DESIGN.md"},{"title":"The implementation brief","url":"/downloads/practice/design-implementation-brief.txt"}],"markdownUrl":"/articles/design-references-for-ai-agents/index.md"},{"kind":"resource","title":"Define one improvement worth keeping","description":"Keep the experiment smaller than the problem. This worksheet makes the benefit and the cost visible before a small change becomes a permanent dependency.","url":"/articles/kaizen-and-software/#reader-exercise","articleTitle":"Kaizen, applied to software","topic":"Approach","keywords":[],"author":"Nermien Barakat","format":"Worksheet","instructions":"Complete it yourself or paste it into a chat. The baseline below is invented; replace it with observations before using the worksheet for a real decision.","downloads":[{"title":"One-week improvement experiment","url":"/downloads/practice/kaizen-experiment.txt"}],"markdownUrl":"/articles/kaizen-and-software/index.md"},{"kind":"resource","title":"Resolve three meanings of “confirmed”","description":"Start with the disagreement in the article. The aim is to preserve each department’s facts while exposing the decision that crosses their boundaries.","url":"/articles/modelling-the-system-before-the-code/#reader-exercise","articleTitle":"Modelling the system before the code","topic":"Systems design","keywords":[],"author":"Nermien Barakat","format":"Prompt","instructions":"Paste the brief into a chat, then review the proposed glossary with the three roles in mind. The notes describe a fictional company.","downloads":[{"title":"Order modelling brief","url":"/downloads/practice/order-modelling-brief.txt"}],"markdownUrl":"/articles/modelling-the-system-before-the-code/index.md"},{"kind":"resource","title":"Give invoice extraction a contract","description":"The useful output is an evidence-backed record that a reviewer can use. This exercise makes missing information and unreadable documents explicit without granting payment authority.","url":"/articles/giving-ai-a-job-description/#reader-exercise","articleTitle":"Giving AI a job description","topic":"Applied AI","keywords":[],"author":"Nermien Barakat","format":"Prompt + schema","instructions":"Paste the prompt into a new chat. Compare the three returned records with the expected outcomes below; the invoices are invented.","downloads":[{"title":"Invoice extraction task","url":"/downloads/practice/invoice-task-contract.txt"},{"title":"Schema for one returned record","url":"/downloads/practice/invoice-record.schema.json"}],"markdownUrl":"/articles/giving-ai-a-job-description/index.md"},{"kind":"resource","title":"Turn a file-request process into a discovery brief","description":"Before choosing screens or services, identify the commitments the software has to support. This uses the client-file request from the article.","url":"/articles/software-should-follow-the-business/#reader-exercise","articleTitle":"Software should follow the business","topic":"Approach","keywords":["business-aligned software architecture","Conway's Law","domain-driven design","sociotechnical systems","software modularity","operating model","software boundaries","Team Topologies","work as done"],"author":"Nermien Barakat","format":"Prompt","instructions":"Run the prompt in a new chat and challenge any proposed capability that has no supporting need in the notes. The example is fictional.","downloads":[{"title":"Discovery and capability brief","url":"/downloads/practice/file-request-discovery.txt"}],"markdownUrl":"/articles/software-should-follow-the-business/index.md"}]}