// 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

Two weeks after allegedly finding cockroach in meal, customer demands S$5,000 from restaurant

A customer allegedly found a whole dead cockroach in his restaurant meal — but instead of reporting it immediately, he approached the restaurant two weeks later and demanded S$5,000 in compensation.

‘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.

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