Separating Work & Life

This is something we know, we hear about, we’re reminded about, but we rarely do. After all, contrary to stereotype, we’re the hard working millennial who don’t know how to quit.

One of the many parts of preventing chronic burn out is to properly separate work and life, with no exceptions. For me personally, I found the most impactful method to separating the two was by untethering my devices from each other and silencing almost all notifications.

I’m not going to go into the obvious here, but reading work emails during dinner, takes you away from life around you. Getting a text message notification from a friend while you’re in the middle of writing an email to your manager takes you away from work. Each app on your respective device is prying for your attention with notifications of messages, new posts, upgrades, releases, etc. It’s distracting and disruptive, it weighs on you mentally to respond sooner than later or take action.

After reading the article linked to above, I realized yes, I must have something like chronic burn out. I needed to start behaviors to correct the course I’ve been on for a decade now. The biggest impact for me was having two devices, for two different purposes: one for work, one for life. With little to no conflicting overlap. This physically forces me to ‘quit’ when I don’t know how to myself.

To separate like this, I needed to think of “work” as more than my 9-5, I need to think of work as my “career” since in our generation, building our personal “brand” and a social presence (like this blog post, or contributing to open source) is part of the expectations in our careers. I’ve also bundled in household “admin” tasks like bills and research (for things like purchasing appliances) into “work”. It’s admin work and it’s actually ‘work’, to do it effectively you need concentration and alone time (things life doesn’t usually offer).

Separating devices was a bit of a hurtle to undo as over the last 5 or so years, Apple has designed their ecosystem to be seamless between devices. Everything on all devices. This was a selling feature and I ate this up with a spoon and loved it! SMS Text messages on my macbook? Sold! Check out the homepage of any modern app, their first selling feature is it works both on smart watches and desktop. This was and is such a mistake, and only now am I realizing how problematic and damaging this meshing of work and life is.

To stop this, I first made a clear list of what goes where:

Laptop (career)

  • Things (todos)
  • Bear (notes)
  • Slack
  • Email
  • Documents
  • Firefox
  • Other work Apps

Phone (life)

  • Reminders (hubbydo, grocery lists)
  • Notes.app (life notes)
  • Messages / Texts
  • Photos
  • Safari
  • Email
  • Slack

Each device gets it’s a seperate app for the same thing. I used to belive in having “everything in one place”, but having two Todo list apps, one for each device, has been a game changer.

I then visited each devices iCloud settings I disabled almost all of the device sync settings (Contacts being the one exception).

I took this steps further by disabling all notifications for both devices, turning each apps notifications to “none”. I then did a second pass, turning on things that were truly actionable or urgent: Calendar events (for important calendars only), Phone Calls from family members, Slack messages on desktop. That’s it. No pings for new emails, no pings for updates, releases, new features, new posts, no text messages during work. Everything besides direct real-time requests that require immediate action, is silent and asynchronous. I check my emails when I want to, not when my devices tells me to.

This is contrary to what these devices offer us, but this is how life was only like a decade ago, and honestly, it’s so much better. This makes these rules in my life so much more manageable:

  • When I’m working, I’m working.
  • When I’m “offline”, I’m living my life.
  • The only notification I receive are related to what I’m currently doing, and are actually critically important, and actually require immediate action.

Since implementing this, my phone is now terribly boring, I rarely pick it up – but now I’m not thinking about work first thing in the morning during breakfast like I used to. I’m not brushing my teeth at night mentally preparing my next-steps for an email I just received. This change makes me feel so much more energized and refreshment for my work day, and allows me to be more present and enjoy small things in life a little more.

This isn’t a miracle ‘fix all’ post that suggests if you do this all problems disappear – this is just something that worked for me and has me feeling healthier, balanced, and more productive at work.

Tabbing Through Links in FireFox

I migrated from Chrome to Firefox in a support of Open Source software and because all other browsers have caught up to Chrome in terms of quality, performance, tools, and integrations.

Nothing much has been different except by default you cannot tab through links on a webpage! I’m a huge proponent of using my mouse/trackpad as little as possible, so this was a deal breaker for me.

Luckily, there’s a hidden setting in Firefox, visit about:config in the address bar, right click to “Add New » Integer”, create a key of accessibility.tabfocus and set the value to 7.

You should now be able to tab through all your links, which saves so much time on Google and other straight forward sites.


While reviewing this, you can also adjust how the TAB key behaves in dialog boxes. Checkout System Preferences » Keyboard » Shortcuts » Full Keyboard Access.

My Journey as a WordPress.com VIP Intern

For a decade I’ve been building WordPress websites, as both a freelancer and at a digital marketing agency. In that time I had built nearly 200 custom WordPress themes and plugins for just as many sites. I had worked alone (on a small team of marketers, but never with other developers). I was self taught, self driven, and was a guru of my stack, my platform, and a master to the 100 or so sites that were actively hosted with us. I created intricate solutions to complex problems. I knew the clients, I knew the code, I always had a fix and solution to any issue. I saw problems before they occurred. I got paid well enough, was constantly busy, worked remotely, was good friends with the owner, had benefits, bonus’s, flexible hours, and on and on. For a long time, I had a very comfortable and stable life.

However, in early 2018 a sort of perfect storm started brewing:

  • My wife and I started planning our future with more children, a bigger house, more property, a second car, savings, retirement planning, investments, college savings. We needed much more than my current employer could possibly provide.
  • I was growing tired of working alone, I wanted to be in a team. I pushed myself to go outside of my comfort zone to my first WordPress Meetup, and a month later at the next one, I was giving my first ever presentation on Gutenberg.
  • I had begun answering developer questions on Stack Exchange, it became my hobby, my passion. I was enjoying it more than building sites, solving the little problems developers and talking with them was the best part of my work day.
  • The agency I worked for was having some legal turbulence which created some doubts in my long term future there.
  • I was getting into my late 20s, nervous about my growth and skills getting stagnant in the industry. I worried I would be designing and building small business websites for another decade, until I became low hanging fruit replaced by the next generation of WYSIWYG builders.

This combo of factors, mixed with encouragement from employees of Automattic from the Meetups, lead to me looking for new opportunities.

Now, jumping ships may be normal to some people, but this was a big deal for me, I never saw myself anywhere else, doing anything else. I had worked at the same place for 8 years, done the same thing for 10+ years. After three months of internal debate, some interviews at various agencies, and preparing myself, my portfolio, and my resume, I decided to apply to WordPress.com VIP as a Developer. I chose this role as it focused around the maintaining of websites and solving developer problems, which is “my thing“.

After a nerve-wrecking interview, I was turned down and given suggestions to improve some specific areas and re-apply in a years time. I was devastated, but remained motivated. So, like in any good story, I pushed on through adversary and I self-boot-camped my skills, doubled down on learning, gave myself sort of a years course on what to learn and when.

However, to my surprise, a few months later I was approached and made aware of an opening in the VIP Internship program. It was an honour to even be remembered or considered! My wife and I had to weigh the options though: stay at my job where employment and perks were known, or, take a chance on an internship which offered no benefits, no vacation, and would only last 4 – 12 months with no guarantee of employment. At this time, we had a new mortgage, a one year old daughter. A lot to think about. After a day of deliberation, it was clear to us that being part of WordPress.com VIP and Automattic would be the best move for my career, my happiness, and our future.

With a heavy heart I quit my job. Four months in now I know that joining the VIP Internship Mentorship program was the best decision I have ever made in my life.


The first month of the mentorship was a blur. In the first half hour or so of the movie Goodfellas, there’s a scene were Henry walks Karen through the back door of an exclusive club. They go through a maze of loud and exciting rooms and activities, start greeting and exchanging with people, then a table and lamp are brought to them as they approach the performer on stage, giving them the best seat in the house. This is what my first month was like, I felt like Karen. Here I was, accustom to building small business websites, and suddenly I’m greeted by an incredible team, given all these tools and access, then put to work on websites for huge companies. I was so excited and dizzy with all the knowledge I had to take in, all the things I had to sort out and work on. I was a big fish that just left my small pond and found myself in an incredible lake.

I quickly confirmed my suspicion that Automattic / WordPress.com VIP was an amazing place to work. It is truly wonderful how the distributed company works so efficiently and well. The team demonstrated themselves as being the hardest working, most dedicated, passionate, and helpful group of people I’ve ever had the pleasure of working with. Working along side them has been an honour and a privilege. Everyone shares the same unified goals and visions and helps each other to get there as a single entity. I was where I needed to be, where I wanted to be.

After the haze of the first month cleared, my second and third months were, in contrast, hectic, and the most mentally exhausting span of my life. I spent my days both learning best practices, as well as handling website performance issues. I was giving 100% every day, and was totally wiped by 5pm. It was hard, really hard, but I knew this was what I signed up for. This program isn’t a shallow-end of the pool deal. It is a program for those who want to grow, and grow fast. Again, this is a big lake, and you are thrown into it – but in the best possible way.

The learning encompassed many factors, it wasn’t just raw technical info. I’ve learned how to work in a strong team, how to handle big clients, how to use sustainable workflows, communicate more effectively, document properly, and how to provide true white glove service. For the technical side, I learned how to build WordPress sites for maintainability, security, performance, and for scale.

As I hit the fourth month mark, suddenly everything “clicked” and the mayhem slowed down. I was able to keep on top of things, able to filter out irrelevant info. I knew my role, my coworkers, my purpose, how to start charting my own course. I felt more like a part of the team and started acting more like it. I found my footing.


In a short fraction of a year, I can now confidently audit code and point out security and performance concerns (the type of code that I used to write!). I feel the mentorship program has sanded off all of my rough edges, shown me a clear path to being a VIP level Developer, and has overall turned me into a better developer and person. It has upgraded me.

With my first term complete, moving forward I’ve decided to continue my mentorship for another four months. I will be focused on helping new mentees acclimate to the program, while further improving and refining my skills. Once ready, I plan on applying for the VIP Developer role. Working for VIP and Automattic is my dream job, and I can’t wait to call it home and my coworkers family.

Do great things: Apply to VIP or the mentorship program today!

Alfred 3 – Tips & Tricks To Becoming A Better Power User

This is not a list of “the top 5 workflows for Alfred” this is instead tips and tricks to become a better Alfred user. It’s easy to setup Alfred and get some really cool workflows going, but it’s just as easy to forget about Alfred and it’s potential in a week or two.

However, as you know by the desire to install Alfred initially, you’re aware of the benefits of being a power user and know it’s very worth while. The seconds and minutes shaved off of your day will surely result in earlier retirement!

Anyways, here’s my recommendations on becoming a better power user with Alfred, please note you’ll need the Powerpack for most of these tips.


Use Bookmarks & Custom Searches

If you’re using your browsers Address Bar or Bookmark Bar, you are not using Alfred right! Getting to any website, or searching on the internet should always all be done via Alfred.

  • For searching, default Alfred behaviour will offer to search your query on the web using their “Fallback Results” feature, if it was unable to find results for anything else. So, when you’re wondering “How many eyes does a spider have”, just ask Alfred. In Settings > Features > Web Search, you can add any website that uses search into a custom Alfred search. A good example is caniuse.com, instead of going to their site and using their search bar, I’ve setup a custom search and now a simple Alfred command of caniuse {query} searches the website for me. You can then add these any of these searches into the “Setup fallback search” option in Features  > Default Results. I have about 10 of these custom searches and I use all of them many times a day, think about the sites you search in and create these custom searches!
  • For typing a website, default Alfred behaviour recognizes that you’ve entered a domain or a URI and it will offer to launch the website! It’s that easy. For example, in Alfred type the command wordpress.org. So when you’re looking to launch a site, don’t think about your browser, go to Alfred instead.
  • Bookmarks, this imho, is the best feature to improve your Alfred experience. Alfred can index all your bookmarks and you can quickly reference them by title and url. This is great for tools you use frequently. For example I use regex101.com several times a week, I used to search it in google or the address bar to get to it. Instead with Alfred, simply typing rege in gathers that result right away as it’s a bookmark. I highly suggest taking the time to organize your bookmarks, making them well organized, and remind yourself that if you’re using the address bar or bookmark bar, you should be doing it with Alfred. I’ve got about 150 sites bookmarked, and they’re all available within a few characters through Alfred (The TITLEs of bookmarks can sometimes be long, I always edit the bookmark to make it short and sweet, and also include any keywords or typos/alternate-spelling that I’ll likely need). I don’t use bookmarks traditionally, I instead think of them now as “Sites to Add to Alfred”.

To enforce these rule, I’ve set the homepage of my browser to be a local .html page that simply says “Use Alfred” in big text.  I’ve also made by bookmark bar hidden by default, and all bookmarks are deeply nested (hard to navigate via bookmark ui) and then everything is nested in a folder called “Use Alfred”. I really does work to break habits.

Use Alfred For Emojis

The snippet and text expanding options on Alfred are enormous. They are amazing second savers – but they are also vary so greatly from user to user. If you find yourself typing the same things over and over, or looking up the same things over and over, you probably should take the time and really configure your snippets and text expanding!

I personally had a hard time starting out with the idea of text expanding, however after installing joelcalifa.com/blog/alfred-emoji-snippet-pack/ I found it easy to get into the habit of using Alfred for text expanding!

Keep in mind that if you turn on the ‘automatic text expanding’ feature, you can selectively opt snippets out of being auto expanded. It is not all or nothing, the choice is in your hands.

Use Text Expansion instead of Bash Alias’

I used to have a lengthy ~/.bash_alias file, filled with many minute savers. Lengthy commands with impossible-to-remeber flags and args. I was always running into a brick wall though when on a different server or advicing a colleague: I’d need to use or share a command, but I was leaning so heavily on my aliases that I had long forgotten the actual command. I’d often have to open my ~/.bash_alias file to just look up commands. Keeping everything in Alfred was the simple solution. All of my aliases commands are now auto expanded, allowing for use on any server or for any app.

The added bonus is when you’re setting up a new machine, everything’s already in Alfred! You do not have to add in all your aliases. This is also true for anyone using a Code Editor with a snippet library – keeping everything in Alfred ensures use among all apps and an easier transitions when going onto a new machines!

‘If It Takes More Than One Step’ Rule

If you’re taking more than one step to do get into or start doing anything, you’re probably not optimizing Alfred properly. Take notice of yourself, are you clicking the dock icon for Chrome, clicking into the Google Search field, and typing? Besides the obvious lengthy workflows, these often overlooked tiny three or two step workflows that you may not think need improving. Always try to improve and reduce!

Go Mouseless

Alfred is about being a true power user – being a true power user doesn’t start and stop at using Alfred, you may never fully understand the power of Alfred if you’re still leaving your keyboard for the mouse after you’ve arrived at your App.

For the Apps you’re using every day, really take the time to print off the shortcuts and learn them! Start with the browser, learn to close and jump between tabs. Make sure you know all your macOS commands, like taking between Apps, getting to the Desktop, and hiding or quitting windows. Head on to apps like Slack and use the quick jump feature. Learning to ditch the mouse is tough, but dedicating time to it, and focusing on staying on the keyboard improves your workflow immensely.

Ditch the Dock & Finder

The dock is a waste of screen real estate and useless if you’ve got the power of Alfred, ditch it! If you’ve got the “hide dock” feature on, but still use it, trick yourself: move the dock to instead hide on the right or left, try to forget about it all together, train yourself not to use it by tricking yourself of its location. If you’re used to dragging files into your App, remember that’s the GUI “shortcut” for that import action – there are other ways to accomplish an App receiving files.

Alfred is incredible at navigating Finder. If you don’t believe me, just type the ~ character. You’re there. You’re now browsing Finder with your keyboard. This is a beautiful little way to use Finder without Finder. I often use this method to grab the path of what I’m after, then throw a command in the front of it. For example, I’ll type ~ then navigate to /project/wtv/, I’ll then hit cmd + left then type >code which I’ve got to open that folder in VS Code.

Terminal via Alfred

As touched upon above, start any Alfred command with > and you’ll be talkin’ to your Terminal.app (if you’re like everyone else using Hyper, there’s ways around that). This is an often overlooked feature, but it has great powers for your workflow. No matter what you’re doing in your terminal, you’ll always start with one command, so that first command combines the action of opening the Terminal.

Like I said, I often will type ~ to start using Finder and gather the path of my current project. I can then jump to the beginning of my path within Alfred, and prefix it with >code this too will open my project in VS Code. But there are obviously many implications of this workflow.

Often commands I run are single or two commands. Move this here and delete that. Open this with this and set that. Run this on that with that. And so on. For these small needs, I’ll combine the commands with && and end my Alfred command with && exit. This runs the command from Alfred and closes my Hyper terminal window. For example I’ll often do this all from Alfred: >cd ~/projects/wtv/ && npm install && exit

You can imagine the power of this for getting a project started with git clone. ?

Use The Clipboard History

There’s nothing special to note here. Just use it! Get it into your workflow and don’t forget about it. It’s amazing when you start to learn how to carry more than one piece of info from one app to another without switching back and forth.

Always Improve

Dedicating time to improving is a great way to learn! I used to dedicate my Fridays to being a little more “experimental” with my workflows, I often dubbed it on the calendar as “GoMouselessFriday” and would literally put the mouse far out of reach, in an uncomfortable location, forcing myself to use the keyboard. This seems self destructive, but it forces you to break muscle memory and old habits and makes your brain work: “I bet there’s a keyboard short cut to do this.”

Alfred has a wonderful Usage tab in its settings page. Make sure you’re always improving and that graph is always going up!

Browse The Alfred Settings. Repeat.

It’s easy to think, “Okay, I’m good at Alfred now” because you’re using it a lot. I’ve thought that. However, remember you’re always a student, there’s always something to learn on or improve on. Take a peak in the settings page! Browse every tab, every panel, even the ones you think you’re the master of. Read each option description! This may seem like a waste of time, but some very powerful features of Alfred are often just one checkbox on or off.

Furthermore, as you master some features, there’s often variants of that feature which you may not own known about or understood the context of when originally setting up! Or customizations to a feature that you now realize you can optimize.

At least once a month, take a peak at the settings and see where you can improve or which features you’re not fully using.

WordPress Pass PHP Variable and Values to JS Theme or Plugin

The beautiful function wp_localize_script() was built for l11n, however its found as a method for carrying over server-side values into client-side JS.

Your values are now available in your .js file:

console.dir(my_theme_data);

Currently using this in a React theme I’m building for WordPress.

This can also be done with something like:

Sticky Buttons Within A Section

Common practices for sticking elements weren’t working for me: position: sticky and stickybits. I didn’t want to use jQuery either, normally I’d reach to use waypoints.inview. So I wrote my own in vanilla Javascript.

The nice part is it was much easier to do a sticky bottom. Scroll to element, bottom of viewport hits bottom of to-be-stuck element, and carries it down until the end of its parent element.

https://codepen.io/davidsword/pen/OEZMay

This is a great feature for section-specific call to actions.