Nabeel
Valley
Software Engineer • Photographer
Blog
Docs
Projects
Talks
Photography
Archive
Me
Everything
Blog posts, docs, and talks
2026
March
Symbols on the Ground
blog
Photos from the Nederlands Fotomuseum
blog
Quick and Dirty Object Access in Go
blog
Async TUIs using Bubble Tea
blog
Git Tricks with Tri and Difft
blog
Mildly interesting photos from Eid
blog
Join the Webring!
blog
February
Web Component for Making Patterns
blog
CSS Anchor Positioning
blog
April
Traefic
2025
December
Generator Generation
blog
Parsing Helix logs in Nushell
blog
November
Coat Rack
blog
Shader Web Component
blog
Snippet: Rachets, not Levers - Chris Krycho
blog
September
Week 37, Server Management
blog
Côte d'Azur
blog
Week 36, Creativity
blog
Use a password manager, they said
blog
SQLite
jq
Type-first development
Typescript Deep Dive
August
Week 35, Documentation matters
blog
Problems are better left solved
blog
Scripting Text Manipulation
blog
July
Web Authentication API
blog
Exploring the CSS Paint API
blog
Accessibility Reference List
blog
Patching packages with PNPM
blog
June
Typescript debugging without an IDE
blog
March
Scan based regex composition
blog
Getting Started with the Language Server Protocol
blog
February
Typescript Workers in NodeJS
blog
January
Web Workers and Vite
blog
Undirected Graphs
Hash tables
Geometric Applications
nginx
October
JJ
Some thoughts on AI
May
Benchmarking
2024
December
Signals Basics
Javascript Proxy Object
blog
Conditionally Protect Properties in Typescript
blog
Helix
November
MIPS Assembly
Intro to Haskell
October
Type safe URL templates
blog
week 40, year 2024 - paper and pictures
blog
Software for you and your friends
A Nu-er Shell
September
week 37, year 2024 - ui paradigms and comic books
blog
week 36, year 2024 - pretty printing
blog
week 35, year 2024 - datetimes and logic programming
blog
August
An unexpected way to open links in the terminal
blog
A Visual Language for Image Manipulation
blog
week 34, year 2024 - programming languages of various types
blog
week 33, year 2024 - compilers, videography and good intentions
blog
Parameters, but only sometimes
blog
More generic than it should be
blog
week 32, year 2024 - branded types, nodes, and image segmentation
blog
week 31, year 2024 - webgpu and parsers
blog
July
Life, Gleam, and Parser Combinators
blog
The Most Awkward Person in the Room
blog
June
Rendering Angular Components with Portals
April
On Automatic Lensess
blog
On Falling Down
blog
Passwords
blog
Show Children when Parent is Hidden with CSS
blog
Symbol Tables
Introduction to CSS
Introduction to Shaders
March
Priority Queues
Quicksort
Mergesort
Elementary Sorts
CSS @counter-style with Emojis
blog
Use localStorage for Tab Synchronization
blog
View Transitions and an Astro Presentation Framework
blog
Embedded Development with Platform IO
NodeMCU ESP8266
Check your domain
February
Custom form controls in Template Driven Forms
January
Configuring Angular Dependency Providers
Synchronize external state with Angular
Angular Generic Link Component
Browser Extensions/Dev Tools
Algorithms
Union Find
Analysis of Algorithms
Stacks and Queues
Dynamic Programming
Algorithm for Recursive Memoization
Fibonacci Recursive Memoization
Grid Traveler Recursive Memoization
Can Sum
How Sum
Best Sum
Can Construct
Count Construct
All Construct
Algorithm for Tabulation
Fibonacci with Tabulation
Grid Traveler with Tabulation
Can Sum with Tabulation
How Sum with Tabulation
Best Sum with Tabulation
Can Construct with Tabulation
Count Construct with Tabulation
All Construct with Tabulation
May
Introduction to Animation on the Web
Phoenix LiveView with Elixir
Introduction to Elixir
Web Apps using the Elixer Phoenix Framework
2023
November
Interacting with Kafka with Kotlin Coroutines
blog
HTML Custom Elements
October
Dynamic Angular Components
JPA Queries without the Magic
blog
useSWR-esque data fetching with RxJS
Building Spring apps with Kotlin
June
Using Type Guards and Unions to prevent bugs and increase maintainability
blog
Nvim Error when using Plugins
blog
May
Generic Object Property Formatter and Validator using Typescript
blog
March
Postman Flows
blog
GitHub CLI
Unix Shell
February
Update or Append to DynamoDB Attributes
blog
January
Draggable Div with XState and React
blog
Structuring HTML Content
blog
Let's talk about Feeds
blog
2022
December
Virtual Machine vs Containers
blog
Smooth Bottom Navigator with Secondary Actions
blog
Podcast and RSS Reader App Design
blog
Typescript Utilities
blog
November
Un-editable sections inside of a content editable
blog
Expanding Bottom Navigation with CSS Transitions
blog
Nushell
Shapelets, Motifs, and Discords
September
Education App Design Ideas
blog
Tools
August
Read Metadata from Images using Rust
blog
Binary Data and File Formats
blog
Using React.memo for Controlling Component Rendering
blog
Dev Tools Update
blog
July
A Simple JSON Backed Database in Typescript
blog
Free Services
June
A type for getting properties common in all objects from a union
blog
Neovim
May
Type Narrowing in Typescript
blog
User interfaces with Compose
Typescript Basics
March
Web Accessibility
Localhost HTTP Proxy with Node.js
blog
React Top Level API
blog
Gradients
February
Visualizations with React
blog
January
Analog Cool
Cool Chrome
Faded Mono
Faded Warm
Warm Morning
VSCO A4
VSCO C1
Some websites I think are cool
October
Types of Time Series Tasks
Time Series Analysis
April
Introduction to Bluetooth
2021
November
Logging Aliases for Javascript
blog
Introduction
Docs
October
Javascript Range Function
blog
August
Template Literal Types with Typescript
blog
June
Docker Containers with CDK Pipelines
Building Serverless Apps using the Serverless Stack Framework
blog
Interacting with SQL using Knex
Functional Higher Order Components (HOCs) with Typescript
May
Multi-module Python project using an __init__.py file
blog
React Native Basics
Kafka Fundamentals
April
Antlr in a Container
CDK Local Lambdas
XUnit with F#
blog
Redis from Express
Debug Typescript with VSCode
New Maven Project
Full stack web apps with F# and Bolero
March
Control a Raspberry Pi GPIO with Python
blog
Custom Styles in Markdown
blog
Render Element by Tag Name in React
blog
Setup HomeAssistant RaspberryPi with WiFi configured
blog
LEDs
Raspberry Pi Hardware Intro
Introduction to Machine Learning
PowerQuery/M-Language Cheatsheet
February
Serialize a JsonValue Array using F# and FSharp.Data's JsonProvider
blog
Jenkins: A Git process may have crashed in the repository
blog
January
Decorator
2020
December
Tutorial - Tour of Heroes
Custom Attributes in C# Web Controllers
blog
Debug POSTs using an Express App
blog
FeathersJS Basics
RxJS Basics
November
Backup SQL Server Database as Script
blog
Linear Regression with Sklearn
blog
Reactive Architecture Advanced
Reactive Architecture Foundations
Generate data for a Postman request
blog
Capture Fetch with Cypress
blog
Backup SQL Server Database as Script
October
Position Legends in Seaborn
blog
Scripting with FSharp
blog
Package Management with Poetry
blog
Trust .NET Core Dev Certificates
blog
September
Highlight Specific Elements
blog
URL Text Fragments
blog
Node.js Dirname vs Resolve
blog
Split an Array into Segments
blog
Mongo DB in Docker
blog
Web APIs with AdonisJS and PostgreSQL
blog
RPG with Godot
Mongo DB in Docker
Unity Basics
August
Automate Anything with GitHub Actions
blog
NLP with Tensorflow
Raspberry Pi Headless
WSL
July
Code in a Container
blog
Query a Database with Entity Framework
Authentication with MongoDB
OCR with Python and EasyOCR
Replication with MongoDB
May
Code for Noobs
blog
Linux
Introduction to C
JS Scripts
Complex UI
Flutter Reference
Dart Reference
April
Colour in Black and White Photography
blog
Nuxt.js
Next.js
March
The Gatsby Migration, pt.3 - Smart Pages
blog
Matter.js
p5.js
Cheatsheet
Vim
Signal R
February
The Gatsby Migration, pt.2 - Dumb Pages
blog
Using the TypeScript AST
January
The Gatsby Migration, pt.1 - Setting the Scene
blog
Building Android Apps with Kotlin
Gatsby
June
Scaling
2019
December
Android Basics
Kotlin Basics
Introduction to LINQ to SQL
November
Real-time Communication with MQTT
blog
Multi-Tier Integration Service
Entity Framework with F#
SQL Cheatsheet
October
Intro to F# Web APIs
blog
Hangfire
Jenkins
Looky, a wild HTML!
blog
Intro to Svelte
Testing Private Members
Logging
September
Puppeteer
SAFE Stack
Introduction to Unit Testing
Dependency Injection with .NET Core
Code Generation using CSV Files
WCF Services
Database Migrations with Entity Framework
HTTP Basic Authentication with Express
Git
Basic Auth for .NET Core
February
Managing a Node using Chef
Basics
Progressive Web Apps
Multi Stage Docker Builds
Docker Configuration Scripts
VirtualBox Setup
Observer
OOP Concepts
Strategy
Configure Blockchain on Windows
React with Redux Basics
JSX Components
State, Lifecycle and Event Handlers
Lists and Forms
August
Introduction to F#
CORS with Express
July
Web Components
WebRTC
June
Ubuntu Server Setup
May
ASP.NET Core Boilerplate Setup
Introduction to C#
Introduction to C++
January
Hyperledger Composer
Hyperledger Fabric Part 2
IBM Cloud VSCode Blockchain Extension
Basics
Hyperledger Fabric Part 1
Data Analysis
Python Basics
Data Science Methodology
Data Science Tools
Simple Lambda Custom Authorizer
React Native Reanimated
Deep Learning with Keras
Handling Class Imbalance
Image Classification with Keras
Machine Learning with Python
Sklearn Pipelines and XGBoost
Change Point Detection with Ruptures
Time Series Forecasting
Time Series Analysis with STUMPY
Time Series Classification
Time Series Stationarity
2018
December
Express Application with MongoDB
Deploy an Express/MongoDB Application on k8s
MQTT with Mosquitto
November
Blockchain Essentials
Blockchain Foundations
Containers and Kubernetes on IBM Cloud
Docker
Infrastructure and Container Management
Istio with k8s
Microservices with Istio
Inference and Modeling
Probability
R Basics
Visualization
TJBot Setup
Watching for File Changes
Express with Typescript
Node.js Basics
Play Watson Text-to-Speech via XHR
Jasmine and Karma
Powershell
Intro to Slack Apps