Lessons learned about improving performance of database-backed applications
July 01, 2024
Using the Y combinator to implement recursion
August 04, 2021
How does a CSRF token protect us from cross-site request forgery attacks?
November 29, 2020
Let's train a Tic-Tac-Toe player with a neural network via reinforcement learning using PyTorch
December 27, 2019
A demo of a selectable card with a cool expand-on-hover effect
November 05, 2019
Creating my professional landing page including a copy of my dev.to blog
November 04, 2019
Incremental statistics on streaming data using a sliding window
September 26, 2019
Convolutional network variations for recognizing MNIST digits
September 09, 2019
PyTorch implementation of a simple fully connected network for recognizing MNIST digits
August 19, 2019
Compare results from PyTorch with a manual backpropagation calculation
August 15, 2019
Simple implementation of MCTS for tic-tac-toe in Python
August 07, 2019
Simple implementation of Q-table reinforcement learning for tic-tac-toe in Python
July 25, 2019
Goals, priorities, and communication
July 23, 2019
Simple implementation of the minimax algorithm for tic-tac-toe in Python
June 15, 2019
Using intuition to motivate the structure, calculations, and code for convolutional neural networks
May 28, 2019
Overview of the structure, calculations, and code needed to implement a simple neural network from scratch
May 05, 2019
A cheatsheet of javascript array-manipulation techniques for coding interviews
March 12, 2019
Programming interview problem solving walkthrough
March 05, 2019
Pseudo-polynomial algorithms and input length
December 18, 2018
Brain dump after reading Learn You a Haskell for Great Good!
December 04, 2018
Rules of thumb about how to (and how not to) learn effectively
November 10, 2018
Using functional programming patterns for iteration
October 14, 2018
Use functional programming to start building a Formik-like framework for React forms
October 02, 2018
Cooperative concurrency, non-blocking I/O and horizontal scalability
September 18, 2018
Strategies for effective programming
July 09, 2018
How to use SQLAlchemy with Flask without the Flask-SQLAlchemy extension
June 11, 2018
JavaScript class properties transform
May 28, 2018
AlphaGo and observations about machine intelligence
May 06, 2018
Discussion of Haskell's currying of functions and comparison with javascript
May 02, 2018
Introducing asynchronous generator functions and pipelines in javascript
April 23, 2018
Exploration of synchronous and asynchronous iteration in JavaScript
April 15, 2018
Examination of how async/await works in javascript
April 06, 2018
Exploration of the exponential moving average, also commonly known as a low-pass filter
April 04, 2018
Derivation and sample code for an incremental running variance and standard deviation
March 27, 2018
Derivation and sample code for an incremental running average
March 20, 2018
A geometric interpretation of variance and standard deviation
March 12, 2018
How to serialize concurrency in JS with callbacks, promises, and async/await
March 05, 2018
A simple wrapper class in JavaScript for map, filter, and reduce
February 27, 2018