[{"data":1,"prerenderedAt":70},["ShallowReactive",2],{"site":3},{"hero":4,"about":14,"syncedMinutesAgo":69},{"eyebrow":5,"headline":6,"sub":7,"ctaPrimary":8,"ctaSecondary":11},"— a public notebook","Hi, I'm Edmund Hee.","CTO at LEAD, founder of GRUDA Technologies, and an AI trainer on the side. This site is where I think out loud — notes on what I'm building, what I'm teaching, and the half-formed ideas in between.",{"label":9,"href":10},"Read the blog","\u002Fblog",{"label":12,"href":13},"About me","\u002Fabout",{"metaEdited":15,"portraitCaption":16,"currently":17,"bio":22,"stackGroups":26,"timeline":55,"contactBlurb":68},"Edmund Hee · last edited May 14, 2026","Kuala Lumpur, 2025",{"role":18,"focus":19,"reading":20,"city":21},"CTO & Senior Trainer @ LEAD · Founder @ GRUDA Technologies","Data platforms, recommendation systems, and corporate AI training","Designing Data-Intensive Applications, Kleppmann","Kuala Lumpur, Malaysia",[23,24,25],"I'm a CTO and founder who still spends most of his time close to the data. At LEAD I lead the engineering and analytics teams behind data platforms for e-commerce, F&B, and construction clients — pipelines, dashboards, and the unglamorous plumbing that makes the dashboards trustworthy. At GRUDA Technologies, my consultancy, I take on the harder ML problems: recommendation engines, behavior modeling, sustainability analytics.","The other half of my week is training. I run AI workshops for engineering teams and business operators — translating the parts of the stack I actually use into something people can carry back into their own work.","This site is where I think out loud. Two long-running threads: a game recommendation journey where I try every approach I can fit on a single GPU, and a \"big data foundation\" notebook I treat like a textbook I'm writing for my future self. I started writing because I kept forgetting things, and the act of writing forced me to understand them properly.",[27,38,47],{"label":28,"items":29},"Data",[30,31,32,33,34,35,36,37],"python","airflow","airbyte","dbt","bigquery","mongodb","mysql","ga4",{"label":39,"items":40},"ML & AI",[41,42,43,44,45,46],"scikit-learn","pytorch","hugging face","faiss","openai","langchain",{"label":48,"items":49},"Site & infra",[50,51,52,53,54],"next.js","streamlit","vercel","cloudflare","notion api",[56,60,64],{"when":57,"title":58,"summary":59},"2022 — present","CTO & Senior Trainer · LEAD","Leading the data org behind platforms for e-commerce, F&B, and construction clients. 15+ self-service dashboards, GA4 rebuilds, customer personas, and the pipelines underneath. I also run the team's AI training program.",{"when":61,"title":62,"summary":63},"2019 — present","Founder & Director · GRUDA Technologies","My consultancy. Built a news content recommendation engine that boosted retention on a mobile reader; a carbon-footprint analytics platform for a green-tech company on top of Airflow + Airbyte; a game recommender; and a handful of bespoke data tools.",{"when":65,"title":66,"summary":67},"ongoing","AI Trainer · independent","Workshops and corporate training on applied AI — practical ML, modern data stacks, and the parts of the LLM ecosystem that actually ship.","The fastest way to reach me is email. I read every message — but reply quality varies with bandwidth.",4,1780589404138]