Jonathan Freeman

Contributing Editor

Jonathan Freeman is a software developer, consultant, and jazz musician living in Chicago. Through consulting, he's enjoyed working in various domains, from finance to healthcare to video games. While he specializes in JavaScript, both browser and server side, he also takes a keen interest in modern data stores (particularly graph databases) and distributed computing platforms.

JavaScript tutorial: Add face detection to your web app

JavaScript tutorial: Add speech recognition to your web app

JavaScript tutorial: Add speech recognition to your web app

Harnessing the power of voice commands in a React map explorer app with the annyang JavaScript library

JavaScript tutorial: Animated charts with React-vis

JavaScript tutorial: Animated charts with React-vis

With React-vis, breathing life into a chart is as simple as adding a single word to our code

JavaScript tutorial: Beyond basic charts with React-vis

JavaScript tutorial: Beyond basic charts with React-vis

How to use Uber’s library of React components to create interactive line charts that display comparative values over time

JavaScript tutorial: Easy data visualizations with React-vis

JavaScript tutorial: Easy data visualizations with React-vis

The library of React components from Uber makes creating charts and other simple visualizations a snap

Functional JavaScript: Building data structures from functions

Functional JavaScript: Building data structures from functions

Combining functional programming concepts to produce data structures feels like alchemy

JavaScript tutorial: Functional programming in JavaScript

JavaScript tutorial: Functional programming in JavaScript

How to embrace immutability, think functionally, and write code that is easier to understand and test

JavaScript tutorial: Higher-order functions

JavaScript tutorial: Higher-order functions

‘Higher-order functions’ is a fancy term for functions that take other functions as arguments or that return functions. Very powerful!

JavaScript memoization: Handy functional programming

JavaScript memoization: Handy functional programming

Memoization is a neat functional programming trick you can use to speed up expensive calculations

JavaScript autocomplete is better with TabNine

JavaScript autocomplete is better with TabNine

The AI-driven TabNine autocompleter is like your best friend that finishes your sentences—in any language

JavaScript dapps: Public and private data on Blockstack

With blockchain and the Blockstack.js library, mixed privacy apps aren’t as tricky as you might think

JavaScript dapps: Decentralized lists with Blockstack

JavaScript dapps: Decentralized lists with Blockstack

File-based persistence in decentralized apps requires us to rethink how we store data

Load More