Last updated: April 25, 2019
Working on @reactjs. Co-author of Redux and Create React App. Building tools for humans.
- Name It, and They Will Come (March 28, 2019)
- Writing Resilient Components (March 15, 2019)
- A Complete Guide to useEffect (March 8, 2019)
- How Are Function Components Different from Classes? (March 2, 2019)
- How Are Function Components Different From Classes? (March 2, 2019)
- Coping with Feedback (March 1, 2019)
- Fix Like No One’s Watching (February 14, 2019)
- Making setInterval Declarative with React Hooks (February 3, 2019)
- Making setInterval Play Well with React Hooks (February 3, 2019)
- React as a UI Runtime (February 2, 2019)
- Why Isn’t X a Hook? (January 26, 2019)
- The “Bug-O” Notation (January 24, 2019)
- Neden super(props) yazıyoruz? (January 15, 2019)
- 2018年,那些我所不知道的技術 (January 15, 2019)
- Preparing for a Tech Talk, Part 2: What, Why, and How (January 7, 2019)
- The Elements of UI Engineering (December 30, 2018)
- Things I Don’t Know as of 2018 (December 28, 2018)
- Preparing for a Tech Talk, Part 1: Motivation (December 26, 2018)
- Why Do React Hooks Rely on Call Order? (December 13, 2018)
- Optimized for Change (December 12, 2018)
- How Does setState Know What to Do? (December 9, 2018)
- My Wishlist for Hot Reloading (December 8, 2018)
- Why Do React Elements Have a $$typeof Property? (December 3, 2018)
- How Does React Tell a Class from a Function? (December 2, 2018)
- Why Do We Write super(props)? (November 30, 2018)
DOM Blacksmith, UX Smelter, Code Forger.
- Form Validation in Under an Hour with Vuelidate (April 2, 2019)
- Learning to Learn (March 4, 2019)
- What Hooks Mean for Vue (February 4, 2019)
- The Importance of One-on-Ones (January 30, 2019)
- Who is @horse_js? (January 22, 2019)
- Voice-Controlled Web Visualizations with Vue.js and Machine Learning (October 29, 2018)
- Durable Functions: Fan Out Fan In Patterns (October 23, 2018)
- Introducing GitHub Actions (October 17, 2018)
- How to Import a Sass File into Every Vue Component in an App (October 17, 2018)
- What are Durable Functions? (October 9, 2018)
- Create your own Serverless API (July 16, 2018)
- Balancing Time (June 22, 2018)
- Understanding the Almighty Reducer (June 13, 2018)
- Creating a VS Code Theme (June 8, 2018)
- What does the ‘h’ stand for in Vue’s render method? (May 30, 2018)
Creator of @vuejs and connoisseur of sushi.
- Vue 2.6 released! (February 4, 2019)
- Disclaimer: I’m the author of Vue. (January 4, 2019)
- Plans for the Next Iteration of Vue.js (September 30, 2018)
- The translation on Zhihu is great. Keep up the good work! (September 4, 2018)
- Seriously, what? (August 10, 2018)
- Vue CLI 3.0 is here! (August 10, 2018)
- Vue 2.5 released (October 13, 2017)
- Upcoming TypeScript Changes in Vue 2.5 (September 21, 2017)
- Vue is now on OpenCollective! (September 11, 2017)
- Sorry about that! (December 30, 2016)
- Vue in 2016 (December 27, 2016)
Engineering Manager at Google working on Chrome.
- Native image lazy-loading for the web! (April 6, 2019)
- Rendering large lists with react-window (March 7, 2019)
- Disallow large imports from JavaScript projects (February 20, 2019)
- JavaScript Loading Priorities in Chrome (February 18, 2019)
- Exploring a back/forward cache for Chrome (February 17, 2019)
- The Cost Of Client-side Rehydration (February 8, 2019)
- Web Page Usability Matters (January 9, 2019)
- Speed up next-page navigations with prefetching (December 14, 2018)
- Shine a light on JavaScript performance with Lighthouse (October 14, 2018)
- Adaptive Serving using JavaScript and the Network Information API (October 10, 2018)
- Start Performance Budgeting (October 2, 2018)
- Progressive Web Apps With React (October 15, 2016)
- Offline installation of npm packages (January 2, 2016)
- Getting started with Progressive Web Apps (December 23, 2015)
- Instant Loading Web Apps With A Service Worker Application Shell Architecture (November 21, 2015)
- Chrome DevTools Deep Dive - Extended (November 20, 2015)
- Polymer Power Tools - Polymer Summit (October 9, 2015)
Scott Hanselman is a programmer, teacher, speaker, technologist, podcaster, writer, diversity advocate and more.
- Software Defined Radio is a great way to bridge the physical and the digital and teach STEM (April 25, 2019)
- Open Source Artificial Pancreases will become the new standard of care for Diabetes in 2019 (April 23, 2019)
- Open Source Artificial Pancreases will become the new standard of care for Diabetes (April 23, 2019)
- Exploring DNS with the .NET Core based Technitium DNS Server (April 18, 2019)
- Your computer is not a black box - Understanding Processes and Ports on Windows by exploring (April 16, 2019)
- Blocking ads before they enter your house at the DNS level with pi-hole and a cheap Raspberry Pi (April 11, 2019)
- Accessibility Insights for the Web and Windows makes accessibility even easier (April 9, 2019)
- Coders: Context Switching is hard for both computers and relationships (April 4, 2019)
- The Transitive Property of Friendship - and the importance of the Warm Intro (April 2, 2019)
- Displaying your realtime Blood Glucose from NightScout on an AdaFruit PyPortal (March 28, 2019)
- F7 is the greatest PowerShell hotkey that no one uses any more. We must fix this. (March 26, 2019)
- Getting Started with .NET Core and Docker and the Microsoft Container Registry (March 21, 2019)
- What is Blazor and what is Razor Components? (March 19, 2019)
- Xbox Avatar accessories for People with Diabetes! Sponsored by Nightscout and Konsole Kingz (March 14, 2019)
- How to stream PC games from Windows 10 to your Xbox One for free (March 12, 2019)
- How to parse string dates with a two digit year and split on the right century in C# (March 7, 2019)
- Converting an Excel Worksheet into a JSON document with C# and .NET Core and ExcelDataReader (March 5, 2019)
- EditorConfig code formatting from the command line with .NET Core's dotnet format global tool (February 28, 2019)
- Hey Siri, what's my blood sugar? Learning to Code with Apple's iPhone Shortcuts (February 26, 2019)
- Learning about .NET Core futures by poking around at David Fowler's GitHub (February 21, 2019)
- Right click publish quickly to Azure App Services with VS Code extensions and zipdeploy (February 19, 2019)
- Exploring nopCommerce - open source e-commerce shopping cart platform in .NET Core (February 14, 2019)
- How to convert an IMG file to an standard ISO easily with Linux on Windows 10 (February 12, 2019)
- Lighting up my DasKeyboard with Blood Sugar changes using my body's REST API (February 7, 2019)
- Teaching Kids to Code with Minecraft Mods made easy using MakeCode and Code Connection (February 5, 2019)
- Brainstorming - Creating a small single self-contained executable out of a .NET Core application (January 31, 2019)
- Visiting The National Museum of Computing inside Bletchley Park - Can we crack Enigma with Raspberry Pis? (January 29, 2019)
- Visiting The National Museum of Computing inside Bletchley Park - Can we crack Engima with Raspberry Pis? (January 29, 2019)
- NuGet's fancy older sibling FuGet gives you a whole new view of the .NET packaging ecosystem (January 24, 2019)
- How to use Windows 10's built-in OpenSSH to automatically SSH into a remote Linux machine (January 22, 2019)
- Remote debugging with VS Code on Windows to a Raspberry Pi using .NET Core on ARM (January 17, 2019)
- Installing the .NET Core 2.x SDK on a Raspberry Pi and Blinking an LED with System.Device.Gpio (January 15, 2019)
- How to update the firmware on your Zune, without Microsoft, dammit. (January 10, 2019)
- Relationship Hacks: Playing video games and having hobbies while avoiding resentment (January 7, 2019)
- Using Visual Studio Code to program Circuit Python with an AdaFruit NeoTrellis M4 (December 25, 2018)
- The Fun of Finishing - Exploring old games with Xbox Backwards Compatibility (December 20, 2018)
- Enjoy some DOS Games this Christmas with DOSBox (December 18, 2018)
- Useful ASP.NET Core 2.2 Features (December 13, 2018)
- How to set up ASP.NET Core 2.2 Health Checks with BeatPulse's AspNetCore.Diagnostics.HealthChecks (December 11, 2018)
- How to remove words from the Windows Autocorrect Spell Check Dictionary (December 6, 2018)
- Announcing WPF, WinForms, and WinUI are going Open Source (December 4, 2018)
CTO @betterdotcom. Ex-Spotify, co-organizing NYC ML meetup, open sourcing sometimes (Luigi, Annoy), blogging random stuff, dad.
- Why software projects take longer than you think – a statistical model (April 15, 2019)
- Why software projects always take longer than you think – a statistical model (April 15, 2019)
- Headcount goals, feature factories, and when to hire those mythical 10x people (February 21, 2019)
- Data architecture vs backend architecture (January 10, 2019)
- The hacker's guide to uncertainty estimates (October 8, 2018)
- I don't want to learn your garbage query language (August 30, 2018)
- Business secrets from terrible people (August 16, 2018)
- New approximate nearest neighbor benchmarks (June 17, 2018)
- Missing the point about microservices – it's about testing and deploying independently (June 4, 2018)
- Interviewing is a noisy prediction problem (May 2, 2018)
- Waiting time, load factor, and queueing theory – why you need to cut your systems a bit of slack (March 27, 2018)
- Lessons from content marketing myself (aka blogging) for five years (March 7, 2018)
- New benchmarks for approximate nearest neighbors (February 15, 2018)
- I'm looking for data engineers (January 28, 2018)
- Books I consumed in 2017 (January 17, 2018)
- Plotting author statistics for Git repos using Git of Theseus (January 3, 2018)
- Toxic meeting culture (December 29, 2017)
- Learning from users faster using machine learning (December 12, 2017)
- Annoy 1.10 released, with Hamming distance and Windows support (November 26, 2017)
- Why conversion matters – a toy model (October 30, 2017)
- On the Equifax breach and how to really prevent identity theft (September 26, 2017)
- The number of letters in the word for each number (September 6, 2017)
- The software engineering rule of 3 (August 29, 2017)
- Machine, Platform, Crowd (August 19, 2017)
- Google diversity memo, global warming, Pascal's wager, and other stuff (August 14, 2017)
- Fun with trigonometry – the world's most twisted coastline (July 12, 2017)
- Optimizing for iteration speed (July 6, 2017)
- Blogroll (June 9, 2017)
- Conversion rates – you are (most likely) computing them wrong (May 23, 2017)
- The mathematical principles of management (April 9, 2017)
- The eigenvector of "Why we moved from language X to language Y" (March 15, 2017)
- Why I went into the mortgage industry (February 17, 2017)
- Language pitch (February 1, 2017)
- Functional programming is the libertarianism of software engineering (January 10, 2017)
- The half-life of code & the ship of Theseus (December 5, 2016)
- Are data sets the new server rooms? (November 1, 2016)
- Pareto efficency (October 25, 2016)
- State drift (September 8, 2016)
- When machine learning matters (August 5, 2016)
- Subway waiting math (July 9, 2016)
- Approximate nearest news (June 2, 2016)
- What is your motivation? (May 24, 2016)
- Dollar cost averaging (April 26, 2016)
- Why organizations fail (April 18, 2016)
- NYC subway math (April 4, 2016)
- Exploding offers are bullshit (March 16, 2016)
- Meta-blogging (March 12, 2016)
- Iterate or die (March 2, 2016)
- My issue with GPU-accelerated deep learning (February 3, 2016)
- Some more font links (January 25, 2016)
- Analyzing 50k fonts using deep neural networks (January 21, 2016)
- I believe in the 10x engineer, but… (January 8, 2016)
- Books I read in 2015 (January 1, 2016)
- More MCMC – Analyzing a small dataset with 1-5 ratings (December 5, 2015)
- There is no magic trick (November 28, 2015)
- Installing TensorFlow on AWS (November 12, 2015)
- Looking for smart people (November 4, 2015)
- MCMC for marketing data (October 31, 2015)
- Interview with a Data Scientist: Erik Bernhardsson (October 28, 2015)
- Nearest neighbors and vector models – epilogue – curse of dimensionality (October 20, 2015)
- Nearest neighbors and vector models – part 2 – algorithms and data structures (October 1, 2015)
- Nearest neighbor methods and vector models – part 1 (September 24, 2015)
- Presentations about Spotify music recommendations (September 22, 2015)
- Antipodes (September 8, 2015)
- Software Engineers and Automation (August 16, 2015)
- coin2dice (July 24, 2015)
- Benchmark of Approximate Nearest Neighbor libraries (July 4, 2015)
- More Luigi alternatives (July 2, 2015)
- 3D in D3 (June 21, 2015)
- The hardest challenge about becoming a manager (June 5, 2015)
- The lane next to you is more likely to be slower than yours (May 28, 2015)
- Better precision and faster index building in Annoy (May 26, 2015)
- Annoy – now without Boost dependencies and with Python 3 Support (May 3, 2015)
- Ping the world (April 26, 2015)
- Black Box Machine Learning in the Cloud (April 22, 2015)
- It’s called Berkson’s paradox! (April 9, 2015)
- Norvig’s claim that programming competitions correlate negatively with being good on the job (April 7, 2015)
- Pinterest open sources Pinball (March 14, 2015)
- The relationship between commit size and commit message size (February 26, 2015)
- My favorite management failures (February 22, 2015)
- Leaving Spotify (February 11, 2015)
- Scala Data Pipelines for Music Recommendations (January 13, 2015)
- Everything I learned about technical debt (December 30, 2014)
- I already found the best gifs (December 28, 2014)
- A brief history of Hadoop at Spotify (December 20, 2014)
- Luigi Presentation @ NYC Data Science, Dec 16, 2014 (December 17, 2014)
- Luigi talk tomorrow (December 16, 2014)
- Deep learning for… Go (December 11, 2014)
- Deep learning for… chess (addendum) (December 8, 2014)
- Deep learning for… chess (November 29, 2014)
- Optimizing things: everything is a proxy for a proxy for a proxy (November 22, 2014)
- Luigi conquering the world (November 15, 2014)
- Annoying blog post (November 11, 2014)
- The Filter Bubble is Silly and you Can’t Guess What Happened Next (October 10, 2014)
- Detecting corporate fraud using Benford’s law (October 7, 2014)
- Running Theano on EC2 (August 19, 2014)
- In defense of false positives (why you can't fail with A/B tests) (July 30, 2014)
- Recurrent Neural Networks for Collaborative Filtering (June 28, 2014)
- Where do locals go in NYC? (June 17, 2014)
- How to build up a data team (everything I ever learned about recruiting) (June 8, 2014)
- The power of ensembles (April 24, 2014)
- MLConf 2014 (April 12, 2014)
- Music recommendations using cover images (part 1) (April 1, 2014)
- Welcome Echo Nest! (March 22, 2014)
- Luigi success (March 22, 2014)
- Momentum strategies (March 3, 2014)
- Ratio metrics (January 23, 2014)
- Benchmarking nearest neighbor libraries in Python (January 12, 2014)
- More recommender algorithms (December 20, 2013)
- Microsoft’s new marketing strategy: give up (December 12, 2013)
- Bagging as a regularizer (December 6, 2013)
- Model benchmarks (November 2, 2013)
- statself.com (October 18, 2013)
- Implicit data and collaborative filtering (September 16, 2013)
- Vote for our SXSW panel! (September 4, 2013)
- What’s up with music recommendations? (August 17, 2013)
- 3D (August 12, 2013)
- 2D embedding of 5k artists = WIN (August 11, 2013)
- Delivering Music Recommendations (August 9, 2013)
- ML+Hadoop at NYC Predictive Analytics (August 3, 2013)
- HubSpot’s Picture Shows how to Maintain Monocultures in the 21st Century (July 28, 2013)
- More Luigi: Presentation from OSCON (July 27, 2013)
- Optimizing over multinomial distributions (July 24, 2013)
- hdfs2cass (June 19, 2013)
- NoDoc (June 16, 2013)
- Wikiphilia (June 2, 2013)
- Spotify’s Discovery page (May 31, 2013)
- Fermat’s principle (May 21, 2013)
- Snakebite (May 7, 2013)
- Stuff that bothers me: “100x faster than Hadoop” (April 27, 2013)
- Presentation about Luigi (April 26, 2013)
- Being data driven (April 13, 2013)
- Annoy (April 12, 2013)
- More Luigi! (March 22, 2013)
- ML at Twitter (February 27, 2013)
- I’m featured in Mashable (February 6, 2013)
- Slides from NYC Machine Learning talk (January 27, 2013)
- NYC Machine Learning meetup (January 22, 2013)
- Momentum and mean reversion might just be volatility bias (January 13, 2013)
- Calculating cosine similarities using dimensionality reduction (December 5, 2012)
- Tumblr’s awesome project names (November 18, 2012)
- A neat little trick with time decay (October 29, 2012)
- Luigi: complex pipelines of tasks in Python (October 21, 2012)
Hacker. Co-founder of Browserling and Testling together with @substack. (We made: http://browserling.com, http://testling.com, http://browserify.org).
- Seventeenth site in online tools network: onlineNUMBERtools.com (April 3, 2019)
- Seventeenth site in online tools network – onlineNUMBERtools.com (April 3, 2019)
- Announcing FinUrls.com (February 27, 2019)
- Happy 25th Birthday to Debian Linux (August 16, 2018)
- My book Perl One Liners is in Humble Book Bundle again (September 24, 2018)
- Announcing SciUrls.com (January 18, 2019)
- Sixteenth site in online tools network – onlineTEXTtools.com (January 9, 2019)
- Announcing DevUrls.com (January 2, 2019)
- Announcing TechUrls.com (December 27, 2018)
- Boom! Tetris for Jonas (November 3, 2018)
- Announcing SciUrls.com! (January 18, 2019)
- I've renamed ProgURLs to DevURLs (January 14, 2019)
- Announcing DevUrls.com! (January 14, 2019)
- Sixteenth site in online tools network: onlineTEXTtools.com (January 9, 2019)
- Announcing ProgUrls.com! (January 4, 2019)
- Announcing TechUrls.com! (January 4, 2019)
- Fractal Generators, Part 4 (November 30, 2018)
- Boom! Tetris for Jonas! (November 3, 2018)
- Fifteenth site in online tools network: onlineUTF8tools.com (November 29, 2018)
- Browserling is now a top 30k website in the world (October 10, 2018)
- My book Perl One Liners is in Humble Book Bundle again! (October 5, 2018)
- Even More Fractal Curve Generators (September 19, 2018)
- Fourteenth site in online tools network: onlineIMAGEtools.com (September 7, 2018)
- Coffee in, code out (September 1, 2018)
- More Fractal Curve Generators (September 16, 2018)
- Candy in, code out (August 21, 2018)
- Happy 25th birthday to Debian Linux! (August 20, 2018)
- Thirteenth site in online tools network: onlineMATHtools.com (August 20, 2018)
- L-system Generator (August 20, 2018)