pamela fox's talks
Here are all the talks I've given over the years.
Please note that many talks are outdated now, since web tech moves fast.
-
Writing Python Web Apps with VS Code
A talk on customizing VS Code to work on Python web apps (Django specifically) - Dev Containers, Debugging, Testing, etc. -
Deploying PostgreSQL servers to Azure with Bicep
A talk on using Bicep (infrastructure-as-code) to deploy PostgreSQL servers. -
1-click deploys of Python web apps to Azure
A talk on using Bicep (infrastructure-as-code) and the Azure Developer CLI to deploy Python web apps. -
Containerizing Python Web Apps Workshop
A workshop about containerizing Python apps (using Flask as an example), running the Docker containers locally, and deploying them to Azure Container Apps. -
Python HTTP APIs Workshop
A workshop about making HTTP APIs in Python, with either Flask or FastAPI, running them locally, and then deploying them to Azure. -
Using PostgreSQL inside VS Code Dev Containers & GitHub Codespaces
A livestream about using Dev Containers inside VS Code and Github Codespaces to develop Python apps. -
Python Web Apps Workshop
A workshop about making web apps in Python (via http/Flask/Django) and hosting them on Azure -
Turning a Regression Model into an HTTP API
A talk about building a regression model from StackOverflow developer survey data using scikit-learn, and then turning that into a FastAPI HTTP API and deploying the API to Azure. -
Python Web Apps
A lecture about making web apps in Python (via http/Flask/Django) and hosting them on Azure -
The benefits of HTML slides for programming classes
A lightning talk about why I prefer using HTML-based slides (Reveal.JS) when teaching programming classes. -
Education for All
A talk for an education focused hackathon about how educational materials can be brought online in an accessible, scalable, and inclusive manner. -
CS+Social Good: Education
A talk for BayCSC about how computer science can be used in education. Includes discussion and projects. -
Khan Academy AP CSP
A short talk for AP CSP teachers and providers about updates to the Khan Academy AP CSP offering for 2020-2021. -
Coding Everywhere
A talk for Berkeley CTE about the many ways I've used coding, across school, college, career, and side projects. -
Cultivating Empathetic Joy
A workshop about Empathetic Joy and how to train it, based on the Buddhist Immeasurable. -
JS Freakin' Everywhere
A talk on how Woebot is built on a full JS stack - for the backend, "CMS", NLP, and more. -
Pamela Fox: Learner, Creator, Teacher
A talk presented to a room full of Melbourne middle school girls, about my life story and jobs in the tech industry. -
Massive Online Learning Challenges
A panel about putting on a "MOLC" (like Hour of Code), measuring its impact, and avoiding pitfalls. I talked about Summer of Scripting, a Khan Academy MOLC. -
Making Computing Fun Again
A panel talk about how Khan Academy shows students the passion, beauty, joy, and awe of computing. -
Pamela Fox: My Story
A talk presented to a room full of Melbourne high school girls who were visiting Silicon Valley and learning about STEM. -
Programming is awesome
A keynote to a bunch of high schoolers about why I think programming is awesome, and what they might get out of it. -
Why I love programming (and teaching it)
A talk about how I got into programming, what I discovered I love about it, and what I love about teaching it at Khan Academy. -
Innovación en Educación Secundaria
A spanish-language talk about Khan Academy and how online education can change the classroom. -
Teaching Programming Online
A tech talk about how we teach programming on KA, going into the HTML5/JS that powers the frontend and Python that powers the backend. -
Hack On!
Tips for students about to embark on a hackathon, from prototyping to committing to pitching. -
Creating Interactive Learning Experiences at Khan Academy
A talk and live demo of the real-time editing environment we created for Khan Academy, including examples of the crazy stuff we have to do to make it work. -
Look Ma, No Image Requests
A discussion of 5 ways that we reduced image requests on our landing page, and the aftermath 4 months later. -
Lowering the Barrier to Learning Programming
A talk about why we need more K-12ers learning CS/programming, and the ways which we can all lower their barriers. -
Technical Interviews Make Me Cry
An Ignite talk about how I broke down during a technical interview, and what I think we should change. -
Khan Academy Programming
An overview for high school CS teachers of the Khan Academy computer programming community and culture. -
Reading, Writing, Arithmetic... JavaScript?
A talk about what it might mean if everyone learnt JS as a kid-- and an investigation into how early that could be taught. -
Making JS More Learnable
A discussion about what parts of JS are hard to learn and how we can make it easier to learn, like via better debugging tools and error messages. -
Teach the World To Code
A talk about why we need more developers and the non-traditional ways that we are creating more developers. -
Developer Experience
A talk about what developer experience is and how to make it not suck. -
Teaching Programming Online
A deep dive on how we teach programming online at Khan Academy. -
Engineering Culture
A look at the ingredients of a great engineering culture, like code reviews, testing, and onboarding. -
JS UI Library Design
A talk about the best practices we discovered at Coursera for writing JS UI Libraries, like encapsulation, idempotence, configuration, and more. -
HTML5 Feature Detection & Fallback
A talk about the shiny new HTML5 features available, and how we should decide when to use them and how to fallback. -
When Bootstrap Attacks!
The story of upgrading our Bootstrap 1 to Bootstrap 2, and what I'd recommend to everyone to avoid the pain that we went through. -
Feature Detection in the Real World
A talk about feature detection vs. user agent sniffing, and the cases when feature detection just doesn't work and sniffing is the only way. (Revised for I/O) -
Online Learning Made Social
A joint talk with Google Hangouts PM Amit Fulay about how Hangouts can be used in online learning to make it more social, and what we've learnt at Coursera in our experiments. -
Frontend Architectures
A comparison of 3 frontend architectures at Coursera- Web 1.0, JS widgets, and single page web apps. -
Feature Detection in the Real World
A talk about feature detection vs. user agent sniffing, and the cases when feature detection just doesn't work and sniffing is the only way. -
Storylines: Pamela Fox
The story of how I grow up and got to where I am today. -
Backbone: 3 Ways
An introduction to Backbone and a walkthrough of the 3 ways that we use it at Coursera. -
JS in the front, REST in the back
Behind the scenes of the JS-centric, API-oriented architecture of Coursera, and why I like it. -
When Mobile Browsers Attack!
A tale of the bugs I discovered in mobile web browsers and the horrible hacks that I had to deploy. -
Backbone: 3 Ways
An introduction to Backbone and a walkthrough of the 3 ways that we use it at Coursera. -
Beyond the Job Title
A talk for the Stanford Society of Women Engineers about my job decisions from childhood to today. -
Rewriting Django Admin
Why and how I re-wrote Django Admin with a different architecture. -
Django Admin: Widgets & Widgetry
Why we used Django Admin at Coursera (at first) and the crazy widgets we had to write for it. -
PhoneGap Pain Points
A rant about what I found hardest about working with PhoneGap and mobile web browsers generally. -
PhoneGap: Why & How
An overview of the strategies for making mobile apps, and then a deep dive on my PhoneGap architecture and workflow. Translated into spanish (click button). -
localStorage: Use It, Don't Abuse It
An overview of the ways to use localStorage with tips on ways to use it responsibly, to not slow down or break your site. -
A Year of Hermit Hacking
An Ignite talk about my year of hermit hacking - what I tried and what I learnt. -
The Developer Experience (Summit)
Introduces the term "developer experience", talks about why it's important, gives examples of what makes a great experience, including a few makeover stories. -
Picking a Technology Stack
An overview of the different components that make up a web app and a mobile app and thoughts on how to pick what's in your stack. -
Teach the World To Code
A talk about why we need more developers and the non-traditional ways that we are creating more developers. -
Why & How I Use PhoneGap
Based on the "Mobile App Strategy" talk, it starts with an overview of the strategies for making mobile apps, and then does a deep dive on my PhoneGap architecture and workflow. -
Mobile App Strategy
Starts with an overview of the strategies for making mobile apps, and then does a deep dive on my PhoneGap architecture and workflow. -
Client-side Storage
Introduces the new HTML5 client-side storage technologies and does a deep dive on localStorage, with many examples of how it can be used. -
Mobile App Options
Gives an overview of the different strategies for outputting mobile apps, from native to runtime to cross compiled to hybrid. -
How I became a born again vegetable-tarian
An ignite talk about my newfound love for veggies, my favorites, and tips for accepting veggies into your life. -
Client-side APIs
Gives a history of client-side APIs and an overview of different types of APIs with interactive examples. -
The Developer Experience
Introduces the term "developer experience", talks about why it's important, and gives examples of what makes a great experience. -
No, Really, I'm Shy
Explains that I'm actually quite a shy person, and introduces my hacks to workaround that shyness. -
Writing Apps the Google-y Way
Covers App Engine and the datastore, with Python examples. Slides also available for <a href="http://www.slideshare.net/wuzziwug/writing-apps-the-googley-way">Brisbane</a> version. -
The Wonders of the "Onesie"
Introduces the concept of the "onesie" - the head-to-toe footed pajama - and what makes it awesome. -
Wave APIs: Now & Beyond
Discusses the current state of the Google Wave APIs, and how they could be improved in future Wave implementations. -
Mashups as Art
Talks about making data mashups, covering types of data sources, tools for making the data useable, tools for visualizing data, and example mashups. -
Google's Client-side Web APIs
Reviews the history of client-side Web API technology, then gives an overview of Google's offerings and what can be done with them. See also <a href="http://blog.pamelafox.org/2010/10/history-of-client-side-web-apis.html">this blog post</a>. -
Google Data APIs & Docs List API
Talks about the history of RSS/ATOM, gives an overview of the Google data protocol, then goes deep into the Google Docs Data API. -
Google APIs: A-Z
Gives an overview of the many APIs that Google offers, in terms of API types, API genres, and API monetization techniques. Slides also available for version in <a href="http://prezi.com/o_rjk6jtcf3j/google-apis-a-z-melbourne/">Melbourne</a>, <a href="http://prezi.com/ps-kkzjmqiks/google-apis-a-z-brisbane/">Brisbane</a>, <a href="http://prezi.com/5esfckg3fubw/google-apis-a-z-dc-gtug/">DC-GTUG</a>, <a href="http://prezi.com/-dsgyuhbboti/google-apis-a-z-nca-gtug/">NCA-GTUG</a>, and <a href="http://prezi.com/ll1bptvrmile/google-apis-a-z-mi-gtug/">MI-GTUG</a>. -
Wave Robots API: Behind the Scenes
Starts with a explanation of the Wave protocol basics, reviews the history of the robots API, and explains several API design decisions. -
Google Wave API Design Principles
Gives suggestions for designing Wave extensions (gadgets and robots) for a better and more Wave-y user experience. -
Google Wave Gadgets API & Examples
Explains how the Gadgets API works and shows examples. -
Google Wave Robots API & Examples
Explains how the Robots API works and shows examples. -
Google Wave: Product, Platform, Protocol
Zooms through different features of Google Wave, like the real-time typing, threaded comments, extension platform, and federation. -
Google Wave: The Protocol
Shows some of the key concepts in the Wave protocol, operational transforms and the conversation model. -
Google Wave Robots API: Java
Explains how the Wave Robots API works, with code snippets and examples in Java. -
Google Wave Gadgets API & GWT
Explains how the Gadgets API works, with code snippets and examples using the Google Web Toolkit in Java. -
Google Wave Intro
Gives a brief overview of Wave and presents a series of screenshots showing how it can be used. -
Making More than Just a Map
Highlights what features turn simple map mashups into full web applications, like linkability, subscription, editability, import/export, and searchability. -
Google Wave for Students
Presents a series of suggestions (as screenshots) for how students can use Wave for groupwork. -
Google Wave: What's New?
Summarizes new features added to Wave since launch, across the product, platform, and protocol, like better scaling, more APIs, and enterprise use. Concludes with a series of example uses. -
Lowering the Barriers to Communication
Takes a look at the different methods of communication out there, from traditional snail mail to more modern forms, and how each of them encourages or discourages participation. -
Innovation @ Google
Gives an overview of how innovation happens at Google - from finding the ideas to making it possible for engineers to implement them. -
Google Wave Conversation Model
Explains the Google Wave conversation model - waves, wavelets, and blips. -
Google Wave APIs
Shows a brief overview of the various Google Wave APIs. -
Google Wave Gadget APIs
Shows a brief overview of the Google Gadgets API. -
Google Wave Robots API v2 & Third-party Integration
Explains how the Robots API works inside Wave, shows the new features of the Robots API v2, and showcases some real uses of the API. -
Google Wave: Communication Evolved
Shows how Wave combines features from many different communication products into one. -
Google Wave Robots API v2
Explains how the Robots API works inside Wave, and shows the new features of the Robots API v2. -
I'm a Barbie Girl in a Barbie World
Introduces the ultra feminine Computer Engineer Barbie, and why it’s a damn good thing. -
Get Creative with Google APIs
Showcases creative uses of various Google APIs, like Youtube, Maps, and Social. -
Understanding & Extending Wave
Shows the underlying XML structure of wavelets and blips, and then explains the fundamental concepts behind gadgets and robots. -
Google Wave: Product, Protocol, Platform
Zooms through the three "P"s of Google Wave. -
Google Wave 20/20: Product, Platfom, Protocol
Introduces the various aspects of Google Wave. -
Making Wave-y Extensions
Zooms through a series of tips on making extensions wave-y, based on the extension design principles doc, including suggestions like showing user locations in a gadget and making robots respond to natural trigger. -
Collaborative Mapping with Google Wave
Introduces Google Wave and then presents ideas about how it can be used with mapping and geography. -
Making Maps Mashups
Zooms through a breakdown of the Maps API, an overview of all the Google Geo APIs, and a look at the various ways of rendering data on a map. -
Mashups & APIs
Gives an overview of mashups, Web APIs, and highlights a few Google Web APIs. -
A World of Words
Introduces languages, etymology, and how words are intricately connected. -
Google Products: Deep Dive on Google Maps
Discusses how products are born at Google, and goes into a deep dive into what makes a product like Google Maps challenging. -
Web APIs & Google APIs
Gives an overview of Web APIs generally, then Google’s offerings, then specifically Google’s offerings in Sydney. -
Google Maps APIs: Overview
Begins with a general discussion of Web APIs, goes into depth on how the Google Maps JS API works, reviews the various Google Geo APIs, and finishes with examples of different ways developers can render their data on a map. -
What You Don't Know About Geo APIs Can't Hurt You
Reviews a grab bag of features added to the Google Geo APIs in the year before: Panoramio, Reverse Geocoding, 3d Maps, Driving Directions, and more. -
Performance Tips for Maps API Mashups
Provides tips on reducing latency for your maps mashup, discussing topics like marker management, clustering, custom tiles, static maps, flash maps, encoded polys, light markers, latency oriented features of the JavaScript Maps API, and more. -
Growing up Geek: My Dad, the Computer Scientist
Summarizes my life growing up with two geeky parents and explains how I got involved in web development and related areas. -
Google App Engine (Java)
Introduces the basics of App Engine and the datastore (BigTable), and ends with a coding walkthrough of a Java App Engine App (<a href="http://best-website-ever.appspot.com">The Best Website Ever</a>). -
Google App Engine
Gives a basic overview of Google App Engine and its components (datastore, APIs). -
Tips for Improving Usability of Maps Mashups
Discusses the most common usability problems in Maps mashups, and various solutions for those problems. The problems range from "too many markers" to "not enough navigation controls". -
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Provides an overview of two technologies - Google App Engine and the Google Data APIs - that aim to make web development and data portability easier. -
Google Spreadsheets APIs & Gadgets
Introduces the Google Data APIs, Google Spreadsheets API, JSON/JSONP, and Google Spreadsheets Gadgets. -
Client Killed the Server Star
Explains how new technology like Gears, HTML5, and Google App Engine could be used to create websites where the caching, storage, and computing is done primarily in the browser/desktop and the server is used merely as a backup store. -
Gears & Offline Apps
Introduces the Gears APIs (local server, datastore, workers) and includes two offline demos. -
Flash, Flex, & The Maps API for Flash
Reviews the differences between Flash and Flex, the power of AS3, and discusses the reasons that developers might choose the Flash API over the JS API. Includes several demos of the Flash API. -
Flex vs. HTML5 for RIAS
Compares Flex versus HTML 5 in terms of features that compose a typical RIA (rich internet application). -
OpenSocial Intro
Introduces the OpenSocial platform and Gadget APIs. -
Open Maps (Or Close Enough?)
Gives a look at the various open source/open data options for an open maps stack - OpenStreetMap, OpenLayers, etc - with a deeper dive on the Mapstraction library. -
Socializing Apps
Discusses the different ways of adding a social layers to apps inside social networks. -
Moving the Web Forward with HTML5
Introduces new features in HTML5, like video, canvas, and new form tags. -
Google Maps APIs Overview
Starts with an introduction to the Google Maps JavaScript API, then discusses several newly added features such as the AJAX Common Loader, Reverse Geocoding, ClientLocation, Flash API, Static API, and more. Ends with a description of KML and geo sitemaps. Slides also available for <a href="http://docs.google.com/Present?skipauth=true&docid=dggjrx3s_2298dr8k9jdn">Beijing</a> version. -
Maps API Tips & Tricks
Suggests various ideas for more seasoned developers of the Google Maps APIs, such as using web services for more data, using spreadsheets as a database, or hosting on AppEngine. -
Using Maps + AJAX APIs in AS3/Flex
Reviews what the Maps API for Flash can do, and show how to easily integrate it with other libraries for parsing XML/GeoRSS/KML/JSON. It also shows how to use it with the non-JS version of the Google AJAX libraries. Includes an introduction to AS3, Flex development, and Flex controls. -
Static + Flash Maps
Introduces the Static Maps API and Maps API for Flash, and various reasons for using them - like using the Flash API for faster vector graphics, or using the Static Maps API for reduced latency on webpages. -
From Mashups to Mapplets
Introduces Google Mapplets in detail, explaining how they relate to the Google Gadgets API, how they work behind the scenes, and how to develop them. -
Producing Custom Maps with the Google Maps API
Discusses the different ways of overlaying custom map data on top of the Maps API mashups, covering the spectrum from the easiest technique (ground overlays) to the more difficult but sophisticated techniques (data-driven clickable custom tile layers). -
Maps Mashups UI + UX
Introduces ways to improve the usability of maps mashups, like with custom markers, indicative icons, better infowindows, and customized controls. -
Open Source Maps API Library
Gives a brief run-down of the various open source extensions available in <a href="http://code.google.com/p/gmaps-utility-library">the utility library</a>.