If you'd like to get my writings in your email, sign up for my newsletter.
September 2024
August 2024
July 2024
June 2024
April 2024
February 2024
October 2023
September 2023
August 2023
June 2023
May 2023
March 2023
January 2023
December 2022
November 2022
October 2022
August 2022
June 2022
- How I was extra as a parent and created a math worksheets generator
- How to tame your email inbox as a software developer
- Avoiding the hard for the easy
- How I've achieved success with my shutdown routine
May 2022
- Blender modeling preferences
- Seo Taiji reunion
- Mindful Slack status messages
- Stop, step back
- MCU burnout
April 2022
- Duplicate a project in Things with Apple Shortcuts
- Pass React component as prop to render as child in another component
March 2022
- The user guide to working with Michael Lee
- Growth
- How to set up the PARA system in your digital systems
- First impressions of Fathom Analytics
February 2022
November 2021
September 2021
June 2021
- Thwart bots from spamming your newsletter with double opt-ins
- Luca
- Oh, that's what it could look like
- 3 email rules to manage email
May 2021
- Dangerous, but not scary
- Remembering who you are
- Purposefully boring, but fun tech
- Running a software business like a local restaurant
- Simple email forwarding with Forward Email
April 2021
- My favorite Apple device, Apple Watch
- Refreshed my about page
- How to create drop-down lists in Google Sheets
- Google can't tell me what to write about, so why don't you?
- Switch Wi-Fi networks from macOS Terminal
- Eight years
March 2021
- Efficient one-on-one agenda
- Someone's one
- Three changes I'm making to create a consistent newsletter
February 2021
- How I use an external monitor with my Mac for ergonomics
- How I use the Eisenhower matrix to figure out what to work on
- Reimagining year left
January 2021
- Storyworthy
- iOS Scriptable YouTube widget
- Think less and start
- Forget the tools, focus on the experience
- Streak rules
December 2020
- 2020 annual review
- Not time. But energy?
- At home with the Apple HomePod mini
- Text replacements in macOS
November 2020
- Creating an iPhone storage widget with Shortcuts, Toolbox Pro and Scriptable
- Stress sucks
- Getting editible text from a photo with Shortcuts on iOS with OCR
- Run a shortcut as an action in Shortcuts for iOS
- npm pre version 1.0 caret rules
October 2020
- 5 reasons why I use Buttondown for my newsletter
- Adding a cache policy to images hosted in AWS S3
- Generate a QR code image for your Wi-Fi in Shortcuts on iOS or iPadOS
- How to pronounce specificity
- How to pronounce canonicalization
- Set up a macro in Keyboard Maestro to quickly end Zoom calls
September 2020
- Changing domains for a website hosted on Netlify
- Assign quick actions to tapping on the back of your iPhone
- Installing Nova's Command Line Tool
- Launch websites from Spotlight using Terminal commands in macOS
- How to hide icons on your desktop quickly on macOS from Terminal
August 2020
- Linking together to-dos in Things with links
- A light touch web application
- What's old is new
- Resets
- New stuff page
July 2020
- How I use Shortcuts on iOS and a template to automatically setup my weekly note
- Tell stories
- Acknowledge a maker
- The journey to creating a coloring book for my kids
June 2020
May 2020
April 2020
- Buttondown tells you where
- The one feature that won me over to switch to Buttondown for my newsletter
February 2020
January 2020
December 2019
October 2019
- You are a software engineer
- Moved site from Netlify to Render
- Ephemeral software
- Git not working in macOS Catalina with xcrun error
August 2019
July 2019
- Resizing tmux panes video
- Unregistering service workers in Firefox
- Better product creation through design collaboration
June 2019
- Compile a site with Jekyll without installing Jekyll using Docker
- First step to making your website responsive
- Precompiling Rails assets for production
May 2019
- Access iCloud Drive quicker in Terminal by creating a symbolic link (symlink)
- iCloud Drive path in Terminal
- Simplicity is powerful
- Thanks!
April 2019
March 2019
February 2019
- Reusable UI patterns
- Spell It Out: 600+ acronyms spelt out
- Add CSS to 11ty
- First impressions on 11ty
January 2019
December 2018
- Whee!, a newsletter highlighting the funnest web dev things
- My thanks to Learn AWS By Using It
- Avoid setting up an inbox for MailChimp by using AWS's Simple Email Service (SES)
November 2018
- The innovators always got to wear a different, more exclusive shoe than anybody else, mainstream consumers had the satisfaction of wearing the same brands.
- Rolling my own site sponsorships
- Multiple user management on iOS probably ain't happening
- In-App purchases are not shareable with Family Sharing in iOS
- Google Forms is neat
- Google Analytics gtag setup for Rails 5.2
- Toggle word wrap in Vim
- Weniger aber besser (Less but better)
October 2018
- Postcard for book
- Enjoying the moment
- Where did you go?
- Behind the scenes look at Spell It Out
- Show ignored files in Atom's tree view
- CSS Grid guide
September 2018
- Rails 5.2 Credentials + Heroku
- OAuth, whoa
- What teaching my kids how to play tic-tac-toe taught me about user onboarding experience
- Frustration with defining relationships
- ConfsList's tech stack: Rails, Node, Rails, Node, Rails
- Introducing ConfsList
August 2018
- Hugo, first impressions
- Real time
- Supporting multiple Heroku accounts from the CLI
- Flexible UI elements with Rails render blocks
- My jobs before development
- Where are the views for Devise in a Rails app?
July 2018
- The tools I use, July 2018 edition
- CTO?!
- Rails ActiveRecord data types
- List all routes for a Rails application
June 2018
- So do it
- Saying bye to a project
- Rotating viewport in Blender on a Mac
- Swift cheatsheet for JavaScript developers
- WWDC 2018 thoughts
- WWDC 2018 acronyms spelt out
May 2018
- The ask
- Kindness of strangers
- Page scroll in Terminal
- The easiest way to be at the top of your field, is to choose a small field.
- Reading and writing files with fs in Node during a cron job
- A single step won't take you far, but many steps covers a lot of ground.
- Introducing @tinyraces
- Programming is hard!
April 2018
- Case insensitive sorting in SQLite
- The best tech stack for projects
- HomePod: Welcome Home
- Show the current time in a tmux pane
- Exit time on tmux pane
March 2018
February 2018
January 2018
- Class notes from PyLadies Remote - Building Websites with Jekyll
- David Neal's 5 essential ingredients for an awesome tech talk
- Onboarding at Airbnb design team
December 2017
- The case for a gem-based Jekyll theme
- Search and replace all instances of a string in Vim with a confirmation prompt
- Search and replace all instances of a string in Vim
- Blogging with Netlify and Jekyll
November 2017
September 2017
- 826 Valencia + Google
- Don't use JavaScript to create a back button
- Added PhantomJS to my invoicing
- Finding time to work on side projects or businesses as a parent
- Rolling my own invoicing
- Open sourced @year_left my Twitter bot
August 2017
- Open Hours JavaScript plugin
- From Ember.js to React
- Remove all console.log()s using Regex in Atom
- Software that delights
- Sarah Mei on criticism and how to give it in a way that's useful
- Matt Swanson's observations and practices of a tech lead
- Prevent Google from indexing your site
- Stop Steam from running at startup on macOS
- Defining archive
July 2017
- Just Works
- Why ask why?
- What's the difference between a tilde (~) and a caret (^) in a npm package.json file?
- Tiny wins every day
June 2017
- What stage your client's business is in and how it affects your freelancing job
- Where do I find a programming mentor?
- Freelancing? Tell somebody.
- I'm freelancing
- Add date to macOS menu bar
- Dad of three, no more
- Just use what you have
May 2017
- Speed up Jekyll serve
- What's the purpose?
- Year Left: A Twitterbot with a sense of urgency
- Deleting a word in Vim
April 2017
- Baking in empathy
- Show up, do the work everyday
- git standup
- Unsolicited declaration of love
- Just use what you got
- Results from my digital tip jar experiment aka my pizza fund
- Ain't easy
- Hello again
March 2017
- Rendering unescaped HTML in Ember.js with Handlebars
- Ember.js log helper
- TinyWins' tasks progress bar
- What is a POJO?
- TinyWins' tech stack
- Prettier MongoDB output
February 2017
- Future-proof your Jekyll copyright date
- Programming for fun
- Update macOS from Terminal
- Symlink paths
January 2017
December 2016
November 2016
- Restore deleted files on iCloud
- Long running businesses
- Solving intimidating problems
- So here we are
- Tell good stories
- The why
October 2016
September 2016
- Purpose behind archive and delete in OTDT
- Installing pip on macOS
- What would I be doing?
- Hands-on programming
- iOS 10 iMessage Sticker Pack Icon Template for Sketch
- One Thing Done Today
- My favorite new feature in iOS 10 is Bedtime
- Hardwired in our brains and bodies is a potential greater than we realize, and all we have to do to unlock it is believe.
- That was hard
- If you don't treat it as a business, others won't take it as a business.
- The last game
- Fixing AWS CodeCommit Permission Denied issue
August 2016
July 2016
- Suppress Rails from generating controller specific asset files
- Upgrade rbenv and ruby-build
- Lost heritage
- New pages: Tools of the Trade + Thanks!
- Swift for-in loop
June 2016
- Customer experience lessons from a donut shop
- Jekyll 101: Creating a new post and page
- jQuery .children() vs .find()
May 2016
- ntbk: a simple, command-line journal
- Making git tags available on a remote server
- Ember.js primer part 1: Install Ember CLI with NVM and creating your first project
- Mac keyboard symbols
April 2016
- Stop Ember.js from complaining about "Missing semicolon"
- Ain't about who had the idea first, it's about who executed on that idea and who just sat on it.
- Why Front Matter, matters
- Ember property as an object
- How to add a remote repository in git
- Google Analytics setup for Jekyll
- Good enough is better than perfect
March 2016
- How to set an anchor tag's target to blank in Markdown converted with Kramdown
- A well written case to Consider Jekyll by Oliver Pattison
- Rendering Liquid and Handlebars Expressions in Jekyll Code Blocks
- Open Atom with project folders collapsed from the Mac Terminal
February 2016
- I failed on a live Twitch broadcast
- A lesson from video games
- How I let greed mess up my Instagram experience
- Humanae - Mapping human skin tone to the Pantone color scheme
- Digital Slap Simulator
January 2016
- Create a new Jekyll project in an existing folder
- Finally got SSL on my domain and it was free!
- I'm writing my first book
- Site redesign: Technology Choices
- Easy MongoDB setup on Mac with MongoDB.app
December 2015
- Site redesign: Typography
- Site redesign: Layout
- Tree command line tool
- Why I'm rebuilding my website
- Building Rome
November 2015
- URLs in Safari
- Spectacle - window management for the Mac
- CodeHive year one: Part 2 - lessons and insight
- New domain
- Mystery iOS toggle
- Settings metaphor
- Federico Viticci's iPad Pro review
- Dann Petty interview
- CodeHive year one: Part 1 - some numbers
- Tattly Parlor
- A better understanding of how to use Git submodules
October 2015
- Almost forgot
- What I expect when I successfully run a Vim command
- Jekyll 3.0 & Jekyll community
- Daniel Miessler's study notes
- Distraction-free writing in Vim with goyo.vim
- Guide to setting up Ruby on Rails
- Ruby doesn't have an increment operator
- Over 3
September 2015
- A List of Free Resources to Learn Programming
- Learn How to Automate Tasks and the Basics of Python
- Adobe Creative Cloud stuck on Mac and how to fix it
- Family unit
August 2015
- Achieve readonly effect with HTML radio input fields
- Peek at your git stash
- Slingshot Coffee's origin story
July 2015
- Thoughts on Material Design by Google
- GitGutter was making my Sublime Text laggy
- How I automate some of my social networking with IFTTT
- Allowing default browser actions in Ember.js
- Persistence
- Invoking handlebars helper in helper
- Updating Rsync on a Mac
- Reflection: iOS SSH client
- How ember-cli handles fixtures
- Sass in your Ember-cli application
- Beme: The new social media app from Casey Neistat
- Paths: browser-based SVG editor
- Ember file structure should reflect route setup
- Why shark teeth are black
- Changing an ember-cli app's locationType
- Brackets 1.uhhh
- Looking up browser cookies
- Oh My Zsh git aliases
- How to get IFTTT to not shorten your links
- Group hug
- Shark teeth
- Instagram iPad app coming soon?
- Atom 1.ehhh
- YouTube thumbnails
- Responsive YouTube videos
- Father, daughter beatbox battle
- Store git credentials
- Hybrid
- Vector icons for upcoming physical product
- Comcast Frank
- Social media vs E-mail
May 2015
March 2015
February 2015
January 2015
- It works
- Morning shift
- Path of least resistance
- Future proof your footer's copyright date with the current year
December 2014
November 2014
- First Unofficial CodePen Meetup Mention on CodePen Radio
- Pair Programming with My Son
- My Last and First Day
October 2014
- Daily Logbook
- Update rbenv's ruby-build List
- Don't Forget the Address
- The Other Hand
- Introducing CodeHive
- Highlighted Parent Item in Dropdown Menus
- jPlayer - A jQuery HTML5 Audio & Video Library
- Success & Happiness
- Running Your Own Guerrilla Usability Testing
- Sass Source Maps and Google DevTools
- Suppress Sass Source Maps When Generating CSS
- Beyond CodePen
September 2014
- Minify Your Javascript Like CodeKit with UglifyJS 2
- Four Questions for Developer, Sam Soffes
- Spectral by jxnblk
- 10 Commandments of Transit by Facebook's Analog Research Lab
- Responsive Line Breaks in CSS
- Oh My ZSH Not Updating
- Git Submodules: How to Deal with a Project within a Project
- Changing My Mind About Responsive Web Design
- Speed up Ruby gem install
- An Intro to Node.js and Express
- Show Dotfiles in Finder on the Mac
August 2014
- Oh-My-ZSH Cheatsheet
- Open Current Directoy in a New Tab in ZSH in the Mac Terminal
- Open Sublime Text from the Mac Terminal
- Program and Run Javascript from your iPad
- Jekyll Layout Build Warnings
- Font Icon Not Rendering, Check text-transform
- Location of Core Data's SQLite Database
- Produce More Than You Consume
July 2014
- Hello, NC State
- The Overlooked Features of CodePen
- Launch MacVim from the Mac OS X Terminal
- How Design Works
- Front-End Architecture
- Kelli Anderson on The Great Discontent
- Custom Shapes in iOS
June 2014
- Learning Vim
- Sweet Spot
- A Simple Dasherize Method in Objective-C
- Ribbon
- I'm A Flake and So Are You
- Multiline Nested Comments in Swift
- Reflections on My First Father's Day
- 4 Things That Makes CodePen Awesome
- Ember.js' shorter {{link-to}} helper syntax
- Real-Time iOS App Recording Coming in OS X Yosemite
- Space Underneath img Fix
May 2014
- Looping through many-to-many Relationships in Ember.js
- I'm having a good day because I'm making dollars
- Pixelmator 3.2
- Source Serif Pro
- Native Haus
- Stop Using Corner Banners
April 2014
March 2014
- Learn HTML and CSS: Live Webinar
- Repost: Met Brad Bird
- What I Learned From Selling My Business For $1
February 2014
December 2013
November 2013
October 2013
September 2013
August 2013
- Mein Sohn, sei glücklich
- Have Fun
- Three Factors in Achieving Dreams
- Wir lieben dich Sohn
- Mein Sohn
- Great Year 2013