FOSSASIA Summit 2026, March 2026
This talk explores how knowledge graphs can help historians structure fragmented data and uncover relationships across time, geography, people, and artefacts. It also demonstrates how generative AI and Model Context Protocol can make complex historical datasets easier to query and investigate.
NODES 2025, November 2025
This talk explores how knowledge graphs can help historians structure fragmented data and uncover relationships across time, geography, people, and artefacts. It also demonstrates how generative AI and Model Context Protocol can make complex historical datasets easier to query and investigate.
Unlocking the Power of Graph Databases with Neo4j
Graph Database Singapore, May 2025
A hands-on introduction to graph databases, Neo4j, and the Cypher query language. The workshop covers connected-data modelling, querying, data import, and practical use cases such as recommendations and fraud detection.
FOSSASIA Summit 2025, April 2025
A hands-on introduction to graph databases, Neo4j, and the Cypher query language. The workshop covers connected-data modelling, querying, data import, and practical use cases such as recommendations and fraud detection.
Connected: Solving Real-Life Problems Using Python and Graph Databases
Open Tech Summit Indonesia 2024, November 2024
This session shows how graph databases model highly connected systems that are difficult to represent with traditional relational structures. It combines Neo4j with Python, NetworkX, and PyVis for graph analysis and visualisation.
Connected: Solving Real-Life Problems Using Python and Graph Databases
Singapore AWS Meetup, January 2024
This session shows how graph databases model highly connected systems that are difficult to represent with traditional relational structures. It combines Neo4j with Python, NetworkX, and PyVis for graph analysis and visualisation.
Connected: Solving Real-Life Problems Using Python and Graph Databases
PyCon ID 2023, November 2023
This session shows how graph databases model highly connected systems that are difficult to represent with traditional relational structures. It combines Neo4j with Python, NetworkX, and PyVis for graph analysis and visualisation.
FOSSASIA Summit 2022, April 2022
A practical walkthrough of evolving a WordPress deployment from a basic server into a resilient AWS architecture. The session covers Amazon CloudFront, Application Load Balancer, Amazon S3, web-server choices, scaling, and cost considerations.
Building a Scalable WordPress Site on AWS
Singapore AWS Meetup, October 2021
A practical walkthrough of evolving a WordPress deployment from a basic server into a resilient AWS architecture. The session covers Amazon CloudFront, Application Load Balancer, Amazon S3, web-server choices, scaling, and cost considerations.
NDC Sydney 2020, October 2020
This session examines browser-based threats, cross-site scripting, third-party dependencies, and the limits of framework-level protection. It introduces practical defences, including Content Security Policy and layered application-security controls.
Demystifying Front-End Security
JavaScript Remote Conference 2020, May 2020
This session examines browser-based threats, cross-site scripting, third-party dependencies, and the limits of framework-level protection. It introduces practical defences, including Content Security Policy and layered application-security controls.
Demystifying Front-End Security
That Conference 2019, August 2019
This session examines browser-based threats, cross-site scripting, third-party dependencies, and the limits of framework-level protection. It introduces practical defences, including Content Security Policy and layered application-security controls.
FOSSASIA Summit 2019, March 2019
This session demonstrates how to secure React applications using reusable authentication components and preconfigured single sign-on. It covers IdentityServer4, secure routing, token handling, and claims-based authorization.
SingaporeJS, July 2018
An introduction to building voice-enabled browser applications with the Web Speech API. The session demonstrates speech recognition and text-to-speech without requiring specialist machine-learning infrastructure.
FOSSASIA Summit 2018, March 2018
This session covers performance engineering for ASP.NET Core applications, including caching, I/O, messaging, Linux deployment, containers, and practical methods for identifying bottlenecks.
FOSSASIA Summit 2018, March 2018
This session presents the database as a critical security boundary. Using PostgreSQL examples, it covers authentication, authorization, roles, encryption, and ways to protect sensitive data even when the application layer is compromised.
Database Security for Developers
CFCamp 2017, October 2017
This session presents the database as a critical security boundary. Using PostgreSQL examples, it covers authentication, authorization, roles, encryption, and ways to protect sensitive data even when the application layer is compromised.
5th Scandinavian Conference on System and Software Safety, May 2016
This session examines security flaws that originate in system design rather than individual lines of code. It introduces architectural risk analysis through asset identification, threat modelling, and early assessment of security risks.
Web Apps That Talk
JS Remote Conf, March 2017
An introduction to building voice-enabled browser applications with the Web Speech API. The session demonstrates speech recognition and text-to-speech without requiring specialist machine-learning infrastructure.
NDC London 2017, January 2017
Practical guidance for securing Node.js and Express applications against common vulnerabilities. Topics include authentication, cryptography, security middleware, the OWASP Top 10, and supporting analysis tools.
NDC London 2017, January 2017
An introduction to building voice-enabled browser applications with the Web Speech API. The session demonstrates speech recognition and text-to-speech without requiring specialist machine-learning infrastructure.
Agile Web Development with RethinkDB
Percona Live Europe, Amsterdam, October 2016
This session demonstrates how to build real-time applications with Node.js, ZeroMQ, and RethinkDB. It covers messaging patterns, cross-platform integration, and responsive data flows across web and desktop clients.
Scaling Up JavaScript with TypeScript
Angular Remote Conf, September 2016
An introduction to TypeScript for larger JavaScript applications, covering static typing, classes, interfaces, generics, decorators, and practical adoption strategies.
Two-Factor Authentication with Node.js
JavaScript Summit 2016, February 2016
This session explains the limitations of password-only authentication and demonstrates how to add two-factor authentication to Node.js applications using standards-based approaches and Google Authenticator.
DevFestMN 2016, February 2016
An introduction to TypeScript for larger JavaScript applications, covering static typing, classes, interfaces, generics, decorators, and practical adoption strategies.
Managing User Authentication Using Passport
NodeMN User Group, December 2015
This session demonstrates authentication in Node.js and Express applications with Passport.js, including form-based login, social authentication, and two-factor authentication.
What’s New in C# 6
Twin Cities .NET User Group, December 2015
A practical overview of C# 6 features including null-conditional operators, string interpolation, expression-bodied members, and nameof.
Node.js Security
Open Source North 2015, October 2015
Practical guidance for securing Node.js and Express applications against common vulnerabilities. Topics include authentication, cryptography, security middleware, the OWASP Top 10, and supporting analysis tools.
Node.js Security
That Conference 2015, August 2015
Practical guidance for securing Node.js and Express applications against common vulnerabilities. Topics include authentication, cryptography, security middleware, the OWASP Top 10, and supporting analysis tools.
WebRTC Workshop
dev.Objective() 2015, May 2015
A practical introduction to browser-to-browser voice, video, and peer-to-peer data exchange with WebRTC. The workshop covers browser support, security considerations, and the foundations of real-time web applications.
Introduction to TypeScript
Twin Cities .NET User Group, May 2015
An introduction to TypeScript for larger JavaScript applications, covering static typing, classes, interfaces, generics, decorators, and practical adoption strategies.
Introduction to TypeScript
JavaScriptMN User Group, April 2015
An introduction to TypeScript for larger JavaScript applications, covering static typing, classes, interfaces, generics, decorators, and practical adoption strategies.
WebRTC Workshop
DevFestMN 2015, March 2015
A practical introduction to browser-to-browser voice, video, and peer-to-peer data exchange with WebRTC. The workshop covers browser support, security considerations, and the foundations of real-time web applications.