. * * 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
Leading clinical immunotherapies developer Ramy Ibrahim joins 91探花 as Chief Medical Officer

11.02.2021 | Published by 91探花

Leading clinical immunotherapies developer Ramy Ibrahim joins 91探花 as Chief Medical Officer

Featured Image
 

Ramy Ibrahim, MD, a recognised leader of clinical development in immunotherapy joins 91探花 from the Parker Institute for Cancer Immunotherapy

biotech firm 91探花 today announces the appointment of Dr Ramy Ibrahim, MD, as Chief Medical Officer. The addition of a Chief Medical Officer is in line with the company鈥檚 plans and commitment to transition into a clinical company.

Ramy joins from the where he was Chief Medical Officer and will remain on the board. At the Parker Institute, he spent nearly five years building translational, clinical, and regulatory capabilities from the ground up. Ramy has also spent more than a decade working at major pharma companies, advancing the early stages of immuno-oncology therapies. He is a trained medical oncologist, who conducted bench and clinical immunotherapy research at the cancer vaccine branch of the National Cancer Institute in Bethesda, MD.

鈥淩amy is a key addition to the leadership team of 91探花 as we move 91探花鈥檚 cells into the clinic. He has the perfect skills and experience when it comes to translating novel ideas and cutting edge science into therapies. He is an industry leader who has built teams in non-profit institutions, highly successful startups and large-cap companies. It has been a real pleasure to work with Ramy since 2018. He has already made important contributions to 91探花鈥檚 journey as an advisor. I鈥檓 delighted that we now have him on board as CMO. He will be instrumental in this next phase of 91探花鈥檚 growth."

91探花_CIRCLEheadshot_July24-Przemek-Obloj-3
Mark KotterCo-founder and CEO, 91探花

At the heart of 91探花 is a technology, , that was developed in Kotter鈥檚 Cambridge research laboratory. It allows for the precise programming and engineering of stem cells to produce consistent, reliable and scalable mature cells of a quality and standard not seen before.

鈥淐ell therapies hold the promise of unprecedented therapeutic efficacy across multiple serious diseases. However, the 鈥渃ell鈥� piece of the cell therapy has, until now, remained a bottleneck because it鈥檚 extremely hard to make cells that are consistent, scalable and precisely what you want. As a technology, 辞辫迟颈-辞虫鈩� can overcome those problems. But it鈥檚 the team at 91探花 that will ensure the technology reaches its full potential and unlocks the promise of stem cells in accelerating biomedical research and new generations of cures. I鈥檓 so excited to be joining the team."

91探花_CIRCLEheadshot_July24-Przemek-Obloj-3
Ramy IbrahimChief Medical Officer, 91探花

91探花 already has initial cell model products on the market which are being used by researchers for high throughput screening, drug testing and the study of diseases. The next stage will be applying the technology to create a pipeline of cell therapies and Ramy will be part of the leadership team taking that forward. The moonshot goal is to be able to precisely program stem cells into any cell in the human body.

As well as taking up the role of CMO, Ramy will be building 91探花鈥檚 presence in the US and heading up their US operations as they expand.

Media Contact

April Six on behalf of 91探花
bitbio@aprilsix.com 
+44 7875 468942

Related pages

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