Jan 24, 2025 • 21 min read
Build a Custom Time Slider Component with Ant Design and Next.js

With the right building blocks, even complex UI components don't require weeks of effort to achieve.
Please note: I'm in the process of hosting these posts here on my personal site, but until I'm done, many will take you to the original article or project in a new tab.
107
posts
Jan 24, 2025 • 21 min read
Build a Custom Time Slider Component with Ant Design and Next.js
With the right building blocks, even complex UI components don't require weeks of effort to achieve.
Oct 21, 2024 • 12 min read
Automatically Publish a Repo as a PyPI Library with GitHub Actions
Just a config file, a few Python scripts, and a GitHub Actions workflow make publishing to PyPI effortless.
Aug 23, 2024 • 12 min read
Animate an Auto-Scrolling Carousel with Only HTML and CSS
No libraries, no JavaScript, just CSS keyframes and the scroll snap module.
Jun 19, 2024 • 8 min read
Lean on CSS Clip Path to Make Cool Shapes in the DOM without Images
Hearts, stars, and horseshoes - or maybe just a jaunty polygon for extra flair.
Jun 11, 2024
Introducing Notehub Py - the Python SDK for Notehub
Notehub Py helps you with the Notehub API, interacting with data in a Python-friendly manner.
Apr 19, 2024 • 10 min read
Create a Custom Formatted CSV from Python Data
The DictWriter package makes creating a CSV file from a Python list simple.
Feb 23, 2024 • 14 min read
Filter, Merge, and Update Python Lists Based on Object Attributes
Manipulating lists of items by object attributes is surprisingly tricky.
Dec 18, 2023 • 11 min read
Use Selenium with Python to Target the XPath of a Particular Object
Extract data from each item in a list of items instead of the whole webpage.
Oct 22, 2023 • 17 min read
Scrape Data from a Lazy Loading Website with Selenium Python
No API to fetch data? No problem when you can build your own web scraper.
Aug 13, 2023 • 16 min read
Copy Files from One Repo to Another Automatically with GitHub Actions
Even add a newly copied file to a feature branch for easier pull request reviews.
Jun 11, 2023 • 10 min read
Automatically Create a Pull Request Against a Feature Branch with GitHub Actions
Keep up with code reviews programmatically using workflows.
Apr 12, 2023 • 12 min read
Use GitHub Actions to Automatically Publish a Repo Subfolder as an npm Library
Publish a project subfolder to npm with just a package.json and a GitHub Actions workflow.
Feb 22, 2023 • 21 min read
Tips and Tricks for Using the Prisma ORM
Implicit relational databases, JSON values, fetching the latest record from a table, handling no data scenarios - it's all doable with Prisma.io.
Feb 21, 2023
Introducing Notehub JS – the JavaScript Library for the Notehub API
Notehub JS connects you to the Notehub API, allowing you to interact with Notehub.io in a JavaScript-friendly way.
Dec 18, 2022 • 7 min read
Use CSS to Reveal a Child Element in the DOM by Interacting with the Parent
When you want to trigger a change in a nested component, just move the :hover higher.
Nov 19, 2022 • 7 min read
Create Upsert Yourself for Amazon Redshift Databases
With a separate staging table, inserting and updating data in PostgreSQL is straightforward.
Nov 7, 2022
Host-free Smart Parking Lot Help Request Device
Use cellular IoT to alert parking lot attendants when customers need assistance with an SMS message of their current location.
Oct 23, 2022 • 11 min read
Rely on JavaScript's Intersection Observer to Execute Code When in View (or Not)
Stop a video playing or animate an element onscreen - the Intersection Observer API is highly versatile.
Oct 7, 2022
Refrigerator Fleet Monitoring Made Easy with LoRa
Monitor temp, humidity, and door open/close state across fleets of refrigerators with LoRa-based sensors.
Sep 8, 2022
Quickly Build Custom IoT Dashboards with Snowflake, Streamlit, and Blues
Some basic Python code can create beautiful, highly customized IoT data visualizations in no time.
Sep 5, 2022 • 8 min read
Change SVG Color with Help from CSS Filter
We no longer need to bother designers when the SVG's color is slightly off: just filter it.
Aug 8, 2022 • 20 min read
Render Multiple Colored Lines on a React Map with Polylines
Need more than one color of line in a React Leaflet map? Polylines is the solution.
Jul 29, 2022
Build an IoT Smart Leak Detector with SMS Alerts
Learn to build a low-cost, cellular-enabled water leak detection device complete with SMS alerts.
Jul 8, 2022
Leave the Water Running? Build an IoT Smart Leak Detector
Build a leak detector complete with SMS notifications if a leak's detected.
Jul 4, 2022 • 11 min read
Use Secret Environment Variables in GitHub Actions
Setting up protected environment variables for GitHub Actions CI/CD workflows isn't so tough.
Jun 6, 2022 • 12 min read
Merge JavaScript Objects in an Array with Different Defined Properties
Array.reduce() is the solution to combine objects that share a key, but not necessarily properties.
May 14, 2022 • 13 min read
Use CSS Grid to Make a Fixed Sidebar with Scrollable Main Body
Forget position: absolute and position: fixed , reach for CSS Grid instead.
Apr 13, 2022
Anti-Theft GPS Tracker and Recovery System
Build a Notecard-based anti-theft device with SMS alerts when movement is detected.
Apr 4, 2022 • 21 min read
Customize and Style Complex Data in React Table
Sometimes table columns and cells need data from multiple object properties.
Mar 10, 2022 • 22 min read
Build and Custom Style Recharts Data Charts
Recharts has standard charts and tooltips, but customizing them takes extra effort.
Mar 4, 2022 • 15 min read
Blues, Where's My Car?
Sounds the (silent) alarm: anti-theft alerting & asset recovery with a Blues Notecard.
Feb 23, 2022
Low Fi LoJack® with Blues and React
Build your own asset tracker from hardware to software and everything in between.
Feb 16, 2022 • 17 min read
How to Unit Test Next.js API Routes with TypeScript
If you need env vars, mocked data, and TypeScript types, this one's for you.
Jan 18, 2022 • 25 min read
Create an Asset Tracker with Next.js and React Leaflet
Incremental static regeneration makes updating static pages easy.
Dec 16, 2021 • 15 min read
Build a Gatsby Blog Post Filter
Even with multiple data sources and things to filter by, it can be done.
Nov 2, 2021
Blues - Just Like React, but for IoT
You can build without React or Blues, but why would you?
Oct 21, 2021 • 11 min read
Cypress Studio - the underrated feature speeding up e2e testing
The feature dramatically cutting down the time it takes to write end-to-end tests.
Oct 18, 2021 • 9 min read
Introducing Volta - it manages your Node.js versions so you don't have to
With Volta, the old saying of "It works on my machine..." will become a thing of the past.
Aug 24, 2021 • 16 min read
Low Code GPS Asset Tracker and Map Display
Build a GPS tracker with a Blues Notecarrier, and map it with Datacake.
Jun 24, 2021 • 8 min read
Using React Hooks to Recognize & Respond to Current Viewport Size
Because Edge Cases are the Only Certainty in Development
May 3, 2021 • 10 min read
Animate a Mobile Hamburger Bar Menu Using CSS and Just a Hint of JavaScript
Add those extra little touches, and propel a site from working to wow.
Mar 18, 2021 • 12 min read
How to Utilize Submodules within Git Repos
One Solution When the Primary Code Can be Open Source, but Specific Content Needs to be Private
Feb 22, 2021 • 8 min read
Successfully Throwing Async Errors with the Jest Testing Library
The One Time Errors Should Happen in your Code
Jan 19, 2021 • 8 min read
CSS Clamp(): The Responsive Combination We've All Been Waiting For
Bringing together the best of CSS min() and CSS max() functions
Dec 23, 2020 • 9 min read
Setting up Axios Interceptors for all HTTP call in an application
Automatically intercept all the requests and responses so you don't have to remember to do it yourself.
Nov 24, 2020 • 11 min read
Pure CSS to Make a Button "Shine" and Gently Change Colors Over Time
Because animations and gradients in CSS are delightful.
Oct 20, 2020 • 9 min read
VS Code's REST Client Plugin is All You Need to Make API Calls
Why leave the IDE to test new endpoints? Now you don't have to.
Sep 9, 2020 • 8 min read
Recent Advances and Improvements to JavaScript Promises
They've come a long way since the days of Promise.resolve() and Promise.reject()
Aug 13, 2020 • 10 min read
Mocking HTTP Calls in Cypress End-to-End Tests
Don't let unreliable test data keep your new features from making it to production
Jul 8, 2020 • 8 min read
Gatsby: Fetching Data at The Component Level with useStaticQuery
Queries are no longer relegated to just page level components
Jun 10, 2020 • 8 min read
Building a Universal Higher-Order Component Page Loader for your React App
Loading screens are needed everywhere - don't reinvent the wheel every time.
May 11, 2020 • 8 min read
Polling in React using the useInterval Custom Hook
useInterval is a custom Hook that's certain to make intervals simpler in your app.
Apr 14, 2020 • 11 min read
Animating React with React Transition Group
Another handy React animation library to have in your tool belt.
Apr 1, 2020 • 12 min read
9 React Testing Library Tips and Tricks
Writing tests is hard. These tips make it a little easier
Mar 3, 2020 • 7 min read
How to Use React's Context API and useContext() Hooks Effectively
Avoid prop drilling both your values and your functions with the help of Context
Feb 16, 2020 • 7 min read
JavaScript's Optional Chaining Proposal
Kiss undefined errors that stop you dead in your tracks goodbye
Feb 4, 2020 • 10 min read
React Socks and Responsive Web Design with React
A React-specific way to build webpages and apps to suit your users device size
Jan 20, 2020 • 11 min read
Pure CSS Media Queries and Responsive Web Design with React
Build your webpages and apps to suit you user's device size
Dec 23, 2019 • 9 min read
JavaScript Error Handling from Express.js to React
Because errors are bound to happen and we need to handle them correctly.
Dec 9, 2019 • 8 min read
How to Pass Multiple Route Parameters in a React URL Path
Redirects are common. Passing more than one piece of dynamic data with them is not.
Nov 24, 2019 • 12 min read
Destructuring Arrays & Objects: JavaScript ES6 Feature Series (Pt 10)
For concise variable syntax, curly braces have never been more critical
Nov 12, 2019 • 12 min read
Object Keys, Values, and Entries: JavaScript ES6 Feature Series (Pt 9)
Finally, ECMAScript has introduced some much-needed object manipulation methods
Oct 27, 2019 • 13 min read
Classes and Inheritance: JavaScript ES6 Feature Series (Pt 8)
Prototypes are still there... under the hood
Oct 14, 2019 • 14 min read
Built-in Module Imports and Exports: JavaScript ES6 Feature Series (Pt 7)
Import means never having to write "require" again
Sep 29, 2019 • 9 min read
Enhanced Object Literal Value Shorthand: JavaScript ES6 Feature Series (Pt 6)
Because typing the same thing twice in an object is crazy.
Sep 16, 2019 • 9 min read
String Template Literals: JavaScript ES6 Feature Series (Pt 5)
Why developers need to know where the backticks key is.
Sep 1, 2019 • 14 min read
Spread & Rest Parameters: JavaScript ES6 Feature Series (Pt 4)
The syntax so nice ES6 used it twice.
Aug 23, 2019 • 9 min read
Default Function Parameter Values: JavaScript ES6 Feature Series (Pt 3)
Less parameter undefined checks make developers' lives easier
Aug 6, 2019 • 14 min read
Arrow Functions: JavaScript ES6 Feature Series (Pt 2)
When is a function not a function? When it's an arrow.
Jul 28, 2019 • 12 min read
Var, Let & Const: JavaScript ES6 Feature Series (Pt 1)
Let's begin at the beginning...
Jul 15, 2019 • 6 min read
Node.js 12: The future of server-side JavaScript
Node, new and improved in so many ways
Jul 7, 2019 • 16 min read
JavaScript International Methods
Because date formatting is pain & international formatting is impossible
Jun 23, 2019 • 6 min read
Viewport Units, the CSS You Didn't Know About But Should
Because CSS done right is awesome
Jun 11, 2019 • 7 min read
Github Templates: The Smarter Way to Formalize PRs Among Dev Teams
No more confusing pull requests.
May 27, 2019 • 11 min read
Use ES6 To Destructure Deeply Nested Objects in JavaScript
Because Airbnb's ESLint is merciless in React.
May 12, 2019 • 15 min read
JavaScript's Async / Await versus Promises: The Great Debate
Prepare yourselves, you're stepping into a minefield
May 2, 2019 • 9 min read
4 Solutions to Run Multiple Node.js or npm Commands Simultaneously
At some point, everyone has this problem...
Apr 13, 2019 • 10 min read
Take Your VS Code Config Anywhere Easily with Settings Sync
Just when you thought Visual Studio Code couldn't get any better, it did.
Mar 31, 2019 • 7 min read
Node Engines: Helping Developers Everywhere Avoid Phantom Bugs
Specific Node.js engines should be required for every package.json.
Mar 15, 2019 • 14 min read
Update Feature Toggles in a React App without Redeploying
Spring Cloud makes feature toggles easy. A Node endpoint makes app redeployment unnecessary.
Mar 3, 2019 • 8 min read
nvm, the Easiest Way to Switch Node Environments on Your Machine in a Flash
Nope, I didn’t misspell npm — Node Version Manager is its own handy dev tool.
Feb 17, 2019 • 13 min read
How ESLint Makes Me a Better React Developer
JavaScript's loose standards are a blessing and a curse.
Feb 11, 2019 • 10 min read
Migrating from AngularJS to React
What to Keep in Mind as You Upgrade Your Legacy UI Code Bases
Feb 3, 2019 • 10 min read
The Case for Standardized Error Handling in Your Web Application’s APIs
Because bad error messages — or worse, errors invisible to users do no one any favors.
Jan 21, 2019 • 25 min read
Setting Up Swagger to API Test In a JavaScript Application
Spring Boot makes Swagger APIs look easy, Node.js not so much.
Jan 4, 2019 • 30 min read
Using Java to Read Really, Really Large Files
This is the kind of stuff Java was made for.
Dec 22, 2018 • 14 min read
Keep Code Consistent Across Developers The Easy Way — With Prettier & ESLint
Writing code is tough enough, don’t make it tougher with bad formatting.
Dec 8, 2018 • 12 min read
Getting Started with Puppeteer & Headless Chrome for End-to-End Testing
And a brief primer on integrating Puppeteer into Jest testing.
Nov 22, 2018 • 21 min read
Password Reset Emails In Your React App Made Easy with Nodemailer
Resetting passwords in JavaScript apps doesn’t have to be complicated.
Nov 11, 2018 • 8 min read
The Absolute Easiest Way to Debug Node.js - with VS Code
Let’s face it…debugging Node.js is (and always has been) kind of a pain.
Oct 24, 2018 • 11 min read
Streams For the Win: A Performance Comparison of Node.js Methods for Reading Large Datasets (Pt 2)
How readFile(), createReadStream() and event-stream stack up.
Oct 11, 2018 • 12 min read
Using Node to Read Really, Really Large Datasets (Pt 1)
Node.js can handle big data pretty, darn well.
Sep 30, 2018 • 15 min read
How to Use Netflix's Eureka and Spring Cloud for Service Registry
Remove the complexity from microservice architectures.
Sep 12, 2018 • 20 min read
Implementing JSON Web Tokens & Passport.js in a React App
How and why to use the various auth options Passport.js has to offer.
Sep 1, 2018 • 6 min read
Postman vs. Insomnia: Comparing the API Testing Tools
The pros and cons of each testing tool, so you can find the best for your needs.
Aug 17, 2018 • 8 min read
Using Docker & Docker Compose to Improve Your Full Stack App Development
The hardest part of a new project can be getting all the pieces running, but it doesn't have to be.
Aug 4, 2018 • 10 min read
Sequelize: Like Mongoose but for SQL
The ORM for SQL databases with Node.js
Jul 18, 2018 • 4 min read
Jib: Getting Expert Docker Results Without Any Knowledge of Docker
All of the containerization benefits, none of the complexity.
Jul 7, 2018 • 13 min read
Docker 102: Docker-Compose
The recipe card for getting all your Dockerized apps to work together seamlessly.
Jun 23, 2018 • 12 min read
Docker 101: Fundamentals & the Dockerfile
Containerize all project dependencies in one place for easy deployments anywhere.
Jun 8, 2018 • 5 min read
React, SVG Images and the webpack Loader to Make Them Play Nice
React and SVGs did not start out friends. One npm package offered an answer.
Jun 2, 2018 • 11 min read
Leveraging a Spring Cloud Config Server in a Node.js App's Feature Toggles (Pt 2)
Yes, you can use a Java config server to alter a Node.js service.
May 26, 2018 • 9 min read
Why a Spring Cloud Config Server is Crucial to a Good CI/CD Pipeline (Pt 1)
Store and update variables your app will need to run in just one place.
May 12, 2018 • 11 min read
What is Graphql, Really?
The API standard providing a more efficient, powerful and flexible alternative to REST.
Apr 30, 2018 • 15 min read
JavaScript Array Methods to Make You a Better Developer
Learn to manipulate arrays like a pro.
Apr 15, 2018 • 11 min read
How I Earned a Full-time Software Engineer Offer in 6 Months
After I graduated from coding bootcamp, my hard work was only just beginning.
Apr 8, 2018 • 11 min read
How I Went From a Digital Marketer to a Software Engineer in 4 Months
Like many people, my career path to web development wasn't a straight line.