. * * window.aa needs to exist and be usable by ANY module's script, * however early it runs - main-nav's script, for one, runs near * the top of

91̽»¨

, well before the real search-insights.js * so the download * begins as early as before. Repeat calls share the same downloads, a * failed load is retried on the next call, and the versions / SRI * hashes live only here. * * Algolia Insights is unaffected: window.aa above is still created in * on every page and queues events until search-insights loads. * * window.loadAlgoliaLibs({ priority: 'high' }) (Oct 2026): used by the * /search page, where the first results wait on these libraries. Chrome * gives async scripts low priority, behind images and fonts; this asks * for high instead (fetchpriority). Only the first call for a library * sets its priority - later calls share that download. */ (function (win, doc) { var LIBS = [ { ready: function () { return !!win['algoliasearch/lite']; }, src: 'https://cdn.jsdelivr.net/npm/algoliasearch@5.52.1/dist/lite/builds/browser.umd.js', integrity: 'sha256-I2oYUIvhx1g6l4lTP+yoERbzLIHKzw4AKaBRQPwIeDY=' }, { ready: function () { return !!win.instantsearch; }, src: 'https://cdn.jsdelivr.net/npm/instantsearch.js@4.98.0/dist/instantsearch.production.min.js', integrity: 'sha256-ngmqZk4WBxUw257aMYZayyNBd983INngagv0jI6Ecfs=' } ]; function loadOne(lib, options) { if (lib.ready()) return Promise.resolve(); // One download per library, shared by every caller; reset on // failure so the next call retries just the library that failed. if (lib.pending) return lib.pending; lib.pending = new Promise(function (resolve, reject) { var script = doc.createElement('script'); script.src = lib.src; script.integrity = lib.integrity; script.crossOrigin = 'anonymous'; script.async = true; if (options && options.priority === 'high') script.setAttribute('fetchpriority', 'high'); script.onload = function () { lib.ready() ? resolve() : reject(new Error('Loaded but not available: ' + lib.src)); }; script.onerror = function () { script.remove(); reject(new Error('Could not load ' + lib.src)); }; doc.head.appendChild(script); }); lib.pending.catch(function () { lib.pending = null; }); return lib.pending; } win.loadAlgoliaLibs = function (options) { return Promise.all(LIBS.map(function (lib) { return loadOne(lib, options); })); }; })(window, document); . */ window.hsConversationsSettings = window.hsConversationsSettings || {}; window.hsConversationsSettings.loadImmediately = false; (function (win) { var EVENTS = ['pointerdown', 'keydown', 'touchstart', 'scroll', 'mousemove', 'wheel']; var done = false; /* 19 Oct 2026 - chat widget layout shift (field CLS). Phones fail Core Web Vitals on CLS (p75 ~0.2 site-wide in CrUX for months). Biggest cause found: HubSpot's chat container is fixed to the bottom-right corner and changes size - 100x96 launcher to 282x253 when the welcome message pops up (~5 s after load), and to full screen when a visitor opens the chat. Its top-left corner moves, so Chrome scores it as a layout shift: 0.088 per page view at 360x640 (0.044 at 412x850), on every page. Taps happen inside the chat iframe, so the parent page never sees the input and the open/close shifts count too. Fix: whenever the container's size changes it is made transparent for 400 ms (Chrome doesn't score shifts of invisible elements), then shown again at its new size. Tested on live io1001 at 360x640 in a cookie-less frame: the 0.088 shift no longer appears. The chat itself is unchanged - it just appears 0.4 s later at each resize. Relies on HubSpot's container id; if that changes this does nothing (no error). */ function cloakChatResizes() { var ID = 'hubspot-messages-iframe-container'; function watch(c) { if (c.getAttribute('data-bb-cloak')) return; c.setAttribute('data-bb-cloak', '1'); var last = c.offsetWidth + 'x' + c.offsetHeight, timer = null; new MutationObserver(function () { var size = c.offsetWidth + 'x' + c.offsetHeight; if (size === last) return; last = size; c.style.setProperty('opacity', '0', 'important'); clearTimeout(timer); timer = setTimeout(function () { c.style.removeProperty('opacity'); }, 400); }).observe(c, { attributes: true, attributeFilter: ['style', 'class'], subtree: true, childList: true }); } var found = document.getElementById(ID); if (found) { watch(found); return; } if (!document.body || !('MutationObserver' in win)) return; var mo = new MutationObserver(function () { var c = document.getElementById(ID); if (c) { mo.disconnect(); watch(c); } }); mo.observe(document.body, { childList: true }); setTimeout(function () { mo.disconnect(); }, 30000); } function loadWidget() { var api = win.HubSpotConversations; if (api && api.widget && api.widget.status && api.widget.status().loaded) return; try { cloakChatResizes(); } catch (e) {} if (api && api.widget) api.widget.load(); } function onFirstInteraction() { if (done) return; done = true; EVENTS.forEach(function (type) { win.removeEventListener(type, onFirstInteraction, { passive: true }); }); var start = function () { if (win.HubSpotConversations) loadWidget(); else (win.hsConversationsOnReady = win.hsConversationsOnReady || []).push(loadWidget); }; if ('requestIdleCallback' in win) win.requestIdleCallback(start, { timeout: 1500 }); else setTimeout(start, 200); } EVENTS.forEach(function (type) { win.addEventListener(type, onFirstInteraction, { passive: true }); }); })(window);

91̽»¨

Skip to main content
Former CEO Mark Kotter speaks at TEDxCambridgeUniversity

26.03.2021 | Published by 91̽»¨

Former CEO Mark Kotter speaks at TEDxCambridgeUniversity

Featured Image

On Saturday 20 March 2021, 91̽»¨'s former CEO and founder Mark Kotter was a speaker at the ‘Untangling networks’ event.


Dr Kotter was speaking about his work as a neurosurgeon, stem cell biologist and an entrepreneur. Many of the conditions he faces as a doctor, whether they are cancers, genetic or degenerative conditions, need more than a scalpel and screws or cannot be treated successfully with conventional drugs either because they require the regeneration of lost cells. It was this realisation that led him to tell the story about how he’s coding cells for health. , or below to find out more.

 

“What we need is a revolution in medicine, a new set of sophisticated interventions that can help these most difficult medical problems. We need to move from small molecules and biologics, highly targeted drugs, to a new generation of intelligent therapies. Drugs that can interact with their environment: cell therapies.�

91̽»¨_CIRCLEheadshot_July24-Przemek-Obloj-3
Mark KotterCo-founder and former CEO, 91̽»¨

One of the biggest hurdles in human cell research is a supply of human cells. It’s the same problem that the mass manufacture of cell therapies faces. Current methods are not sufficient to produce a reliable, scalable and consistent supply of cells without the need to rely on a patient. The lack of a reliable source of human cells also holds back scientific discovery and the development of more traditional drugs. To make cells available for everyone and to be able to treat other conditions, Mark’s team developed ´Ç±è³Ù¾±-´Ç³æâ„¢ to manufacture cells at industrial scale. opti-ox is a synthetic biology approach that empowers control of biology. Applied to stem cells, it enables the rapid and precise production of any human cell through the reprogramming of the cell’s DNA. This approach unlocks the potential of human cells for research, drug discovery and cell therapy.

“We designed a system that relies on a direct intervention at the DNA level – engineering a program into what are called safe harbor sites of the cell. These are special areas in the DNA that are somehow protected. These sites allow safe activation of genes and that do not interfere with the rest of the cell functions.�

91̽»¨_CIRCLEheadshot_July24-Przemek-Obloj-3
Mark KotterCo-founder and former CEO, 91̽»¨

Dr Kotter concludes the speech with bringing hope to patients that one day, he will be able to inject some cells into their spinal cords, and perhaps connect them to an electronic device in order to make them walk again and give them back the use of their hands.

Related pages

About us Coding cells to advance the wellbeing of humanity
Careers See the latest openings
Blog See the latest blogs