// Adds dimensions UUID, Author and Topic into GA4
Sunday, September 13, 2026
28.8 C
Singapore

8M Real Estate appoints Jocelyn Hao as new CEO

SINGAPORE: 8M Real Estate has appointed Jocelyn Hao as its new Chief Executive Officer, effective Oct 15.

Ms Hao has been in regional leadership roles across retail and real estate for more than two decades. Most recently, she was the General Manager for licensing in Asia Pacific at Starbucks Coffee Company, where she oversaw operations in Taiwan, the Philippines, Thailand, India, New Zealand, and Australia.

She also led large-scale market expansion strategies, rolled out new store formats, and pushed digital transformation at Starbucks and across other brands, including Crocs, Uniqlo, Cushman & Wakefield, CB Richard Ellis, and Robinsons Group.

8M Real Estate has been known for buying and restoring heritage shophouses in Singapore, as well as transforming mixed-use assets into creative hubs.

According to the company, Ms Hao’s experience across different markets, along with her expertise in building networks, creating value through partnerships, and customer-focused strategies, will be instrumental to its portfolio expansion. /TISG

Read also: Former DBS CEO Piyush Gupta appointed as 17th S R Nathan Fellow for the Study of Singapore by IPS

Hot this week

‘Life is but a bunch of unwanted surprises’: Singaporean says having an emergency fund helps him stay calm

After going through consumer debt, he said rebuilding his finances taught him the value of having money set aside for emergencies.

171 Sungai Kim Kim victims win civil suit against factory and two Singaporean directors seven years after toxic waste disaster

Seven years after the Sungai Kim Kim disaster, 171 victims have secured a civil court victory against four defendants, including two Singaporean nationals. The amount of damages will be decided later.

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks