[{"data":1,"prerenderedAt":2343},["ShallowReactive",2],{"{\"resolve_links\":\"url\",\"resolve_relations\":\"case_list.cases,timeline.roles,role.cases,move.proof\",\"version\":\"published\"}home":3,"datasource:disciplines":2326,"feed:writing:3":2334,"feed:lab:3":2335},{"data":4,"headers":2304},{"story":5,"cv":1599,"rels":1600,"links":2303},{"name":6,"created_at":7,"published_at":8,"updated_at":9,"id":10,"uuid":11,"content":12,"slug":1594,"full_slug":1594,"sort_by_date":208,"position":209,"tag_list":1595,"is_startpage":211,"parent_id":209,"meta_data":208,"group_id":1596,"first_published_at":1597,"release_id":208,"lang":214,"path":208,"alternates":1598,"default_full_slug":208,"translated_slugs":208},"Home","2026-10-14T19:07:24.801Z","2026-10-15T13:41:07.951Z","2026-10-15T13:41:07.962Z",230667242721161,"80c4e478-e8e9-40ab-b001-f6a645c34cc8",{"_uid":13,"body":14,"component":1591,"seo_title":1592,"show_index":125,"seo_description":1593},"4a9ca356-54cc-43db-ad2e-571fbbfd0254",[15,38,687,738,992,1565,1574,1581],{"sub":16,"_uid":17,"links":18,"eyebrow":33,"component":34,"statement":35,"slab_angle":36,"availability":37},"I bring people together to shape the direction, then stay hands-on to design and build it. Consultancy, startups, and a health site with 18 million users a month, since 2008.","6bb9d836-57db-44ec-bdb4-cadb5d632a7c",[19,27],{"_uid":20,"link":21,"label":25,"component":26},"e0602278-29aa-4032-abca-8061414af6ea",{"url":22,"linktype":23,"fieldtype":24},"#work","url","multilink","See the work","link_item",{"_uid":28,"link":29,"label":32,"component":26},"c2886802-e324-488f-9671-d45965c34efb",{"url":30,"target":31,"linktype":23,"fieldtype":24},"https:\u002F\u002Fgithub.com\u002Fmalcock","_blank","GitHub","Product · Service design · Front end · Sheffield","hero_statement","I turn complex problems into *useful* products.","-8","Open to product, design and transformation roles. Sheffield, hybrid or remote.",{"_uid":39,"cases":40,"intro":682,"label":683,"anchor":684,"heading":685,"component":686},"bdf7fbcb-522c-4db5-b4f3-28be5382f0b2",[41,216,322,439,566],{"name":42,"created_at":43,"published_at":44,"updated_at":45,"id":46,"uuid":47,"content":48,"slug":206,"full_slug":207,"sort_by_date":208,"position":209,"tag_list":210,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":213,"first_published_at":44,"release_id":208,"lang":214,"path":208,"alternates":215,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"HomeServe","2026-10-15T13:38:10.761Z","2026-10-15T13:38:10.804Z","2026-10-15T13:38:10.817Z",230940224576332,"b13410cc-9b4d-4158-bbec-928d3f210ba7",{"_uid":49,"body":50,"role":192,"asked":193,"title":42,"accent":194,"client":42,"period":195,"sector":196,"summary":197,"actually":198,"component":199,"disciplines":200,"outcome_label":204,"outcome_figure":180,"seo_description":205},"ab26ff07-5c75-43c7-bc70-a9f4803ca623",[51,71,94,99,111,145,163,176,182],{"_uid":52,"items":53,"component":70},"2c095e6e-e38e-46b4-bfd7-ce1404085da0",[54,58,62,66],{"_uid":55,"label":56,"value":42,"component":57},"19d146f4-ce8e-4549-aa45-8dcb49375648","Client","spec",{"_uid":59,"label":60,"value":61,"component":57},"208f03bf-6f33-43a9-9fc4-c94f0f0af82c","Through","Razor",{"_uid":63,"label":64,"value":65,"component":57},"cd785dfd-10b0-40d9-a0ba-3a270c907a53","My role","Discovery lead, designer, front-end developer",{"_uid":67,"label":68,"value":69,"component":57},"0e279967-a457-4095-ab43-a12cd63faaae","Built","Progressive web app for quoting","context_strip",{"_uid":72,"text":73,"component":93},"0202cda3-857e-4efa-aeb1-d32fa9bbf638",{"type":74,"content":75},"doc",[76,84,89],{"type":77,"attrs":78,"content":80},"heading",{"level":79},2,[81],{"text":82,"type":83},"Starting where they were","text",{"type":85,"content":86},"paragraph",[87],{"text":88,"type":83},"HomeServe came to us knowing two things. Surveys were often incomplete or wrong, and too many quotes didn't turn into sales. I spent the first stretch with their senior stakeholders, working out what they believed was happening and why.",{"type":85,"content":90},[91],{"text":92,"type":83},"Then I did the obvious thing nobody had done. I booked a boiler quote at my house.","rich_text",{"_uid":95,"label":96,"quote":97,"component":98},"e40cb12d-696f-4bb7-8454-c1dbd26f4b1e","What I saw at home","The surveyor spent most of the visit muttering at an iPad. Then he told me which boiler I'd be getting. I had no idea why, and no idea there was a choice.","finding",{"_uid":100,"text":101,"component":93},"a1fd4c47-ba27-4d60-93f6-e83a92736d52",{"type":74,"content":102},[103,107],{"type":85,"content":104},[105],{"text":106,"type":83},"That visit didn't discover the survey problem. HomeServe already knew about that. What it showed me was the customer's side of it: the reasoning was hidden, the options were hidden, and the person being asked to pay for a new boiler was the least informed person in the room.",{"type":85,"content":108},[109],{"text":110,"type":83},"It also explained the survey errors. The surveyor was working the installation rules from memory: the gas pipe route and its bends, where the flue can exit and what it has to clear. Miss one and an engineer turns up on install day to a job they can't finish, with an unhappy customer watching.",{"_uid":112,"kind":113,"nodes":114,"heading":143,"component":144},"62f0278a-9f49-4071-b471-9c7f848ed496","before_after",[115,121,126,130,135,139],{"_uid":116,"note":117,"side":118,"label":119,"component":120},"1c853b47-2369-48ad-a6c8-840cc1c029e2","Pipe routes and flue clearances, recalled on the spot","before","Rules from memory","diagram_node",{"_uid":122,"note":123,"side":118,"label":124,"emphasis":125,"component":120},"b29ed290-7912-4d4e-8414-e829375b6f84","The reasoning stays on the iPad","One boiler, prescribed",true,{"_uid":127,"note":128,"side":118,"label":129,"component":120},"bf0b4bd0-bb24-4594-9b2a-1d09df79b795","Engineer can't complete the job","Errors found on install day",{"_uid":131,"note":132,"side":133,"label":134,"component":120},"b98a8ecc-4618-4843-8b64-82e157dc3a07","The app asks every question the install needs","after","Guided survey",{"_uid":136,"note":137,"side":133,"label":138,"component":120},"c69c7689-639b-45fa-8897-cea6b4e06ee6","Constraints narrow the boilers that will fit","Rules applied as you go",{"_uid":140,"note":141,"side":133,"label":142,"emphasis":125,"component":120},"4904c929-b591-4841-9750-b03efddefe05","Every boiler that suits the house, side by side","Customer chooses","The quote visit","diagram",{"_uid":146,"heading":147,"options":148,"component":162},"5a746b87-7224-4793-8e68-fec5b8cfabf8","How to present the recommendation",[149,154,158],{"_uid":150,"text":151,"title":152,"component":153},"365a451c-5269-4c59-824b-981bc393c12e","Least change for the sales team. Still asks the customer to trust a decision they can't see.","One boiler, better explained","option_card",{"_uid":155,"text":156,"title":157,"component":153},"6dbe29f6-b494-4397-a7cb-76ea02dfe4dc","Honest, but most of it wouldn't fit the house. Choice without the constraints is just noise.","The whole range",{"_uid":159,"text":160,"title":161,"chosen":125,"component":153},"abde8f5f-ed7c-4611-88cf-deac66062b95","The survey has already done the filtering. The customer gets a real choice and the surveyor stops being the bottleneck.","Every boiler that suits this house","options_compare",{"_uid":164,"text":165,"component":93},"b1ca3228-d32d-4419-b23f-9e582c56ca1a",{"type":74,"content":166},[167,172],{"type":77,"attrs":168,"content":169},{"level":79},[170],{"text":171,"type":83},"Building it",{"type":85,"content":173},[174],{"text":175,"type":83},"I designed the app and built the front end myself, including that final choice screen. Being both designer and developer meant the survey's guardrails and the layout of the choice could change together, instead of being negotiated across a handover.",{"_uid":177,"label":178,"caveat":179,"figure":180,"component":181},"563fa8c9-cf24-4f7a-b418-04f6e47c6c4b","sales conversion","Reported uplift after launch, which I attribute to the choice screen. It wasn't a controlled test.","+50%","metric",{"_uid":183,"text":184,"heading":190,"component":191},"7a5851ad-80ff-465d-bd49-e2a2225f3ff5",{"type":74,"content":185},[186],{"type":85,"content":187},[188],{"text":189,"type":83},"I'd agree the measurement plan before launch. I'm confident the choice screen moved the number, but I'd rather show it than say it. I'd also track failed installs from day one, because that was the problem HomeServe actually walked in with.","With hindsight","reflection","Discovery, service design, front-end build","Fix inaccurate boiler surveys and poor quote conversion.","bar","At Razor","Home services","HomeServe already knew surveys were going wrong and quotes weren't converting. I started with their senior people, then booked a boiler quote at my own home to see it from the customer's side. The answer was a guided survey that codified the install rules, and a final screen that let the customer choose.","Customers were told which boiler they'd get, with no reasoning and no say. Surveyors carried the installation rules in their heads, and installers paid for every slip.","case_study",[201,202,203],"discovery","service-design","front-end","sales conversion, which I attribute to the choice screen I designed and built","Discovery and front-end build for HomeServe's boiler quoting app: a guided survey and a customer choice screen behind a 50% conversion uplift.","homeserve","work\u002Fhomeserve",null,0,[],false,230940080752588,"a755e39c-9c77-4c17-b777-5063402d156c","default",[],{"name":217,"created_at":218,"published_at":219,"updated_at":220,"id":221,"uuid":222,"content":223,"slug":315,"full_slug":316,"sort_by_date":208,"position":317,"tag_list":318,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":319,"first_published_at":320,"release_id":208,"lang":214,"path":208,"alternates":321,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"Fixie","2026-10-15T13:38:12.075Z","2026-10-15T13:44:26.013Z","2026-10-15T13:44:26.027Z",230940229966669,"8a971057-1078-425b-8110-495da06904e2",{"_uid":224,"body":225,"role":305,"asked":306,"title":217,"accent":307,"client":217,"period":195,"sector":308,"summary":309,"actually":310,"component":199,"disciplines":311,"outcome_label":313,"outcome_figure":295,"seo_description":314},"b272bc4a-eaa4-41ea-871c-cf926d689897",[226,240,257,278,291,296],{"_uid":227,"items":228,"component":70},"5c1120cb-0123-4e23-b8b8-6cf220e83709",[229,231,233,236],{"_uid":230,"label":56,"value":217,"component":57},"46c2c925-2713-454a-b7d8-954918df0737",{"_uid":232,"label":60,"value":61,"component":57},"8a6c3582-01b3-414f-8f90-a723c4f91eb7",{"_uid":234,"label":64,"value":235,"component":57},"0a55096d-04d9-4bea-9a81-783605ba326b","Discovery and solution direction",{"_uid":237,"label":238,"value":239,"component":57},"2aedb888-7772-4c8e-8c69-1f280f39aecb","Measure","Time to quote",{"_uid":241,"text":242,"component":93},"7a5f1ba1-0468-449a-aac7-57c3cb539714",{"type":74,"content":243},[244,249,253],{"type":77,"attrs":245,"content":246},{"level":79},[247],{"text":248,"type":83},"A well-specified request",{"type":85,"content":250},[251],{"text":252,"type":83},"Fixie came to us with a clear ask: automate the preparation of 3D models. Preparing models was where the hours went, so automate that and everything speeds up. Perfectly reasonable, and a genuinely hard technical problem.",{"type":85,"content":254},[255],{"text":256,"type":83},"The trouble with a hard technical problem is that it's very easy to fall in love with it.",{"_uid":258,"kind":259,"nodes":260,"heading":277,"component":144},"e300a695-1491-43c2-9ec9-e0cfd1ead140","steps",[261,265,269,273],{"_uid":262,"note":263,"label":264,"component":120},"1e91c043-0889-4978-b3b7-53f59e25adb2","The request as it arrived","Automate model prep",{"_uid":266,"note":267,"label":268,"component":120},"42221502-e914-4394-853b-23721356681d","The customer, not the engineer","Who's waiting?",{"_uid":270,"note":271,"label":272,"component":120},"1b40148f-2ff5-415f-a802-f1be9c3710b9","A price they can act on","Waiting for what?",{"_uid":274,"note":275,"label":276,"emphasis":125,"component":120},"5835ce02-1c93-442c-8af0-369735c3a21f","Time to quote becomes the measure","Redesign the quoting service","Working back from the ask",{"_uid":279,"text":280,"component":93},"0f2211f8-b4dc-437b-a1b0-a14f4dce3ba4",{"type":74,"content":281},[282,287],{"type":77,"attrs":283,"content":284},{"level":79},[285],{"text":286,"type":83},"The reframe",{"type":85,"content":288},[289],{"text":290,"type":83},"So we stopped treating model preparation as the problem and started treating time to quote as the problem. That moved the whole quoting service onto the table, not just the one step everyone was staring at, and we redesigned the service and platform around it.",{"_uid":292,"label":293,"caveat":294,"figure":295,"component":181},"ce87bc1b-9726-4b4a-876f-f4fef93f6a6c","time to quote","From around six hours to under five minutes, as reported on the project.","6h → 5m",{"_uid":297,"text":298,"heading":304,"component":191},"16d898a2-61bc-499e-9695-d2a0e81269b2",{"type":74,"content":299},[300],{"type":85,"content":301},[302],{"text":303,"type":83},"When a client arrives with a solution, ask who is waiting for it and what they're actually waiting for. It's a cheap question. Here it changed the whole project.","What I took from it","Discovery, solution direction","Automate the preparation of 3D models.","disc","","Fixie described their problem in technical terms and asked for a technical fix. Underneath it was a human problem: customers waiting most of a working day for a quote. Reframing the work around time to quote changed what we built.","Nobody was waiting for a model. Customers were waiting for a price.",[201,202,312],"product-direction","time to quote, from around six hours to under five minutes","Reframing a request for automated 3D model preparation into a redesign of Fixie's quoting service: six hours to under five minutes.","fixie","work\u002Ffixie",-10,[],"9cfda765-9940-4d89-9be2-3e061ca57bd1","2026-10-15T13:38:12.133Z",[],{"name":323,"created_at":324,"published_at":325,"updated_at":326,"id":327,"uuid":328,"content":329,"slug":433,"full_slug":434,"sort_by_date":208,"position":435,"tag_list":436,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":437,"first_published_at":325,"release_id":208,"lang":214,"path":208,"alternates":438,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"Sheffield Forgemasters","2026-10-15T13:38:56.840Z","2026-10-15T13:38:56.916Z","2026-10-15T13:38:56.930Z",230940413329167,"2070a874-6575-4beb-8e5c-102c96f13810",{"_uid":330,"body":331,"role":422,"asked":423,"title":323,"accent":424,"client":323,"period":195,"sector":425,"summary":426,"actually":427,"component":199,"disciplines":428,"outcome_label":431,"outcome_figure":350,"seo_description":432},"c7a028e5-1dc6-4d0e-9974-63147c467228",[332,351,368,388,405,409],{"_uid":333,"items":334,"component":70},"3806879e-d92c-47ec-b7e7-fbbb8a9883c9",[335,337,339,343,347],{"_uid":336,"label":56,"value":323,"component":57},"f71cd30a-c4b5-4873-a905-126f40911974",{"_uid":338,"label":60,"value":61,"component":57},"b59b1174-b675-4021-a91a-ce571914c883",{"_uid":340,"label":341,"value":342,"component":57},"7c5c3c3d-e951-4251-897e-92ecf0d5df2c","Team","Six",{"_uid":344,"label":345,"value":346,"component":57},"7f27a08c-a5c2-4358-aa46-ad8a11767e55","Discovery","Three months",{"_uid":348,"label":349,"value":350,"component":57},"1c30979e-ac93-44d2-ac47-d55181d1cc97","People","200+",{"_uid":352,"text":353,"component":93},"7448c107-17eb-42a0-b1f0-5c42b3a1cb3c",{"type":74,"content":354},[355,360,364],{"type":77,"attrs":356,"content":357},{"level":79},[358],{"text":359,"type":83},"Selling the looking",{"type":85,"content":361},[362],{"text":363,"type":83},"Large, established organisations rarely fund a proper discovery on the strength of a slide deck. People need to be able to picture where they might end up before they'll agree to go and find out.",{"type":85,"content":365},[366],{"text":367,"type":83},"So I facilitated a future-vision workshop with senior management, then turned what came out of it into a short story-style video, which I wrote and narrated. It was deliberately a bit playful. A future you can picture is much easier to say yes to than a list of capabilities.",{"_uid":369,"kind":259,"nodes":370,"heading":387,"component":144},"23e6720f-2a4f-42f7-b83a-30b18b270ce3",[371,375,379,383],{"_uid":372,"note":373,"label":374,"component":120},"7e5ea41e-2293-4017-a9e5-0fe4166e09bf","A future-vision session with management","Senior workshop",{"_uid":376,"note":377,"label":378,"emphasis":125,"component":120},"98c938d0-413e-405e-9be0-7e3ab0d5fe7b","Written and narrated. One possible future in a few minutes","Story video",{"_uid":380,"note":381,"label":382,"component":120},"55b84018-306d-4923-9691-2a59051fa107","Team of six, 200+ people, shop floor to C-suite","Three-month discovery",{"_uid":384,"note":385,"label":386,"component":120},"aa81a910-19b4-41a5-b5c4-cb2341af23fe","Future services, applications and technologies","Board-level vision","How the engagement grew",{"_uid":389,"text":390,"component":93},"66d82abf-9e98-4024-b630-26a622ec7887",{"type":74,"content":391},[392,396,401],{"type":85,"content":393},[394],{"text":395,"type":83},"The video did its job. It secured the wider discovery.",{"type":77,"attrs":397,"content":398},{"level":79},[399],{"text":400,"type":83},"Three months on site",{"type":85,"content":402},[403],{"text":404,"type":83},"The discovery was about the operating model: how work actually moves through a steelworks, and where software and data could help the people doing it. That meant as many conversations with steelworkers on the shop floor as with the board. We came out with a future-state vision of services, applications and technologies, presented at board level.",{"_uid":406,"label":407,"caveat":408,"figure":350,"component":181},"85c602ab-7ea0-4592-907c-c30f78643100","people engaged","From shop-floor staff to the C-suite, over three months.",{"_uid":410,"text":411,"heading":421,"component":191},"cad0d465-c5c7-4f32-820f-8e6407605edf",{"type":74,"content":412},[413,417],{"type":85,"content":414},[415],{"text":416,"type":83},"The transformation proposal that followed didn't go ahead. I still count this among my best work, because the hard part of a programme like this is getting a large, established organisation to agree a direction worth exploring, and we did that.",{"type":85,"content":418},[419],{"text":420,"type":83},"Turning a vision into funded change is a different problem. Next time I'd plan for it from the first workshop: who signs off the money, and what they'll need to see.","What happened next","Facilitator, discovery lead","Show us what a modern steelworks could look like.","wedge","Steel and heavy engineering","I ran a future-vision workshop with senior management, then wrote and narrated a playful story-style video of one possible future. That secured a three-month discovery with a team of six and more than 200 people across the business, ending in a future-state vision for the board.","Before anyone would fund looking properly, the leadership needed a shared picture of where they might go.",[429,201,202,430],"facilitation","leadership","people engaged, shop floor to C-suite, in a three-month discovery. The proposal that followed didn't go ahead.","A vision workshop and narrated story video that secured a three-month, 200-person discovery at Sheffield Forgemasters.","forgemasters","work\u002Fforgemasters",-20,[],"e418eaa9-740c-4acd-b300-2656b279a9c6",[],{"name":440,"created_at":441,"published_at":442,"updated_at":443,"id":444,"uuid":445,"content":446,"slug":560,"full_slug":561,"sort_by_date":208,"position":562,"tag_list":563,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":564,"first_published_at":442,"release_id":208,"lang":214,"path":208,"alternates":565,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"Doxzoo","2026-10-15T13:38:58.295Z","2026-10-15T13:38:58.350Z","2026-10-15T13:38:58.368Z",230940419292944,"2c30b441-eb57-4690-870d-ed74673e3299",{"_uid":447,"body":448,"role":460,"asked":550,"title":440,"accent":551,"client":454,"period":552,"sector":553,"summary":554,"actually":555,"component":199,"disciplines":556,"outcome_label":557,"outcome_figure":558,"seo_description":559},"5d762413-e3c6-4bb7-9b67-2c7506ea57d7",[449,465,482,486,494,499,524,541],{"_uid":450,"items":451,"component":70},"a789088b-c2b3-4150-b95e-18912edb4471",[452,455,458,461],{"_uid":453,"label":56,"value":454,"component":57},"57d27abd-0ceb-4125-a698-bab3bb6ef206","Greens Digital",{"_uid":456,"label":457,"value":440,"component":57},"bedfffc1-472e-4795-a610-ca369ec37f87","Product",{"_uid":459,"label":64,"value":460,"component":57},"45e77c47-8bc3-4a29-8121-77027ba15ed5","Service and product designer",{"_uid":462,"label":463,"value":464,"component":57},"7fa87354-0112-4f31-b5a1-4c8ba280009f","Status","Launch expected late 2026",{"_uid":466,"text":467,"component":93},"c2a52995-b04f-4dcd-ba54-29fe65f8bda3",{"type":74,"content":468},[469,474,478],{"type":77,"attrs":470,"content":471},{"level":79},[472],{"text":473,"type":83},"Evidence before opinions",{"type":85,"content":475},[476],{"text":477,"type":83},"I prepared with surveys, post-purchase data, funnel analysis and walkthroughs of the site, grouped into four journey themes. Then a full day in a room with about eight senior leaders: the CEO, operations, IT, finance and marketing.",{"type":85,"content":479},[480],{"text":481,"type":83},"The prep meant the day could be spent on decisions instead of on whose hunch was right.",{"_uid":483,"label":484,"quote":485,"component":98},"6d93b9a5-29f8-49a7-a761-3372cca66660","What the day surfaced","Many of the problems on the list weren't design problems. They were how the service worked, showing up on the screen.",{"_uid":487,"text":488,"component":93},"a261bd53-5fdf-44c7-bb6d-091d55f6fbcb",{"type":74,"content":489},[490],{"type":85,"content":491},[492],{"text":493,"type":83},"Mapping the current journeys made that visible. Some fixes belonged in the interface. Others belonged in the service model underneath it, and no amount of redesign would touch them. Helping the leadership see which was which was the most useful thing I did on the project.",{"_uid":495,"items":496,"heading":497,"component":498},"2469e041-712d-4990-9d43-4418ffcc2ea6","Production\nPricing\nDelivery","Every proposition had to respect","constraint_list",{"_uid":500,"kind":501,"nodes":502,"heading":523,"component":144},"807a0cbe-54a8-4cbe-85e4-ae57132a1a4b","funnel",[503,507,511,515,519],{"_uid":504,"note":505,"label":506,"component":120},"9f1d028c-7f1b-450f-b00d-d48fc19b671d","Surveys, purchase data, funnels, walkthroughs","Four journey themes",{"_uid":508,"note":509,"label":510,"component":120},"854a2641-5417-47a7-a6c2-7f6e2da211c4","Mapped with the leadership team","Current-state journeys",{"_uid":512,"note":513,"label":514,"component":120},"af1437f8-1f27-4221-b99b-9085c5c82536","Issues sorted by where they really live","Service vs interface",{"_uid":516,"note":517,"label":518,"component":120},"8d165ff5-af02-419f-bd60-eb0a5ad0379c","Co-designed and compared","Four IA propositions",{"_uid":520,"note":521,"label":522,"emphasis":125,"component":120},"68889100-3d52-4aeb-8311-4dec49683071","Signed off by leadership","One direction","From evidence to a direction",{"_uid":525,"text":526,"component":93},"1736222f-d587-49d8-89dc-e39b74716092",{"type":74,"content":527},[528,533,537],{"type":77,"attrs":529,"content":530},{"level":79},[531],{"text":532,"type":83},"Into delivery",{"type":85,"content":534},[535],{"text":536,"type":83},"The output wasn't a deck. It was reusable product-page specifications, components, acceptance criteria and competitor analysis, ready for development.",{"type":85,"content":538},[539],{"text":540,"type":83},"I was then retained to build the front end with AI-assisted development, using a DESIGN.md as guardrails so generated code stays on-system, and deploying on every commit to main. The process is deliberately lighter than it would be on a big team. It's sized to the project.",{"_uid":542,"text":543,"heading":549,"component":191},"e27ea605-5953-46e7-bb0a-88941373dfc8",{"type":74,"content":544},[545],{"type":85,"content":546},[547],{"text":548,"type":83},"V3 hasn't launched yet. It's expected before the end of 2026, and I'm still working with the team on changes as they need them. I'll update this with what happened.","Where it's at","Redesign the site for V3.","square","2026","Online print","Doxzoo is a profitable online print platform. Before redesigning anything I ran a full-day workshop with eight senior leaders, mapped the current journeys and separated service issues from design issues. Four IA propositions later, leadership signed off a direction, and I've been delivering the front end with AI-assisted development.","A lot of what looked like interface problems were problems with how the service worked. The leadership needed to tell the two apart before anyone drew a screen.",[429,202,312,203],"information architectures, assessed against production, pricing and delivery. One direction signed off by leadership.","4 → 1","Service design for Doxzoo's V3: separating service-model problems from interface problems with eight senior leaders, then AI-assisted front-end delivery.","doxzoo","work\u002Fdoxzoo",-30,[],"281d1fb0-8adb-4f44-921a-f24c54d63adb",[],{"name":567,"created_at":568,"published_at":569,"updated_at":570,"id":571,"uuid":572,"content":573,"slug":675,"full_slug":676,"sort_by_date":208,"position":677,"tag_list":678,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":679,"first_published_at":680,"release_id":208,"lang":214,"path":208,"alternates":681,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"Tubr","2026-10-15T13:38:59.685Z","2026-10-15T13:44:27.347Z","2026-10-15T13:44:27.363Z",230940424982289,"846b44ab-e8dd-467d-a4c1-316c5fdd10df",{"_uid":574,"body":575,"role":665,"asked":666,"title":567,"accent":194,"client":567,"period":667,"sector":668,"summary":669,"actually":670,"component":199,"disciplines":671,"outcome_label":308,"outcome_figure":308,"seo_description":674},"97a4b90b-3af2-41cf-99ea-5c6cd6fcf1e5",[576,593,610,626,652],{"_uid":577,"items":578,"component":70},"3b85feae-e3f2-42f1-b47e-e2d882819b50",[579,583,586,590],{"_uid":580,"label":581,"value":582,"component":57},"ac4801eb-af74-49ee-aa7a-7348a8f25dab","Role","Fractional CPO",{"_uid":584,"label":341,"value":585,"component":57},"1ece08b9-36c6-497d-8729-4b611f966d68","Lead data scientist, ML engineer",{"_uid":587,"label":588,"value":589,"component":57},"250cf86e-296c-431d-bc7c-b245fc27520d","Since","February 2026",{"_uid":591,"label":463,"value":592,"component":57},"a8642927-c5b3-4c1e-bc62-3e6f396ea068","Working towards launch",{"_uid":594,"text":595,"component":93},"76abe35f-ed1c-4daf-adff-6cbeaf4d5dce",{"type":74,"content":596},[597,602,606],{"type":77,"attrs":598,"content":599},{"level":79},[600],{"text":601,"type":83},"Chat-first to glance-first",{"type":85,"content":603},[604],{"text":605,"type":83},"The app started as a chat interface. Ask it about your week and it would tell you. I spent a lot of time talking to people who work in hospitality, and the picture was consistent: a manager with one eye on the kitchen and one ear on the floor doesn't want to start a conversation with an app. They want to look at it and know.",{"type":85,"content":607},[608],{"text":609,"type":83},"So I made the call to rebuild it around a dashboard fed by insights. They arrive, you scan them. People can comment on forecasts and come back later to see what actually happened, so the feed becomes a record of the business rather than a stream that scrolls away.",{"_uid":611,"heading":612,"options":613,"component":162},"8154a5f6-322e-4b1c-a780-491b0cfcab0b","How to show forecasts for local events",[614,618,622],{"_uid":615,"text":616,"title":617,"component":153},"fc8968c7-ccea-4be7-842e-ba3f0f6d5e39","What the model produces. But a predicted £3 contribution invites false confidence, and events rarely repeat exactly.","Money per event",{"_uid":619,"text":620,"title":621,"component":153},"39a65144-1eed-4271-ac25-835bd4e744a8","Safe, but it throws away a signal operators genuinely care about.","Leave events out",{"_uid":623,"text":624,"title":625,"chosen":125,"component":153},"fe946a39-6bac-4cc1-b32a-ef969766e63e","Summarise what's happening nearby as busier or quieter. Closer to how operators already think about their patch.","The local scene",{"_uid":627,"text":628,"component":93},"4fffe218-4795-4ef5-b93e-9c11d68aab7c",{"type":74,"content":629},[630,635,639,644,648],{"type":77,"attrs":631,"content":632},{"level":79},[633],{"text":634,"type":83},"Under the hood",{"type":85,"content":636},[637],{"text":638,"type":83},"I designed the data model for the insight feed. It's multi-tenant across companies and outlets, with visibility resolved by user, role, outlet and company. Each person's state lives apart from the generated content, so regenerating a forecast can't wipe out someone's comments.",{"type":77,"attrs":640,"content":641},{"level":79},[642],{"text":643,"type":83},"Making a small team faster",{"type":85,"content":645},[646],{"text":647,"type":83},"When I arrived, deploying infrastructure meant running Terraform from someone's laptop. The newer parts of the stack now build from pull requests, each with its own preview environment that tears itself down after seven days if it isn't merged.",{"type":85,"content":649},[650],{"text":651,"type":83},"I've moved the team onto AI-native ways of working: agentic workflows for parallel development and bug fixing, Linear tickets raised from Slack, and PostHog usage stats asked for in plain English. Less context switching, more shipping.",{"_uid":653,"text":654,"heading":664,"component":191},"537b881c-1074-4cd0-b0af-fda03df0ba56",{"type":74,"content":655},[656,660],{"type":85,"content":657},[658],{"text":659,"type":83},"I haven't shown yet that any of this helps operators make better decisions. That's the next job, and it's why the app is instrumented.",{"type":85,"content":661},[662],{"text":663,"type":83},"The local scene view also has to stay honest about the model underneath it. Nearby events can draw trade away as well as bring it in, and a summary like 'busier' has to carry that uncertainty rather than smooth it over. That's the bit I'm working on now.","What I haven't proved yet","Fractional Chief Product Officer","Keep building the chat-first app over the forecasting models.","2026 to now","Hospitality forecasting","Tubr uses machine learning to forecast trade for hospitality businesses. I lead product and a small data team, and I ship code. The two calls I'd defend hardest: moving the app from chat-first to a dashboard feed, and replacing precise event forecasts with a broader picture of the local scene.","Hospitality operators don't have time to ask an app questions. They want to glance at what's coming and get back to service. And a forecast that says an event is worth £3 to you isn't information, it's noise.",[312,672,673,430],"data-ux","engineering","Product leadership at Tubr: turning ML forecasts into something a hospitality manager can read at a glance, and making a small team faster.","tubr","work\u002Ftubr",-40,[],"811339ef-26ad-483a-9874-eb8fd48f82a3","2026-10-15T13:38:59.765Z",[],"Each one starts with what I was asked for, then what the problem actually was. Open the reasoning for the detail.","Five problems, and what they turned out to be","work","Selected work","case_list",{"_uid":688,"items":689,"label":734,"anchor":735,"heading":736,"component":737},"48df3fe2-59d2-4b0b-9c56-b8083b53d825",[690,697,703,709,714,720,726],{"_uid":691,"line":692,"tags":693,"title":694,"years":695,"component":696},"9ec0b04f-e3be-45b9-904c-7d124cf2e528","Front end and UX for a health site with 18m monthly users. Over several redesigns the community grew from 20% to 66% of traffic.",[203,312],"Patient.info","2011–2018","index_item",{"_uid":698,"line":699,"tags":700,"title":701,"years":702,"component":696},"fd91703c-6fe4-4c9f-a741-1a534758902d","An AR distraction therapy app for children during treatment. Winner at the Design Week 2020 awards.",[203],"Sheffield Children's Hospital","2016–2019",{"_uid":704,"line":705,"tags":706,"title":707,"years":708,"component":696},"6e7b1fb0-8306-401d-b0b1-aebedc609a41","Solution Director on a single customer-facing view of ICT estates. Delivered in months, with requirements found along the way.",[430,312],"Viadex","c. 2024",{"_uid":710,"line":711,"tags":712,"title":713,"years":195,"component":696},"20e36088-402e-4d5f-98d2-3dfd17c2f48b","Discovery, and an AR tool for on-site teams to measure and survey staircases.",[201,203],"Platinum Stairlifts",{"_uid":715,"line":716,"tags":717,"title":718,"years":719,"component":696},"c6fb0072-add9-4bc3-bc3b-4d292a993759","Brand, a design system in Figma and React, and the first product UI for an early-stage startup.",[312,203],"Koala","2025–2026",{"_uid":721,"line":722,"tags":723,"title":724,"years":725,"component":696},"ef0ab9b9-c477-4f87-b9a8-50f0d82076e6","Rebuilt on Storyblok and Vue, generated at build time and republished on publish. The prototype for this site.",[673],"Razor website","2023",{"_uid":727,"line":728,"link":729,"tags":731,"title":732,"years":733,"component":696},"796d8f9c-c7e2-4ec4-907c-f73b8dd841ee","A solo rewrite of 3D View Pro: Nuxt, tRPC, Prisma, a BabylonJS editor, and a node graph that wires device data to 3D objects.",{"url":730,"target":31,"linktype":23,"fieldtype":24},"https:\u002F\u002Fgithub.com\u002Fmalcock\u002FArchVR",[673],"ArchVR","2023–2024","Shorter notes","also","Also","case_index",{"_uid":739,"label":740,"moves":741,"anchor":990,"heading":991,"component":990},"181e9e79-956f-4bc5-bbd5-56c4a421385f","Four moves I make on most projects",[742,812,864,927],{"_uid":743,"text":744,"proof":745,"title":810,"component":811},"a34ebaa9-c95f-43f0-b5d3-61fd598b9322","I go where the problem happens: a living room during a boiler quote, a steelworks shop floor, a busy service. What you see there beats any opinion in the meetings that follow.",{"name":42,"created_at":43,"published_at":44,"updated_at":45,"id":46,"uuid":47,"content":746,"slug":206,"full_slug":207,"sort_by_date":208,"position":209,"tag_list":808,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":213,"first_published_at":44,"release_id":208,"lang":214,"path":208,"alternates":809,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":49,"body":747,"role":192,"asked":193,"title":42,"accent":194,"client":42,"period":195,"sector":196,"summary":197,"actually":198,"component":199,"disciplines":807,"outcome_label":204,"outcome_figure":180,"seo_description":205},[748,754,767,768,777,785,790,800,801],{"_uid":52,"items":749,"component":70},[750,751,752,753],{"_uid":55,"label":56,"value":42,"component":57},{"_uid":59,"label":60,"value":61,"component":57},{"_uid":63,"label":64,"value":65,"component":57},{"_uid":67,"label":68,"value":69,"component":57},{"_uid":72,"text":755,"component":93},{"type":74,"content":756},[757,761,764],{"type":77,"attrs":758,"content":759},{"level":79},[760],{"text":82,"type":83},{"type":85,"content":762},[763],{"text":88,"type":83},{"type":85,"content":765},[766],{"text":92,"type":83},{"_uid":95,"label":96,"quote":97,"component":98},{"_uid":100,"text":769,"component":93},{"type":74,"content":770},[771,774],{"type":85,"content":772},[773],{"text":106,"type":83},{"type":85,"content":775},[776],{"text":110,"type":83},{"_uid":112,"kind":113,"nodes":778,"heading":143,"component":144},[779,780,781,782,783,784],{"_uid":116,"note":117,"side":118,"label":119,"component":120},{"_uid":122,"note":123,"side":118,"label":124,"emphasis":125,"component":120},{"_uid":127,"note":128,"side":118,"label":129,"component":120},{"_uid":131,"note":132,"side":133,"label":134,"component":120},{"_uid":136,"note":137,"side":133,"label":138,"component":120},{"_uid":140,"note":141,"side":133,"label":142,"emphasis":125,"component":120},{"_uid":146,"heading":147,"options":786,"component":162},[787,788,789],{"_uid":150,"text":151,"title":152,"component":153},{"_uid":155,"text":156,"title":157,"component":153},{"_uid":159,"text":160,"title":161,"chosen":125,"component":153},{"_uid":164,"text":791,"component":93},{"type":74,"content":792},[793,797],{"type":77,"attrs":794,"content":795},{"level":79},[796],{"text":171,"type":83},{"type":85,"content":798},[799],{"text":175,"type":83},{"_uid":177,"label":178,"caveat":179,"figure":180,"component":181},{"_uid":183,"text":802,"heading":190,"component":191},{"type":74,"content":803},[804],{"type":85,"content":805},[806],{"text":189,"type":83},[201,202,203],[],[],"Get close to the work","move",{"_uid":813,"text":814,"proof":815,"title":863,"component":811},"977b1f31-8429-466c-bd83-baafa732df9b","Clients usually arrive with a solution. I work back to who is waiting, and what for, and check that's what we're solving.",{"name":217,"created_at":218,"published_at":219,"updated_at":220,"id":221,"uuid":222,"content":816,"slug":315,"full_slug":316,"sort_by_date":208,"position":317,"tag_list":861,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":319,"first_published_at":320,"release_id":208,"lang":214,"path":208,"alternates":862,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":224,"body":817,"role":305,"asked":306,"title":217,"accent":307,"client":217,"period":195,"sector":308,"summary":309,"actually":310,"component":199,"disciplines":860,"outcome_label":313,"outcome_figure":295,"seo_description":314},[818,824,837,843,853,854],{"_uid":227,"items":819,"component":70},[820,821,822,823],{"_uid":230,"label":56,"value":217,"component":57},{"_uid":232,"label":60,"value":61,"component":57},{"_uid":234,"label":64,"value":235,"component":57},{"_uid":237,"label":238,"value":239,"component":57},{"_uid":241,"text":825,"component":93},{"type":74,"content":826},[827,831,834],{"type":77,"attrs":828,"content":829},{"level":79},[830],{"text":248,"type":83},{"type":85,"content":832},[833],{"text":252,"type":83},{"type":85,"content":835},[836],{"text":256,"type":83},{"_uid":258,"kind":259,"nodes":838,"heading":277,"component":144},[839,840,841,842],{"_uid":262,"note":263,"label":264,"component":120},{"_uid":266,"note":267,"label":268,"component":120},{"_uid":270,"note":271,"label":272,"component":120},{"_uid":274,"note":275,"label":276,"emphasis":125,"component":120},{"_uid":279,"text":844,"component":93},{"type":74,"content":845},[846,850],{"type":77,"attrs":847,"content":848},{"level":79},[849],{"text":286,"type":83},{"type":85,"content":851},[852],{"text":290,"type":83},{"_uid":292,"label":293,"caveat":294,"figure":295,"component":181},{"_uid":297,"text":855,"heading":304,"component":191},{"type":74,"content":856},[857],{"type":85,"content":858},[859],{"text":303,"type":83},[201,202,312],[],[],"Reframe the ask",{"_uid":865,"text":866,"proof":867,"title":926,"component":811},"9b6f3ad7-4143-420b-a92a-1b54c878c9cb","Options on the table, constraints named, trade-offs argued with the people who'll live with them. Then a direction everyone in the room can explain.",{"name":440,"created_at":441,"published_at":442,"updated_at":443,"id":444,"uuid":445,"content":868,"slug":560,"full_slug":561,"sort_by_date":208,"position":562,"tag_list":924,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":564,"first_published_at":442,"release_id":208,"lang":214,"path":208,"alternates":925,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":447,"body":869,"role":460,"asked":550,"title":440,"accent":551,"client":454,"period":552,"sector":553,"summary":554,"actually":555,"component":199,"disciplines":923,"outcome_label":557,"outcome_figure":558,"seo_description":559},[870,876,889,890,896,897,904,917],{"_uid":450,"items":871,"component":70},[872,873,874,875],{"_uid":453,"label":56,"value":454,"component":57},{"_uid":456,"label":457,"value":440,"component":57},{"_uid":459,"label":64,"value":460,"component":57},{"_uid":462,"label":463,"value":464,"component":57},{"_uid":466,"text":877,"component":93},{"type":74,"content":878},[879,883,886],{"type":77,"attrs":880,"content":881},{"level":79},[882],{"text":473,"type":83},{"type":85,"content":884},[885],{"text":477,"type":83},{"type":85,"content":887},[888],{"text":481,"type":83},{"_uid":483,"label":484,"quote":485,"component":98},{"_uid":487,"text":891,"component":93},{"type":74,"content":892},[893],{"type":85,"content":894},[895],{"text":493,"type":83},{"_uid":495,"items":496,"heading":497,"component":498},{"_uid":500,"kind":501,"nodes":898,"heading":523,"component":144},[899,900,901,902,903],{"_uid":504,"note":505,"label":506,"component":120},{"_uid":508,"note":509,"label":510,"component":120},{"_uid":512,"note":513,"label":514,"component":120},{"_uid":516,"note":517,"label":518,"component":120},{"_uid":520,"note":521,"label":522,"emphasis":125,"component":120},{"_uid":525,"text":905,"component":93},{"type":74,"content":906},[907,911,914],{"type":77,"attrs":908,"content":909},{"level":79},[910],{"text":532,"type":83},{"type":85,"content":912},[913],{"text":536,"type":83},{"type":85,"content":915},[916],{"text":540,"type":83},{"_uid":542,"text":918,"heading":549,"component":191},{"type":74,"content":919},[920],{"type":85,"content":921},[922],{"text":548,"type":83},[429,202,312,203],[],[],"Decide in the open",{"_uid":928,"text":929,"proof":930,"title":989,"component":811},"9f691ccc-49c9-4386-ab3c-9daff0a0c283","I design it and write the code, so the decision survives contact with reality. Small loops, AI-assisted, instrumented so we can see what happened.",{"name":567,"created_at":568,"published_at":569,"updated_at":570,"id":571,"uuid":572,"content":931,"slug":675,"full_slug":676,"sort_by_date":208,"position":677,"tag_list":987,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":679,"first_published_at":680,"release_id":208,"lang":214,"path":208,"alternates":988,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":574,"body":932,"role":665,"asked":666,"title":567,"accent":194,"client":567,"period":667,"sector":668,"summary":669,"actually":670,"component":199,"disciplines":986,"outcome_label":308,"outcome_figure":308,"seo_description":674},[933,939,952,957,977],{"_uid":577,"items":934,"component":70},[935,936,937,938],{"_uid":580,"label":581,"value":582,"component":57},{"_uid":584,"label":341,"value":585,"component":57},{"_uid":587,"label":588,"value":589,"component":57},{"_uid":591,"label":463,"value":592,"component":57},{"_uid":594,"text":940,"component":93},{"type":74,"content":941},[942,946,949],{"type":77,"attrs":943,"content":944},{"level":79},[945],{"text":601,"type":83},{"type":85,"content":947},[948],{"text":605,"type":83},{"type":85,"content":950},[951],{"text":609,"type":83},{"_uid":611,"heading":612,"options":953,"component":162},[954,955,956],{"_uid":615,"text":616,"title":617,"component":153},{"_uid":619,"text":620,"title":621,"component":153},{"_uid":623,"text":624,"title":625,"chosen":125,"component":153},{"_uid":627,"text":958,"component":93},{"type":74,"content":959},[960,964,967,971,974],{"type":77,"attrs":961,"content":962},{"level":79},[963],{"text":634,"type":83},{"type":85,"content":965},[966],{"text":638,"type":83},{"type":77,"attrs":968,"content":969},{"level":79},[970],{"text":643,"type":83},{"type":85,"content":972},[973],{"text":647,"type":83},{"type":85,"content":975},[976],{"text":651,"type":83},{"_uid":653,"text":978,"heading":664,"component":191},{"type":74,"content":979},[980,983],{"type":85,"content":981},[982],{"text":659,"type":83},{"type":85,"content":984},[985],{"text":663,"type":83},[312,672,673,430],[],[],"Build it","approach","How I work",{"_uid":993,"intro":994,"label":995,"roles":996,"anchor":1544,"extras":1545,"heading":1563,"component":1564,"show_grid":125},"d06ddfab-3dfc-4e23-ac23-c0a08974f98b","What each job was, what it was really about, and where to find the work.","Work history, without the PDF",[997,1098,1175,1208,1423,1441,1484,1524],{"name":567,"created_at":998,"published_at":999,"updated_at":1000,"id":1001,"uuid":1002,"content":1003,"slug":675,"full_slug":1093,"sort_by_date":208,"position":209,"tag_list":1094,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1096,"first_published_at":999,"release_id":208,"lang":214,"path":208,"alternates":1097,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"2026-10-15T13:39:37.250Z","2026-10-15T13:39:37.296Z","2026-10-15T13:39:37.307Z",230940578829684,"1693bbac-84da-4c96-9d09-573cea267849",{"end":308,"org":567,"_uid":1004,"kind":1005,"cases":1006,"start":552,"title":665,"tools":1066,"essence":1067,"component":1068,"highlights":1069},"63a0a00c-b105-43c0-9e94-297af0e5bbfa","fractional",[1007],{"name":567,"created_at":568,"published_at":569,"updated_at":570,"id":571,"uuid":572,"content":1008,"slug":675,"full_slug":676,"sort_by_date":208,"position":677,"tag_list":1064,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":679,"first_published_at":680,"release_id":208,"lang":214,"path":208,"alternates":1065,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":574,"body":1009,"role":665,"asked":666,"title":567,"accent":194,"client":567,"period":667,"sector":668,"summary":669,"actually":670,"component":199,"disciplines":1063,"outcome_label":308,"outcome_figure":308,"seo_description":674},[1010,1016,1029,1034,1054],{"_uid":577,"items":1011,"component":70},[1012,1013,1014,1015],{"_uid":580,"label":581,"value":582,"component":57},{"_uid":584,"label":341,"value":585,"component":57},{"_uid":587,"label":588,"value":589,"component":57},{"_uid":591,"label":463,"value":592,"component":57},{"_uid":594,"text":1017,"component":93},{"type":74,"content":1018},[1019,1023,1026],{"type":77,"attrs":1020,"content":1021},{"level":79},[1022],{"text":601,"type":83},{"type":85,"content":1024},[1025],{"text":605,"type":83},{"type":85,"content":1027},[1028],{"text":609,"type":83},{"_uid":611,"heading":612,"options":1030,"component":162},[1031,1032,1033],{"_uid":615,"text":616,"title":617,"component":153},{"_uid":619,"text":620,"title":621,"component":153},{"_uid":623,"text":624,"title":625,"chosen":125,"component":153},{"_uid":627,"text":1035,"component":93},{"type":74,"content":1036},[1037,1041,1044,1048,1051],{"type":77,"attrs":1038,"content":1039},{"level":79},[1040],{"text":634,"type":83},{"type":85,"content":1042},[1043],{"text":638,"type":83},{"type":77,"attrs":1045,"content":1046},{"level":79},[1047],{"text":643,"type":83},{"type":85,"content":1049},[1050],{"text":647,"type":83},{"type":85,"content":1052},[1053],{"text":651,"type":83},{"_uid":653,"text":1055,"heading":664,"component":191},{"type":74,"content":1056},[1057,1060],{"type":85,"content":1058},[1059],{"text":659,"type":83},{"type":85,"content":1061},[1062],{"text":663,"type":83},[312,672,673,430],[],[],"TypeScript, React, Python, Terraform, PostHog, Claude Code","Leading product for a machine-learning forecasting startup in hospitality, and writing a fair amount of the code.","role",{"type":74,"content":1070},[1071],{"type":1072,"content":1073},"bullet_list",[1074,1081,1087],{"type":1075,"content":1076},"list_item",[1077],{"type":85,"content":1078},[1079],{"text":1080,"type":83},"Rebuilt and replatformed the customer experience in six weeks, then redid the brand and a mobile-first app.",{"type":1075,"content":1082},[1083],{"type":85,"content":1084},[1085],{"text":1086,"type":83},"Lead a data scientist and an ML engineer: priorities, technical review, coaching.",{"type":1075,"content":1088},[1089],{"type":85,"content":1090},[1091],{"text":1092,"type":83},"Built partner APIs and embeddable widgets, and pitched Tubr at Britain's Got Startups three weeks in.","record\u002Ftubr",[],230940085905409,"bce6ebf3-38f7-4773-ba53-3759e6f727d9",[],{"name":440,"created_at":1099,"published_at":1100,"updated_at":1101,"id":1102,"uuid":1103,"content":1104,"slug":560,"full_slug":1171,"sort_by_date":208,"position":317,"tag_list":1172,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1173,"first_published_at":1100,"release_id":208,"lang":214,"path":208,"alternates":1174,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"2026-10-15T13:39:38.508Z","2026-10-15T13:39:38.576Z","2026-10-15T13:39:38.592Z",230940584002948,"a294be1a-fa59-448c-b213-a4987046175f",{"end":308,"org":1105,"_uid":1106,"kind":1107,"cases":1108,"start":552,"title":1168,"tools":1169,"essence":1170,"component":1068},"Doxzoo (Greens Digital)","5428b4c7-9d1f-4fff-b3a1-00335469f648","freelance",[1109],{"name":440,"created_at":441,"published_at":442,"updated_at":443,"id":444,"uuid":445,"content":1110,"slug":560,"full_slug":561,"sort_by_date":208,"position":562,"tag_list":1166,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":564,"first_published_at":442,"release_id":208,"lang":214,"path":208,"alternates":1167,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":447,"body":1111,"role":460,"asked":550,"title":440,"accent":551,"client":454,"period":552,"sector":553,"summary":554,"actually":555,"component":199,"disciplines":1165,"outcome_label":557,"outcome_figure":558,"seo_description":559},[1112,1118,1131,1132,1138,1139,1146,1159],{"_uid":450,"items":1113,"component":70},[1114,1115,1116,1117],{"_uid":453,"label":56,"value":454,"component":57},{"_uid":456,"label":457,"value":440,"component":57},{"_uid":459,"label":64,"value":460,"component":57},{"_uid":462,"label":463,"value":464,"component":57},{"_uid":466,"text":1119,"component":93},{"type":74,"content":1120},[1121,1125,1128],{"type":77,"attrs":1122,"content":1123},{"level":79},[1124],{"text":473,"type":83},{"type":85,"content":1126},[1127],{"text":477,"type":83},{"type":85,"content":1129},[1130],{"text":481,"type":83},{"_uid":483,"label":484,"quote":485,"component":98},{"_uid":487,"text":1133,"component":93},{"type":74,"content":1134},[1135],{"type":85,"content":1136},[1137],{"text":493,"type":83},{"_uid":495,"items":496,"heading":497,"component":498},{"_uid":500,"kind":501,"nodes":1140,"heading":523,"component":144},[1141,1142,1143,1144,1145],{"_uid":504,"note":505,"label":506,"component":120},{"_uid":508,"note":509,"label":510,"component":120},{"_uid":512,"note":513,"label":514,"component":120},{"_uid":516,"note":517,"label":518,"component":120},{"_uid":520,"note":521,"label":522,"emphasis":125,"component":120},{"_uid":525,"text":1147,"component":93},{"type":74,"content":1148},[1149,1153,1156],{"type":77,"attrs":1150,"content":1151},{"level":79},[1152],{"text":532,"type":83},{"type":85,"content":1154},[1155],{"text":536,"type":83},{"type":85,"content":1157},[1158],{"text":540,"type":83},{"_uid":542,"text":1160,"heading":549,"component":191},{"type":74,"content":1161},[1162],{"type":85,"content":1163},[1164],{"text":548,"type":83},[429,202,312,203],[],[],"Service and Product Designer","Workshops, journey mapping, AI-assisted front-end delivery","Discovery and service design for a profitable print platform's V3, then building the front end.","record\u002Fdoxzoo",[],"bb636db0-b03a-44fb-aff1-28571fe99413",[],{"name":718,"created_at":1176,"published_at":1177,"updated_at":1178,"id":1179,"uuid":1180,"content":1181,"slug":1203,"full_slug":1204,"sort_by_date":208,"position":435,"tag_list":1205,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1206,"first_published_at":1177,"release_id":208,"lang":214,"path":208,"alternates":1207,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"2026-10-15T13:39:39.791Z","2026-10-15T13:39:39.844Z","2026-10-15T13:39:39.857Z",230940589254136,"b57a93c1-13d1-46d3-a625-4b7095a8519f",{"end":552,"org":718,"_uid":1182,"kind":1107,"start":1183,"title":1184,"tools":1185,"essence":1186,"component":1068,"highlights":1187},"8ae9086b-7268-4512-8708-9d820eb3690c","2025","Principal Product Designer","Figma, React, shadcn\u002Fui, Tailwind","Brand, design system and the first product for an early-stage startup, from discovery with the founders to shipped UI.",{"type":74,"content":1188},[1189],{"type":1072,"content":1190},[1191,1197],{"type":1075,"content":1192},[1193],{"type":85,"content":1194},[1195],{"text":1196,"type":83},"Identity, logo, visual language and a component system in Figma and React, set up for consistent AI-assisted development.",{"type":1075,"content":1198},[1199],{"type":85,"content":1200},[1201],{"text":1202,"type":83},"Built the public website and the initial product UI myself.","koala","record\u002Fkoala",[],"4c918ca9-8ec7-4a16-9815-19a1fe4d14c4",[],{"name":61,"created_at":1209,"published_at":1210,"updated_at":1211,"id":1212,"uuid":1213,"content":1214,"slug":1418,"full_slug":1419,"sort_by_date":208,"position":562,"tag_list":1420,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1421,"first_published_at":1210,"release_id":208,"lang":214,"path":208,"alternates":1422,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"2026-10-15T13:39:41.035Z","2026-10-15T13:39:41.086Z","2026-10-15T13:39:41.102Z",230940594349661,"22131f8d-b126-4fb4-8e74-3462f4145c48",{"end":1183,"org":61,"_uid":1215,"kind":1216,"cases":1217,"start":1386,"title":1387,"tools":1388,"essence":1389,"component":1068,"highlights":1390},"a1f77a4d-9bd1-4aaf-acb3-8eb9ad1791dc","employed",[1218,1283,1331],{"name":42,"created_at":43,"published_at":44,"updated_at":45,"id":46,"uuid":47,"content":1219,"slug":206,"full_slug":207,"sort_by_date":208,"position":209,"tag_list":1281,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":213,"first_published_at":44,"release_id":208,"lang":214,"path":208,"alternates":1282,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":49,"body":1220,"role":192,"asked":193,"title":42,"accent":194,"client":42,"period":195,"sector":196,"summary":197,"actually":198,"component":199,"disciplines":1280,"outcome_label":204,"outcome_figure":180,"seo_description":205},[1221,1227,1240,1241,1250,1258,1263,1273,1274],{"_uid":52,"items":1222,"component":70},[1223,1224,1225,1226],{"_uid":55,"label":56,"value":42,"component":57},{"_uid":59,"label":60,"value":61,"component":57},{"_uid":63,"label":64,"value":65,"component":57},{"_uid":67,"label":68,"value":69,"component":57},{"_uid":72,"text":1228,"component":93},{"type":74,"content":1229},[1230,1234,1237],{"type":77,"attrs":1231,"content":1232},{"level":79},[1233],{"text":82,"type":83},{"type":85,"content":1235},[1236],{"text":88,"type":83},{"type":85,"content":1238},[1239],{"text":92,"type":83},{"_uid":95,"label":96,"quote":97,"component":98},{"_uid":100,"text":1242,"component":93},{"type":74,"content":1243},[1244,1247],{"type":85,"content":1245},[1246],{"text":106,"type":83},{"type":85,"content":1248},[1249],{"text":110,"type":83},{"_uid":112,"kind":113,"nodes":1251,"heading":143,"component":144},[1252,1253,1254,1255,1256,1257],{"_uid":116,"note":117,"side":118,"label":119,"component":120},{"_uid":122,"note":123,"side":118,"label":124,"emphasis":125,"component":120},{"_uid":127,"note":128,"side":118,"label":129,"component":120},{"_uid":131,"note":132,"side":133,"label":134,"component":120},{"_uid":136,"note":137,"side":133,"label":138,"component":120},{"_uid":140,"note":141,"side":133,"label":142,"emphasis":125,"component":120},{"_uid":146,"heading":147,"options":1259,"component":162},[1260,1261,1262],{"_uid":150,"text":151,"title":152,"component":153},{"_uid":155,"text":156,"title":157,"component":153},{"_uid":159,"text":160,"title":161,"chosen":125,"component":153},{"_uid":164,"text":1264,"component":93},{"type":74,"content":1265},[1266,1270],{"type":77,"attrs":1267,"content":1268},{"level":79},[1269],{"text":171,"type":83},{"type":85,"content":1271},[1272],{"text":175,"type":83},{"_uid":177,"label":178,"caveat":179,"figure":180,"component":181},{"_uid":183,"text":1275,"heading":190,"component":191},{"type":74,"content":1276},[1277],{"type":85,"content":1278},[1279],{"text":189,"type":83},[201,202,203],[],[],{"name":217,"created_at":218,"published_at":219,"updated_at":220,"id":221,"uuid":222,"content":1284,"slug":315,"full_slug":316,"sort_by_date":208,"position":317,"tag_list":1329,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":319,"first_published_at":320,"release_id":208,"lang":214,"path":208,"alternates":1330,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":224,"body":1285,"role":305,"asked":306,"title":217,"accent":307,"client":217,"period":195,"sector":308,"summary":309,"actually":310,"component":199,"disciplines":1328,"outcome_label":313,"outcome_figure":295,"seo_description":314},[1286,1292,1305,1311,1321,1322],{"_uid":227,"items":1287,"component":70},[1288,1289,1290,1291],{"_uid":230,"label":56,"value":217,"component":57},{"_uid":232,"label":60,"value":61,"component":57},{"_uid":234,"label":64,"value":235,"component":57},{"_uid":237,"label":238,"value":239,"component":57},{"_uid":241,"text":1293,"component":93},{"type":74,"content":1294},[1295,1299,1302],{"type":77,"attrs":1296,"content":1297},{"level":79},[1298],{"text":248,"type":83},{"type":85,"content":1300},[1301],{"text":252,"type":83},{"type":85,"content":1303},[1304],{"text":256,"type":83},{"_uid":258,"kind":259,"nodes":1306,"heading":277,"component":144},[1307,1308,1309,1310],{"_uid":262,"note":263,"label":264,"component":120},{"_uid":266,"note":267,"label":268,"component":120},{"_uid":270,"note":271,"label":272,"component":120},{"_uid":274,"note":275,"label":276,"emphasis":125,"component":120},{"_uid":279,"text":1312,"component":93},{"type":74,"content":1313},[1314,1318],{"type":77,"attrs":1315,"content":1316},{"level":79},[1317],{"text":286,"type":83},{"type":85,"content":1319},[1320],{"text":290,"type":83},{"_uid":292,"label":293,"caveat":294,"figure":295,"component":181},{"_uid":297,"text":1323,"heading":304,"component":191},{"type":74,"content":1324},[1325],{"type":85,"content":1326},[1327],{"text":303,"type":83},[201,202,312],[],[],{"name":323,"created_at":324,"published_at":325,"updated_at":326,"id":327,"uuid":328,"content":1332,"slug":433,"full_slug":434,"sort_by_date":208,"position":435,"tag_list":1384,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":437,"first_published_at":325,"release_id":208,"lang":214,"path":208,"alternates":1385,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":330,"body":1333,"role":422,"asked":423,"title":323,"accent":424,"client":323,"period":195,"sector":425,"summary":426,"actually":427,"component":199,"disciplines":1383,"outcome_label":431,"outcome_figure":350,"seo_description":432},[1334,1341,1354,1360,1373,1374],{"_uid":333,"items":1335,"component":70},[1336,1337,1338,1339,1340],{"_uid":336,"label":56,"value":323,"component":57},{"_uid":338,"label":60,"value":61,"component":57},{"_uid":340,"label":341,"value":342,"component":57},{"_uid":344,"label":345,"value":346,"component":57},{"_uid":348,"label":349,"value":350,"component":57},{"_uid":352,"text":1342,"component":93},{"type":74,"content":1343},[1344,1348,1351],{"type":77,"attrs":1345,"content":1346},{"level":79},[1347],{"text":359,"type":83},{"type":85,"content":1349},[1350],{"text":363,"type":83},{"type":85,"content":1352},[1353],{"text":367,"type":83},{"_uid":369,"kind":259,"nodes":1355,"heading":387,"component":144},[1356,1357,1358,1359],{"_uid":372,"note":373,"label":374,"component":120},{"_uid":376,"note":377,"label":378,"emphasis":125,"component":120},{"_uid":380,"note":381,"label":382,"component":120},{"_uid":384,"note":385,"label":386,"component":120},{"_uid":389,"text":1361,"component":93},{"type":74,"content":1362},[1363,1366,1370],{"type":85,"content":1364},[1365],{"text":395,"type":83},{"type":77,"attrs":1367,"content":1368},{"level":79},[1369],{"text":400,"type":83},{"type":85,"content":1371},[1372],{"text":404,"type":83},{"_uid":406,"label":407,"caveat":408,"figure":350,"component":181},{"_uid":410,"text":1375,"heading":421,"component":191},{"type":74,"content":1376},[1377,1380],{"type":85,"content":1378},[1379],{"text":416,"type":83},{"type":85,"content":1381},[1382],{"text":420,"type":83},[429,201,202,430],[],[],"2019","Principal Consultant, then Solution Director","Figma, Vue, Storyblok, workshops, estimates and proposals","Six years of discovery, service design and delivery for established businesses, and building the design team.",{"type":74,"content":1391},[1392],{"type":1072,"content":1393},[1394,1400,1406,1412],{"type":1075,"content":1395},[1396],{"type":85,"content":1397},[1398],{"text":1399,"type":83},"Founding member of the strategy consultancy function. Scoped, estimated, pitched and won work with C-suite clients.",{"type":1075,"content":1401},[1402],{"type":85,"content":1403},[1404],{"text":1405,"type":83},"Grew the design team from one to four, with hiring, one-to-ones, mentoring and performance management.",{"type":1075,"content":1407},[1408],{"type":85,"content":1409},[1410],{"text":1411,"type":83},"Led cross-functional teams of up to eight. As Solution Director at Viadex, owned product decisions and client liaison on a customer-facing view of ICT estates.",{"type":1075,"content":1413},[1414],{"type":85,"content":1415},[1416],{"text":1417,"type":83},"Rebuilt Razor's own site on Storyblok and Vue in 2023, the ancestor of this one.","razor","record\u002Frazor",[],"840b5fdd-bab4-439b-b9b6-d755d1d7da9f",[],{"name":1424,"created_at":1425,"published_at":1426,"updated_at":1427,"id":1428,"uuid":1429,"content":1430,"slug":1436,"full_slug":1437,"sort_by_date":208,"position":677,"tag_list":1438,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1439,"first_published_at":1426,"release_id":208,"lang":214,"path":208,"alternates":1440,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"Obitus","2026-10-15T13:39:42.266Z","2026-10-15T13:39:42.323Z","2026-10-15T13:39:42.336Z",230940599387757,"42d9a97b-b1cb-4070-b9b8-07aa637bfb73",{"end":1386,"org":1424,"_uid":1431,"kind":1216,"start":1432,"title":1433,"tools":1434,"essence":1435,"component":1068},"d0ebc501-8e84-4023-bfd4-99831cacc470","2018","Senior UX and Front-End Lead","Vue, Nuxt, AWS Lambda","Modernising web applications for the bereavement sector: the UX, the front-end architecture and the workshops to agree both.","obitus","record\u002Fobitus",[],"25444154-ebab-4ee3-8a2b-ca524546a74f",[],{"name":1442,"created_at":1443,"published_at":1444,"updated_at":1445,"id":1446,"uuid":1447,"content":1448,"slug":1107,"full_slug":1478,"sort_by_date":208,"position":1479,"tag_list":1480,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1481,"first_published_at":1482,"release_id":208,"lang":214,"path":208,"alternates":1483,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"Freelance and 3D View Pro","2026-10-15T13:39:43.736Z","2026-10-15T13:44:24.862Z","2026-10-15T13:44:24.874Z",230940605404864,"291d5e16-c904-4a4d-a2ee-4572c06551d5",{"end":1386,"org":1449,"_uid":1450,"kind":1451,"start":1452,"title":1453,"tools":1454,"essence":1455,"component":1068,"highlights":1456},"Freelance, and 3D View Pro","260e9f50-7df5-4031-ae45-45664282a0f7","founder","2016","Consultant and founder","VR, AR, automated cloud conversion","VR, AR and UX work alongside the day job, including founding a SaaS for VR architectural visualisation.",{"type":74,"content":1457},[1458],{"type":1072,"content":1459},[1460,1466,1472],{"type":1075,"content":1461},[1462],{"type":85,"content":1463},[1464],{"text":1465,"type":83},"3D View Pro: turned architectural models into VR walkthroughs with automated cloud conversion.",{"type":1075,"content":1467},[1468],{"type":85,"content":1469},[1470],{"text":1471,"type":83},"Sheffield Children's Hospital: an AR distraction therapy app for children during treatment. Winner at the Design Week 2020 awards.",{"type":1075,"content":1473},[1474],{"type":85,"content":1475},[1476],{"text":1477,"type":83},"The Big Word: discovery, UX and UI.","record\u002Ffreelance",-50,[],"32d65f67-ff44-40a5-b82f-a0afd6cf49c1","2026-10-15T13:39:43.782Z",[],{"name":694,"created_at":1485,"published_at":1486,"updated_at":1487,"id":1488,"uuid":1489,"content":1490,"slug":1518,"full_slug":1519,"sort_by_date":208,"position":1520,"tag_list":1521,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1522,"first_published_at":1486,"release_id":208,"lang":214,"path":208,"alternates":1523,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"2026-10-15T13:39:45.061Z","2026-10-15T13:39:45.161Z","2026-10-15T13:39:45.177Z",230940610869005,"8ac91ef4-f0be-4cc4-a4d4-ecec5dd68ad8",{"end":1432,"org":694,"_uid":1491,"kind":1216,"start":1492,"title":1493,"tools":1494,"essence":1495,"component":1068,"highlights":1496},"2eeeaea6-c4d1-4d74-981b-b4cbe288b5b4","2011","Lead Front-End Developer, UX and Product Strategy","Orchard CMS, front-end development, research with patients and clinicians","Front end and UX for a health information site with 18 million unique users a month.",{"type":74,"content":1497},[1498],{"type":1072,"content":1499},[1500,1506,1512],{"type":1075,"content":1501},[1502],{"type":85,"content":1503},[1504],{"text":1505,"type":83},"Built up the community through several redesigns. Its share of total traffic grew from 20% to 66%, and pages per visit went up with it.",{"type":1075,"content":1507},[1508],{"type":85,"content":1509},[1510],{"text":1511,"type":83},"Helped shape and launch Patient Access for NHS appointment booking, working with EMIS.",{"type":1075,"content":1513},[1514],{"type":85,"content":1515},[1516],{"text":1517,"type":83},"Ran research and workshops with patients and clinicians. Managed a small team.","patient-info","record\u002Fpatient-info",-60,[],"51fc4736-dbf2-4068-b15c-1b1fdf832379",[],{"name":1525,"created_at":1526,"published_at":1527,"updated_at":1528,"id":1529,"uuid":1530,"content":1531,"slug":1537,"full_slug":1538,"sort_by_date":208,"position":1539,"tag_list":1540,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1541,"first_published_at":1542,"release_id":208,"lang":214,"path":208,"alternates":1543,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},"10th Planet","2026-10-15T13:39:46.610Z","2026-10-15T13:44:23.618Z","2026-10-15T13:44:23.629Z",230940617181050,"7a0075d4-8201-43ac-a804-dc25479fa52d",{"end":1492,"org":1525,"_uid":1532,"kind":1216,"start":1533,"title":1534,"tools":1535,"essence":1536,"component":1068},"8d883e27-f484-47fd-ae68-ca1b615cd39b","2008","Creative Web Developer","PHP, WordPress","Where I learned to take an idea from concept to a working build: interactive work for commercial clients, PHP and heavily customised WordPress.","10th-planet","record\u002F10th-planet",-70,[],"d065d2d1-a02a-446c-b714-1c64ce08079e","2026-10-15T13:39:46.645Z",[],"record",[1546,1551,1555,1559],{"_uid":1547,"items":1548,"title":1549,"component":1550},"91214c25-c4b8-4218-99ad-ef3a8fbf4275","Front End Sheffield: Vue and Nuxt\nYorkshire AI Summit: AI strategy\nSocialCode: UX in immersive experiences\nBritain's Got Startups, York: pitching Tubr","Talks","fact_group",{"_uid":1552,"items":1553,"title":1554,"component":1550},"72812357-15c2-44e4-bd64-7a3a8a891e4d","Co-organiser, Immerse Sheffield (VR and AR meetup)\nVolunteer, Whirlow Hall Farm","Community",{"_uid":1556,"items":1557,"title":1558,"component":1550},"c9e76e36-d7d8-4c21-905a-e4b839c256a0","BA (Hons) Graphic Art and Design, 2:1\nLeeds Metropolitan University","Education",{"_uid":1560,"items":1561,"title":1562,"component":1550},"d64ac834-7346-4259-a5e9-1ea4a453a859","Figma, TypeScript, React, Vue and Nuxt, Tailwind\nPython, PostgreSQL, Prisma, Terraform\nAWS, Azure, GitHub Actions\nClaude Code and agentic workflows","Tools I reach for","Record","timeline",{"_uid":1566,"count":1567,"label":1568,"anchor":1569,"source":1569,"heading":1570,"component":1571,"empty_text":1572,"more_label":1573},"de36a844-a6d6-4abb-a43c-cebc64de1654","3","For peers, mostly","writing","Writing","latest_feed","Nothing published yet. The first pieces are on their way.","All writing",{"_uid":1575,"count":1567,"label":1576,"anchor":1577,"source":1577,"heading":1578,"component":1571,"empty_text":1579,"more_label":1580},"56d69594-ed4a-4e34-b965-c9a9145ac290","Small experiments","lab","Lab","Nothing in the lab yet.","Everything in the lab",{"_uid":1582,"text":1583,"email":1584,"links":1585,"anchor":1589,"heading":1590,"component":1589},"41d1386d-964e-46ac-aad4-f195d9755d4b","I'm looking for my next role in product, design or transformation: permanent, contract or fractional. Tell me what's stuck.","martinalcock84@gmail.com",[1586],{"_uid":1587,"link":1588,"label":32,"component":26},"d65e4527-c02e-472c-b54b-9467655ae572",{"url":30,"target":31,"linktype":23,"fieldtype":24},"contact","Got a knotty one?","page","Martin Alcock · Product, service design and front end","I turn complex business problems into useful digital products: bringing people together to shape the direction, and staying hands-on to design and build them.","home",[],"8a3184aa-b0b6-49b7-a677-2959e58faa67","2026-10-14T20:23:00.239Z",[],1792072709,[1601,1684,1739,1936,1959,2018,2022,2026,2085,2133,2156,2220,2285],{"name":567,"created_at":998,"published_at":999,"updated_at":1000,"id":1001,"uuid":1002,"content":1602,"slug":675,"full_slug":1093,"sort_by_date":208,"position":209,"tag_list":1682,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1096,"first_published_at":999,"release_id":208,"lang":214,"path":208,"alternates":1683,"default_full_slug":208,"translated_slugs":208},{"end":308,"org":567,"_uid":1004,"kind":1005,"cases":1603,"start":552,"title":665,"tools":1066,"essence":1067,"component":1068,"highlights":1663},[1604],{"name":567,"created_at":568,"published_at":569,"updated_at":570,"id":571,"uuid":572,"content":1605,"slug":675,"full_slug":676,"sort_by_date":208,"position":677,"tag_list":1661,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":679,"first_published_at":680,"release_id":208,"lang":214,"path":208,"alternates":1662,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":574,"body":1606,"role":665,"asked":666,"title":567,"accent":194,"client":567,"period":667,"sector":668,"summary":669,"actually":670,"component":199,"disciplines":1660,"outcome_label":308,"outcome_figure":308,"seo_description":674},[1607,1613,1626,1631,1651],{"_uid":577,"items":1608,"component":70},[1609,1610,1611,1612],{"_uid":580,"label":581,"value":582,"component":57},{"_uid":584,"label":341,"value":585,"component":57},{"_uid":587,"label":588,"value":589,"component":57},{"_uid":591,"label":463,"value":592,"component":57},{"_uid":594,"text":1614,"component":93},{"type":74,"content":1615},[1616,1620,1623],{"type":77,"attrs":1617,"content":1618},{"level":79},[1619],{"text":601,"type":83},{"type":85,"content":1621},[1622],{"text":605,"type":83},{"type":85,"content":1624},[1625],{"text":609,"type":83},{"_uid":611,"heading":612,"options":1627,"component":162},[1628,1629,1630],{"_uid":615,"text":616,"title":617,"component":153},{"_uid":619,"text":620,"title":621,"component":153},{"_uid":623,"text":624,"title":625,"chosen":125,"component":153},{"_uid":627,"text":1632,"component":93},{"type":74,"content":1633},[1634,1638,1641,1645,1648],{"type":77,"attrs":1635,"content":1636},{"level":79},[1637],{"text":634,"type":83},{"type":85,"content":1639},[1640],{"text":638,"type":83},{"type":77,"attrs":1642,"content":1643},{"level":79},[1644],{"text":643,"type":83},{"type":85,"content":1646},[1647],{"text":647,"type":83},{"type":85,"content":1649},[1650],{"text":651,"type":83},{"_uid":653,"text":1652,"heading":664,"component":191},{"type":74,"content":1653},[1654,1657],{"type":85,"content":1655},[1656],{"text":659,"type":83},{"type":85,"content":1658},[1659],{"text":663,"type":83},[312,672,673,430],[],[],{"type":74,"content":1664},[1665],{"type":1072,"content":1666},[1667,1672,1677],{"type":1075,"content":1668},[1669],{"type":85,"content":1670},[1671],{"text":1080,"type":83},{"type":1075,"content":1673},[1674],{"type":85,"content":1675},[1676],{"text":1086,"type":83},{"type":1075,"content":1678},[1679],{"type":85,"content":1680},[1681],{"text":1092,"type":83},[],[],{"name":323,"created_at":324,"published_at":325,"updated_at":326,"id":327,"uuid":328,"content":1685,"slug":433,"full_slug":434,"sort_by_date":208,"position":435,"tag_list":1737,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":437,"first_published_at":325,"release_id":208,"lang":214,"path":208,"alternates":1738,"default_full_slug":208,"translated_slugs":208},{"_uid":330,"body":1686,"role":422,"asked":423,"title":323,"accent":424,"client":323,"period":195,"sector":425,"summary":426,"actually":427,"component":199,"disciplines":1736,"outcome_label":431,"outcome_figure":350,"seo_description":432},[1687,1694,1707,1713,1726,1727],{"_uid":333,"items":1688,"component":70},[1689,1690,1691,1692,1693],{"_uid":336,"label":56,"value":323,"component":57},{"_uid":338,"label":60,"value":61,"component":57},{"_uid":340,"label":341,"value":342,"component":57},{"_uid":344,"label":345,"value":346,"component":57},{"_uid":348,"label":349,"value":350,"component":57},{"_uid":352,"text":1695,"component":93},{"type":74,"content":1696},[1697,1701,1704],{"type":77,"attrs":1698,"content":1699},{"level":79},[1700],{"text":359,"type":83},{"type":85,"content":1702},[1703],{"text":363,"type":83},{"type":85,"content":1705},[1706],{"text":367,"type":83},{"_uid":369,"kind":259,"nodes":1708,"heading":387,"component":144},[1709,1710,1711,1712],{"_uid":372,"note":373,"label":374,"component":120},{"_uid":376,"note":377,"label":378,"emphasis":125,"component":120},{"_uid":380,"note":381,"label":382,"component":120},{"_uid":384,"note":385,"label":386,"component":120},{"_uid":389,"text":1714,"component":93},{"type":74,"content":1715},[1716,1719,1723],{"type":85,"content":1717},[1718],{"text":395,"type":83},{"type":77,"attrs":1720,"content":1721},{"level":79},[1722],{"text":400,"type":83},{"type":85,"content":1724},[1725],{"text":404,"type":83},{"_uid":406,"label":407,"caveat":408,"figure":350,"component":181},{"_uid":410,"text":1728,"heading":421,"component":191},{"type":74,"content":1729},[1730,1733],{"type":85,"content":1731},[1732],{"text":416,"type":83},{"type":85,"content":1734},[1735],{"text":420,"type":83},[429,201,202,430],[],[],{"name":61,"created_at":1209,"published_at":1210,"updated_at":1211,"id":1212,"uuid":1213,"content":1740,"slug":1418,"full_slug":1419,"sort_by_date":208,"position":562,"tag_list":1934,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1421,"first_published_at":1210,"release_id":208,"lang":214,"path":208,"alternates":1935,"default_full_slug":208,"translated_slugs":208},{"end":1183,"org":61,"_uid":1215,"kind":1216,"cases":1741,"start":1386,"title":1387,"tools":1388,"essence":1389,"component":1068,"highlights":1910},[1742,1807,1855],{"name":42,"created_at":43,"published_at":44,"updated_at":45,"id":46,"uuid":47,"content":1743,"slug":206,"full_slug":207,"sort_by_date":208,"position":209,"tag_list":1805,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":213,"first_published_at":44,"release_id":208,"lang":214,"path":208,"alternates":1806,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":49,"body":1744,"role":192,"asked":193,"title":42,"accent":194,"client":42,"period":195,"sector":196,"summary":197,"actually":198,"component":199,"disciplines":1804,"outcome_label":204,"outcome_figure":180,"seo_description":205},[1745,1751,1764,1765,1774,1782,1787,1797,1798],{"_uid":52,"items":1746,"component":70},[1747,1748,1749,1750],{"_uid":55,"label":56,"value":42,"component":57},{"_uid":59,"label":60,"value":61,"component":57},{"_uid":63,"label":64,"value":65,"component":57},{"_uid":67,"label":68,"value":69,"component":57},{"_uid":72,"text":1752,"component":93},{"type":74,"content":1753},[1754,1758,1761],{"type":77,"attrs":1755,"content":1756},{"level":79},[1757],{"text":82,"type":83},{"type":85,"content":1759},[1760],{"text":88,"type":83},{"type":85,"content":1762},[1763],{"text":92,"type":83},{"_uid":95,"label":96,"quote":97,"component":98},{"_uid":100,"text":1766,"component":93},{"type":74,"content":1767},[1768,1771],{"type":85,"content":1769},[1770],{"text":106,"type":83},{"type":85,"content":1772},[1773],{"text":110,"type":83},{"_uid":112,"kind":113,"nodes":1775,"heading":143,"component":144},[1776,1777,1778,1779,1780,1781],{"_uid":116,"note":117,"side":118,"label":119,"component":120},{"_uid":122,"note":123,"side":118,"label":124,"emphasis":125,"component":120},{"_uid":127,"note":128,"side":118,"label":129,"component":120},{"_uid":131,"note":132,"side":133,"label":134,"component":120},{"_uid":136,"note":137,"side":133,"label":138,"component":120},{"_uid":140,"note":141,"side":133,"label":142,"emphasis":125,"component":120},{"_uid":146,"heading":147,"options":1783,"component":162},[1784,1785,1786],{"_uid":150,"text":151,"title":152,"component":153},{"_uid":155,"text":156,"title":157,"component":153},{"_uid":159,"text":160,"title":161,"chosen":125,"component":153},{"_uid":164,"text":1788,"component":93},{"type":74,"content":1789},[1790,1794],{"type":77,"attrs":1791,"content":1792},{"level":79},[1793],{"text":171,"type":83},{"type":85,"content":1795},[1796],{"text":175,"type":83},{"_uid":177,"label":178,"caveat":179,"figure":180,"component":181},{"_uid":183,"text":1799,"heading":190,"component":191},{"type":74,"content":1800},[1801],{"type":85,"content":1802},[1803],{"text":189,"type":83},[201,202,203],[],[],{"name":217,"created_at":218,"published_at":219,"updated_at":220,"id":221,"uuid":222,"content":1808,"slug":315,"full_slug":316,"sort_by_date":208,"position":317,"tag_list":1853,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":319,"first_published_at":320,"release_id":208,"lang":214,"path":208,"alternates":1854,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":224,"body":1809,"role":305,"asked":306,"title":217,"accent":307,"client":217,"period":195,"sector":308,"summary":309,"actually":310,"component":199,"disciplines":1852,"outcome_label":313,"outcome_figure":295,"seo_description":314},[1810,1816,1829,1835,1845,1846],{"_uid":227,"items":1811,"component":70},[1812,1813,1814,1815],{"_uid":230,"label":56,"value":217,"component":57},{"_uid":232,"label":60,"value":61,"component":57},{"_uid":234,"label":64,"value":235,"component":57},{"_uid":237,"label":238,"value":239,"component":57},{"_uid":241,"text":1817,"component":93},{"type":74,"content":1818},[1819,1823,1826],{"type":77,"attrs":1820,"content":1821},{"level":79},[1822],{"text":248,"type":83},{"type":85,"content":1824},[1825],{"text":252,"type":83},{"type":85,"content":1827},[1828],{"text":256,"type":83},{"_uid":258,"kind":259,"nodes":1830,"heading":277,"component":144},[1831,1832,1833,1834],{"_uid":262,"note":263,"label":264,"component":120},{"_uid":266,"note":267,"label":268,"component":120},{"_uid":270,"note":271,"label":272,"component":120},{"_uid":274,"note":275,"label":276,"emphasis":125,"component":120},{"_uid":279,"text":1836,"component":93},{"type":74,"content":1837},[1838,1842],{"type":77,"attrs":1839,"content":1840},{"level":79},[1841],{"text":286,"type":83},{"type":85,"content":1843},[1844],{"text":290,"type":83},{"_uid":292,"label":293,"caveat":294,"figure":295,"component":181},{"_uid":297,"text":1847,"heading":304,"component":191},{"type":74,"content":1848},[1849],{"type":85,"content":1850},[1851],{"text":303,"type":83},[201,202,312],[],[],{"name":323,"created_at":324,"published_at":325,"updated_at":326,"id":327,"uuid":328,"content":1856,"slug":433,"full_slug":434,"sort_by_date":208,"position":435,"tag_list":1908,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":437,"first_published_at":325,"release_id":208,"lang":214,"path":208,"alternates":1909,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":330,"body":1857,"role":422,"asked":423,"title":323,"accent":424,"client":323,"period":195,"sector":425,"summary":426,"actually":427,"component":199,"disciplines":1907,"outcome_label":431,"outcome_figure":350,"seo_description":432},[1858,1865,1878,1884,1897,1898],{"_uid":333,"items":1859,"component":70},[1860,1861,1862,1863,1864],{"_uid":336,"label":56,"value":323,"component":57},{"_uid":338,"label":60,"value":61,"component":57},{"_uid":340,"label":341,"value":342,"component":57},{"_uid":344,"label":345,"value":346,"component":57},{"_uid":348,"label":349,"value":350,"component":57},{"_uid":352,"text":1866,"component":93},{"type":74,"content":1867},[1868,1872,1875],{"type":77,"attrs":1869,"content":1870},{"level":79},[1871],{"text":359,"type":83},{"type":85,"content":1873},[1874],{"text":363,"type":83},{"type":85,"content":1876},[1877],{"text":367,"type":83},{"_uid":369,"kind":259,"nodes":1879,"heading":387,"component":144},[1880,1881,1882,1883],{"_uid":372,"note":373,"label":374,"component":120},{"_uid":376,"note":377,"label":378,"emphasis":125,"component":120},{"_uid":380,"note":381,"label":382,"component":120},{"_uid":384,"note":385,"label":386,"component":120},{"_uid":389,"text":1885,"component":93},{"type":74,"content":1886},[1887,1890,1894],{"type":85,"content":1888},[1889],{"text":395,"type":83},{"type":77,"attrs":1891,"content":1892},{"level":79},[1893],{"text":400,"type":83},{"type":85,"content":1895},[1896],{"text":404,"type":83},{"_uid":406,"label":407,"caveat":408,"figure":350,"component":181},{"_uid":410,"text":1899,"heading":421,"component":191},{"type":74,"content":1900},[1901,1904],{"type":85,"content":1902},[1903],{"text":416,"type":83},{"type":85,"content":1905},[1906],{"text":420,"type":83},[429,201,202,430],[],[],{"type":74,"content":1911},[1912],{"type":1072,"content":1913},[1914,1919,1924,1929],{"type":1075,"content":1915},[1916],{"type":85,"content":1917},[1918],{"text":1399,"type":83},{"type":1075,"content":1920},[1921],{"type":85,"content":1922},[1923],{"text":1405,"type":83},{"type":1075,"content":1925},[1926],{"type":85,"content":1927},[1928],{"text":1411,"type":83},{"type":1075,"content":1930},[1931],{"type":85,"content":1932},[1933],{"text":1417,"type":83},[],[],{"name":1442,"created_at":1443,"published_at":1444,"updated_at":1445,"id":1446,"uuid":1447,"content":1937,"slug":1107,"full_slug":1478,"sort_by_date":208,"position":1479,"tag_list":1957,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1481,"first_published_at":1482,"release_id":208,"lang":214,"path":208,"alternates":1958,"default_full_slug":208,"translated_slugs":208},{"end":1386,"org":1449,"_uid":1450,"kind":1451,"start":1452,"title":1453,"tools":1454,"essence":1455,"component":1068,"highlights":1938},{"type":74,"content":1939},[1940],{"type":1072,"content":1941},[1942,1947,1952],{"type":1075,"content":1943},[1944],{"type":85,"content":1945},[1946],{"text":1465,"type":83},{"type":1075,"content":1948},[1949],{"type":85,"content":1950},[1951],{"text":1471,"type":83},{"type":1075,"content":1953},[1954],{"type":85,"content":1955},[1956],{"text":1477,"type":83},[],[],{"name":440,"created_at":441,"published_at":442,"updated_at":443,"id":444,"uuid":445,"content":1960,"slug":560,"full_slug":561,"sort_by_date":208,"position":562,"tag_list":2016,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":564,"first_published_at":442,"release_id":208,"lang":214,"path":208,"alternates":2017,"default_full_slug":208,"translated_slugs":208},{"_uid":447,"body":1961,"role":460,"asked":550,"title":440,"accent":551,"client":454,"period":552,"sector":553,"summary":554,"actually":555,"component":199,"disciplines":2015,"outcome_label":557,"outcome_figure":558,"seo_description":559},[1962,1968,1981,1982,1988,1989,1996,2009],{"_uid":450,"items":1963,"component":70},[1964,1965,1966,1967],{"_uid":453,"label":56,"value":454,"component":57},{"_uid":456,"label":457,"value":440,"component":57},{"_uid":459,"label":64,"value":460,"component":57},{"_uid":462,"label":463,"value":464,"component":57},{"_uid":466,"text":1969,"component":93},{"type":74,"content":1970},[1971,1975,1978],{"type":77,"attrs":1972,"content":1973},{"level":79},[1974],{"text":473,"type":83},{"type":85,"content":1976},[1977],{"text":477,"type":83},{"type":85,"content":1979},[1980],{"text":481,"type":83},{"_uid":483,"label":484,"quote":485,"component":98},{"_uid":487,"text":1983,"component":93},{"type":74,"content":1984},[1985],{"type":85,"content":1986},[1987],{"text":493,"type":83},{"_uid":495,"items":496,"heading":497,"component":498},{"_uid":500,"kind":501,"nodes":1990,"heading":523,"component":144},[1991,1992,1993,1994,1995],{"_uid":504,"note":505,"label":506,"component":120},{"_uid":508,"note":509,"label":510,"component":120},{"_uid":512,"note":513,"label":514,"component":120},{"_uid":516,"note":517,"label":518,"component":120},{"_uid":520,"note":521,"label":522,"emphasis":125,"component":120},{"_uid":525,"text":1997,"component":93},{"type":74,"content":1998},[1999,2003,2006],{"type":77,"attrs":2000,"content":2001},{"level":79},[2002],{"text":532,"type":83},{"type":85,"content":2004},[2005],{"text":536,"type":83},{"type":85,"content":2007},[2008],{"text":540,"type":83},{"_uid":542,"text":2010,"heading":549,"component":191},{"type":74,"content":2011},[2012],{"type":85,"content":2013},[2014],{"text":548,"type":83},[429,202,312,203],[],[],{"name":1424,"created_at":1425,"published_at":1426,"updated_at":1427,"id":1428,"uuid":1429,"content":2019,"slug":1436,"full_slug":1437,"sort_by_date":208,"position":677,"tag_list":2020,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1439,"first_published_at":1426,"release_id":208,"lang":214,"path":208,"alternates":2021,"default_full_slug":208,"translated_slugs":208},{"end":1386,"org":1424,"_uid":1431,"kind":1216,"start":1432,"title":1433,"tools":1434,"essence":1435,"component":1068},[],[],{"name":1525,"created_at":1526,"published_at":1527,"updated_at":1528,"id":1529,"uuid":1530,"content":2023,"slug":1537,"full_slug":1538,"sort_by_date":208,"position":1539,"tag_list":2024,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1541,"first_published_at":1542,"release_id":208,"lang":214,"path":208,"alternates":2025,"default_full_slug":208,"translated_slugs":208},{"end":1492,"org":1525,"_uid":1532,"kind":1216,"start":1533,"title":1534,"tools":1535,"essence":1536,"component":1068},[],[],{"name":567,"created_at":568,"published_at":569,"updated_at":570,"id":571,"uuid":572,"content":2027,"slug":675,"full_slug":676,"sort_by_date":208,"position":677,"tag_list":2083,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":679,"first_published_at":680,"release_id":208,"lang":214,"path":208,"alternates":2084,"default_full_slug":208,"translated_slugs":208},{"_uid":574,"body":2028,"role":665,"asked":666,"title":567,"accent":194,"client":567,"period":667,"sector":668,"summary":669,"actually":670,"component":199,"disciplines":2082,"outcome_label":308,"outcome_figure":308,"seo_description":674},[2029,2035,2048,2053,2073],{"_uid":577,"items":2030,"component":70},[2031,2032,2033,2034],{"_uid":580,"label":581,"value":582,"component":57},{"_uid":584,"label":341,"value":585,"component":57},{"_uid":587,"label":588,"value":589,"component":57},{"_uid":591,"label":463,"value":592,"component":57},{"_uid":594,"text":2036,"component":93},{"type":74,"content":2037},[2038,2042,2045],{"type":77,"attrs":2039,"content":2040},{"level":79},[2041],{"text":601,"type":83},{"type":85,"content":2043},[2044],{"text":605,"type":83},{"type":85,"content":2046},[2047],{"text":609,"type":83},{"_uid":611,"heading":612,"options":2049,"component":162},[2050,2051,2052],{"_uid":615,"text":616,"title":617,"component":153},{"_uid":619,"text":620,"title":621,"component":153},{"_uid":623,"text":624,"title":625,"chosen":125,"component":153},{"_uid":627,"text":2054,"component":93},{"type":74,"content":2055},[2056,2060,2063,2067,2070],{"type":77,"attrs":2057,"content":2058},{"level":79},[2059],{"text":634,"type":83},{"type":85,"content":2061},[2062],{"text":638,"type":83},{"type":77,"attrs":2064,"content":2065},{"level":79},[2066],{"text":643,"type":83},{"type":85,"content":2068},[2069],{"text":647,"type":83},{"type":85,"content":2071},[2072],{"text":651,"type":83},{"_uid":653,"text":2074,"heading":664,"component":191},{"type":74,"content":2075},[2076,2079],{"type":85,"content":2077},[2078],{"text":659,"type":83},{"type":85,"content":2080},[2081],{"text":663,"type":83},[312,672,673,430],[],[],{"name":217,"created_at":218,"published_at":219,"updated_at":220,"id":221,"uuid":222,"content":2086,"slug":315,"full_slug":316,"sort_by_date":208,"position":317,"tag_list":2131,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":319,"first_published_at":320,"release_id":208,"lang":214,"path":208,"alternates":2132,"default_full_slug":208,"translated_slugs":208},{"_uid":224,"body":2087,"role":305,"asked":306,"title":217,"accent":307,"client":217,"period":195,"sector":308,"summary":309,"actually":310,"component":199,"disciplines":2130,"outcome_label":313,"outcome_figure":295,"seo_description":314},[2088,2094,2107,2113,2123,2124],{"_uid":227,"items":2089,"component":70},[2090,2091,2092,2093],{"_uid":230,"label":56,"value":217,"component":57},{"_uid":232,"label":60,"value":61,"component":57},{"_uid":234,"label":64,"value":235,"component":57},{"_uid":237,"label":238,"value":239,"component":57},{"_uid":241,"text":2095,"component":93},{"type":74,"content":2096},[2097,2101,2104],{"type":77,"attrs":2098,"content":2099},{"level":79},[2100],{"text":248,"type":83},{"type":85,"content":2102},[2103],{"text":252,"type":83},{"type":85,"content":2105},[2106],{"text":256,"type":83},{"_uid":258,"kind":259,"nodes":2108,"heading":277,"component":144},[2109,2110,2111,2112],{"_uid":262,"note":263,"label":264,"component":120},{"_uid":266,"note":267,"label":268,"component":120},{"_uid":270,"note":271,"label":272,"component":120},{"_uid":274,"note":275,"label":276,"emphasis":125,"component":120},{"_uid":279,"text":2114,"component":93},{"type":74,"content":2115},[2116,2120],{"type":77,"attrs":2117,"content":2118},{"level":79},[2119],{"text":286,"type":83},{"type":85,"content":2121},[2122],{"text":290,"type":83},{"_uid":292,"label":293,"caveat":294,"figure":295,"component":181},{"_uid":297,"text":2125,"heading":304,"component":191},{"type":74,"content":2126},[2127],{"type":85,"content":2128},[2129],{"text":303,"type":83},[201,202,312],[],[],{"name":694,"created_at":1485,"published_at":1486,"updated_at":1487,"id":1488,"uuid":1489,"content":2134,"slug":1518,"full_slug":1519,"sort_by_date":208,"position":1520,"tag_list":2154,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1522,"first_published_at":1486,"release_id":208,"lang":214,"path":208,"alternates":2155,"default_full_slug":208,"translated_slugs":208},{"end":1432,"org":694,"_uid":1491,"kind":1216,"start":1492,"title":1493,"tools":1494,"essence":1495,"component":1068,"highlights":2135},{"type":74,"content":2136},[2137],{"type":1072,"content":2138},[2139,2144,2149],{"type":1075,"content":2140},[2141],{"type":85,"content":2142},[2143],{"text":1505,"type":83},{"type":1075,"content":2145},[2146],{"type":85,"content":2147},[2148],{"text":1511,"type":83},{"type":1075,"content":2150},[2151],{"type":85,"content":2152},[2153],{"text":1517,"type":83},[],[],{"name":440,"created_at":1099,"published_at":1100,"updated_at":1101,"id":1102,"uuid":1103,"content":2157,"slug":560,"full_slug":1171,"sort_by_date":208,"position":317,"tag_list":2218,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1173,"first_published_at":1100,"release_id":208,"lang":214,"path":208,"alternates":2219,"default_full_slug":208,"translated_slugs":208},{"end":308,"org":1105,"_uid":1106,"kind":1107,"cases":2158,"start":552,"title":1168,"tools":1169,"essence":1170,"component":1068},[2159],{"name":440,"created_at":441,"published_at":442,"updated_at":443,"id":444,"uuid":445,"content":2160,"slug":560,"full_slug":561,"sort_by_date":208,"position":562,"tag_list":2216,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":564,"first_published_at":442,"release_id":208,"lang":214,"path":208,"alternates":2217,"default_full_slug":208,"translated_slugs":208,"_stopResolving":125},{"_uid":447,"body":2161,"role":460,"asked":550,"title":440,"accent":551,"client":454,"period":552,"sector":553,"summary":554,"actually":555,"component":199,"disciplines":2215,"outcome_label":557,"outcome_figure":558,"seo_description":559},[2162,2168,2181,2182,2188,2189,2196,2209],{"_uid":450,"items":2163,"component":70},[2164,2165,2166,2167],{"_uid":453,"label":56,"value":454,"component":57},{"_uid":456,"label":457,"value":440,"component":57},{"_uid":459,"label":64,"value":460,"component":57},{"_uid":462,"label":463,"value":464,"component":57},{"_uid":466,"text":2169,"component":93},{"type":74,"content":2170},[2171,2175,2178],{"type":77,"attrs":2172,"content":2173},{"level":79},[2174],{"text":473,"type":83},{"type":85,"content":2176},[2177],{"text":477,"type":83},{"type":85,"content":2179},[2180],{"text":481,"type":83},{"_uid":483,"label":484,"quote":485,"component":98},{"_uid":487,"text":2183,"component":93},{"type":74,"content":2184},[2185],{"type":85,"content":2186},[2187],{"text":493,"type":83},{"_uid":495,"items":496,"heading":497,"component":498},{"_uid":500,"kind":501,"nodes":2190,"heading":523,"component":144},[2191,2192,2193,2194,2195],{"_uid":504,"note":505,"label":506,"component":120},{"_uid":508,"note":509,"label":510,"component":120},{"_uid":512,"note":513,"label":514,"component":120},{"_uid":516,"note":517,"label":518,"component":120},{"_uid":520,"note":521,"label":522,"emphasis":125,"component":120},{"_uid":525,"text":2197,"component":93},{"type":74,"content":2198},[2199,2203,2206],{"type":77,"attrs":2200,"content":2201},{"level":79},[2202],{"text":532,"type":83},{"type":85,"content":2204},[2205],{"text":536,"type":83},{"type":85,"content":2207},[2208],{"text":540,"type":83},{"_uid":542,"text":2210,"heading":549,"component":191},{"type":74,"content":2211},[2212],{"type":85,"content":2213},[2214],{"text":548,"type":83},[429,202,312,203],[],[],[],[],{"name":42,"created_at":43,"published_at":44,"updated_at":45,"id":46,"uuid":47,"content":2221,"slug":206,"full_slug":207,"sort_by_date":208,"position":209,"tag_list":2283,"is_startpage":211,"parent_id":212,"meta_data":208,"group_id":213,"first_published_at":44,"release_id":208,"lang":214,"path":208,"alternates":2284,"default_full_slug":208,"translated_slugs":208},{"_uid":49,"body":2222,"role":192,"asked":193,"title":42,"accent":194,"client":42,"period":195,"sector":196,"summary":197,"actually":198,"component":199,"disciplines":2282,"outcome_label":204,"outcome_figure":180,"seo_description":205},[2223,2229,2242,2243,2252,2260,2265,2275,2276],{"_uid":52,"items":2224,"component":70},[2225,2226,2227,2228],{"_uid":55,"label":56,"value":42,"component":57},{"_uid":59,"label":60,"value":61,"component":57},{"_uid":63,"label":64,"value":65,"component":57},{"_uid":67,"label":68,"value":69,"component":57},{"_uid":72,"text":2230,"component":93},{"type":74,"content":2231},[2232,2236,2239],{"type":77,"attrs":2233,"content":2234},{"level":79},[2235],{"text":82,"type":83},{"type":85,"content":2237},[2238],{"text":88,"type":83},{"type":85,"content":2240},[2241],{"text":92,"type":83},{"_uid":95,"label":96,"quote":97,"component":98},{"_uid":100,"text":2244,"component":93},{"type":74,"content":2245},[2246,2249],{"type":85,"content":2247},[2248],{"text":106,"type":83},{"type":85,"content":2250},[2251],{"text":110,"type":83},{"_uid":112,"kind":113,"nodes":2253,"heading":143,"component":144},[2254,2255,2256,2257,2258,2259],{"_uid":116,"note":117,"side":118,"label":119,"component":120},{"_uid":122,"note":123,"side":118,"label":124,"emphasis":125,"component":120},{"_uid":127,"note":128,"side":118,"label":129,"component":120},{"_uid":131,"note":132,"side":133,"label":134,"component":120},{"_uid":136,"note":137,"side":133,"label":138,"component":120},{"_uid":140,"note":141,"side":133,"label":142,"emphasis":125,"component":120},{"_uid":146,"heading":147,"options":2261,"component":162},[2262,2263,2264],{"_uid":150,"text":151,"title":152,"component":153},{"_uid":155,"text":156,"title":157,"component":153},{"_uid":159,"text":160,"title":161,"chosen":125,"component":153},{"_uid":164,"text":2266,"component":93},{"type":74,"content":2267},[2268,2272],{"type":77,"attrs":2269,"content":2270},{"level":79},[2271],{"text":171,"type":83},{"type":85,"content":2273},[2274],{"text":175,"type":83},{"_uid":177,"label":178,"caveat":179,"figure":180,"component":181},{"_uid":183,"text":2277,"heading":190,"component":191},{"type":74,"content":2278},[2279],{"type":85,"content":2280},[2281],{"text":189,"type":83},[201,202,203],[],[],{"name":718,"created_at":1176,"published_at":1177,"updated_at":1178,"id":1179,"uuid":1180,"content":2286,"slug":1203,"full_slug":1204,"sort_by_date":208,"position":435,"tag_list":2301,"is_startpage":211,"parent_id":1095,"meta_data":208,"group_id":1206,"first_published_at":1177,"release_id":208,"lang":214,"path":208,"alternates":2302,"default_full_slug":208,"translated_slugs":208},{"end":552,"org":718,"_uid":1182,"kind":1107,"start":1183,"title":1184,"tools":1185,"essence":1186,"component":1068,"highlights":2287},{"type":74,"content":2288},[2289],{"type":1072,"content":2290},[2291,2296],{"type":1075,"content":2292},[2293],{"type":85,"content":2294},[2295],{"text":1196,"type":83},{"type":1075,"content":2297},[2298],{"type":85,"content":2299},[2300],{"text":1202,"type":83},[],[],[],{"cache-control":2305,"connection":2306,"content-encoding":2307,"content-type":2308,"date":2309,"etag":2310,"referrer-policy":2311,"sb-be-version":2312,"server":2313,"transfer-encoding":2314,"vary":2315,"via":2316,"x-amz-cf-id":2317,"x-amz-cf-pop":2318,"x-cache":2319,"x-content-type-options":2320,"x-frame-options":2321,"x-permitted-cross-domain-policies":2322,"x-request-id":2323,"x-runtime":2324,"x-xss-protection":2325},"max-age=0, public, s-maxage=604800, stale-if-error=3600","keep-alive","gzip","application\u002Fjson; charset=utf-8","Thu, 15 Oct 2026 13:59:06 GMT","W\u002F\"455409e7179d8cce9def96b8096d2867\"","strict-origin-when-cross-origin","5.980.1","nginx\u002F1.29.1","chunked","Origin,Accept-Encoding","1.1 52ae716a40a076f1b26575b846ef3f98.cloudfront.net (CloudFront)","475OmSzYfPzipEOTrs-AyBycq5Rtsu0AquGhqcpj6IUKdC1ceiJ4Fg==","MIA50-P7","Miss from cloudfront","nosniff","SAMEORIGIN","none","fb28b6e9-b8bf-428f-bbe2-d95fe7279f5a","0.064827","0",{"discovery":345,"service-design":2327,"product-direction":2328,"facilitation":2329,"front-end":2330,"engineering":2331,"leadership":2332,"data-ux":2333},"Service design","Product direction","Facilitation","Front end","Engineering","Leadership","Data UX",[],[2336],{"uuid":2337,"path":2338,"title":2339,"date":2340,"intro":2341,"status":2342},"1b8efeff-f674-4882-a91c-e16c0226397b","\u002Flab\u002Foklch-colour-ramps","OKLCH colour ramps","2026-01-11 00:00","A palette generator that builds the full 50 to 950 ramp from a single colour. It works in OKLCH, so lightness steps look even whatever the hue.","live",1792072745631]