// Adds dimensions UUID, Author and Topic into GA4
Thursday, September 24, 2026
27.4 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

‘Now that’s a real Mayor,’ Singapore Democratic Party chief Chee Soon Juan says of Zohran Mamdani while in New York

During his visit to New York, SDP chief Chee Soon Juan praised the city’s “human spirit and resilience” while also reflecting on conversations with Singaporeans living there.

MSF: Singapore launches new child protection unit to flag abuse concerns on children earlier after Megan Khung’s death

Megan Khung’s case could have been identified for review about five months before her death if this new social services unit had been in place, MSF said

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