You should be far more concerned with your current trajectory than with your current results.James Clear, Atomic Habits
For the longest time music was my source of productivity. Music can quickly get me into “the zone” when I’m working and enables me to get a lot of tasks completed in a short amount of time. I definitely still play music to get into this zone but over the last few years I’ve enjoyed listening to different podcasts while I work and even while doing tasks around the house.
I’ve surrounded myself with productivity, business, and developer community podcasts with different reasons behind each. Here are some of those podcasts.
Back to Work
From my all-time favorite podcast Back to Work, Dan and Merlin have a discussion series on David Allen’s Getting Things Done. I’ve embedded and linked to the episodes below. Having read David Allen’s — Getting Things Done: The Art of Stress-Free Productivity, these episodes are a great overview and reminder of how the process should be.
I’ve been listening to Back to Work since it’s first episode in 2011. It has always been entertaining, relatable to tech nerds and parents, and full of great advice. Dan and Merlin are a great duo that I look forward to listening to each week.
The Tim Ferris Show
Tim Ferris needs no introduction. I’ve been a follower of his stuff for a long time and although I don’t listen to every single podcast episode he puts out, there are a handful that I listen to over and over again. Here are some of those episodes.
I ran across Matt D’Avella through a suggested video on YouTube and I’ve been listening to his podcast—The Ground Up Show—for the past month or so. He is a filmmaker and the quality of both his audio and video podcast is very high which is really important to me. What I find myself doing is listening to the audio version of his podcast as well as the video version. His interview with Nate Green is what drew me in and I’ve been listening through his backlog of episodes. The content is so good I listen to episodes over and over again!
I’ve added a few of my favorite episodes below as well as a short about minimalism I enjoy watching.
Syntax – Tasty Web Development Treats
I don’t remember how I cam across the Developer Tea podcast but it’s one I started listening to this year. The episodes are usually pretty short and easy to digest. It’s a very calming podcast and I like the way Jonathan Cutrell breaks things down and makes you think differently about things.
Akimbo: A Podcast from Seth Godin
If you run a business, are a freelancer, or are an aspiring entrepreneur and haven’t added Seth Godin to your reading list, you should. He started this podcast at the beginning of the year and here are some of my favorite episodes.
What are you listening to?
A lot of the episodes here changed the way I think about things and really affected me in positive ways. What are you listening to that has made similar changes in you?
You don't find the time to do things, you make the time to do things.Debbie Millman
People love the feeling of being motivated. They don’t like putting in the work to do something about the feeling.
Every great developer you know got there by solving problems they were unqualified to solve until they actually did it.
When I was freelancing full-time, I imagined what would have been helpful for me to find more work, to connect with other freelancers, and to help others getting started or struggling. I was frustrated with what was already available, especially when it came to finding work. So I compiled what I liked and didn’t like, wrote out a plan, and got to work.
Why am I building Indie Experts?
As a freelancer I would often get asked if I knew someone who did X or Y, if I could suggest someone who would be good for a specific project and is looking for work. Other times I would get an inquiry from someone looking to work with me but I was busy for the next month and couldn’t take it on, but I also didn’t have a person to pass them off to that could take on the project. And there were also times where work dried up and I felt like I was scrambling to find something but didn’t have anywhere to turn for help. I think these are pretty common situations for every freelancer out there and is only a part of why I’m building Indie Experts.
What’s the plan?
I’ve got a lot planned out already and the more I talk about it the more ideas come up. I’ve got features planned out for the future as well as possible monetization options to sustain it. But right now I believe the MVP should be a directory of profiles, the ability to search it, and a place for people to set their availability and how to contact them. This alone sounds very basic and I tend to think “it needs to be more”, but there needs to be people on the site in order to build a community. This directory of profiles and the initial newsletter signup should be a decent gauge of interest at the start.
In the future I’d like to improve on profiles a lot to include more details about the individual, what they’ve worked on, etc. I also believe adding the ability to endorse others will be a very important part of the site, especially to solve the problem of not knowing who to pass inquiries to. Other ideas include a reddit-esque discussion board, job listing board (no bidding!), teams for grouping together individuals that work well together for larger projects, and a listing/profiles for companies that work with freelancers.
The biggest challenge for me is thinking beyond the web industry. I’m not building this just for people who work in the web industry. I’m building this for any self-employed person. The thinking behind each piece needs to be useful and beneficial to everyone.
I’ve got a good plan written up right now and I’m executing it. I don’t know how it will grow or how users will mold it but I’m excited and believe it will be incredibly useful! If you’re interested and self-employed you can sign up for the newsletter. I’ll be publishing updates there, looking for feedback, and giving initial access when it’s ready.
Update June 28th, 2018: Indie Experts has launched!
“Success is liking yourself, liking what you do, and liking how you do it.”
The journeyman learns to solve bigger problems by solving more problems at once. The master learns to solve even bigger problems than that by solving fewer problems at once.
Spend 80% of your time on low-risk/reasonable-payoff work. Spend 15% of your time on related high-risk/high-payoff work. Spend 5% of your time on things that tickle you, regardless of payoff. Teach the next generation to do your 80% job. By the time someone is ready to take over, one of your 15% experiments (or, less frequently, one of your 5% experiments) will have paid off and will become your new 80%. Repeat.
Continuing on from the same project where I needed to highlight a parent page in a WordPress menu when on a child page, featured images is another place where I wanted some custom functionality. This custom functionality I’m about to share wasn’t necessarily a requirement but I wanted to make it as simple as possible for the client to edit the site easily while still maintaining the design the designer had created.
As I mentioned in the last post the site was designed to have a handful of top-level pages (parents) with an undefined number of related child pages. This site also uses the static front page option in WordPress. The site’s layout was a top header navbar, then below that a featured image with text overlaid, then the page content below that.
What I wanted to do to implement the featured image was to build in a fallback so that we always have a featured image displayed behind the overlaid text. The other option would be to have a different layout where the featured image is not displayed and the page content contains the overlaid text above the actual page content. The fallback is a bit more graceful so I decided to do that.
Below is my solution for this fallback. First we want to see if the current page has a
post_thumbnail (which is our featured image). If the current page returns a
post_thumbnail we want to use that. The client should be able to specify an image for any page they want. Now if we don’t find a
post_thumbnail on the current page I want to check the topmost parent page for it. This would allow the client to set a featured image for an entire group of child pages. And finally, if a
post_thumbnail was not returned from the topmost parent page we would then check the defined static front page and pull it from there.
More simply the fallback for the
post_thumbnail would be: Child Page -> Parent Page -> Front Page.
It’s unlikely we wouldn’t find a
post_thumbnail like this but we could return a hard-coded default to account for that possibility if we didn’t find one on the front page.
Menus in WordPress are a really simple and easy way to manage various navigation bars in a theme.
wp_nav_menu() does a lot of the work automatically and includes a number of CSS classes for styling. Highlighting the current page is especially useful using
There was one issue I recently ran into though. In order for the top-level page to be highlighted when a sub-page has been selected, you must have the sub-pages added into the navigation. This makes sense but for a recent project I wanted to make it easy for the client to add sub-pages to the site without having to also add the pages to the WordPress navigation menu for parent-menu highlighting. I wanted top-level pages to have the
.current-menu-ancestor to be added regardless if it was in the a sub-menu.
Below is a solution for this problem. With the way I setup my project was a handful of parent pages with an undefined number of child pages. I then added the parent pages to the Menu. We didn’t want a dropdown menu.
Here we add a filter to the classes generated during the generation of the menu. First we check if we’re on a page with
is_page(), if not we don’t filter anything. If we are on a page we access the current post from the global
$post variable and look for the topmost parent, if we don’t find one the current post is not a child and we don’t filter anything.
If we’re on a page and we found a topmost parent we then check if the current menu
$item being generated matches the topmost parent we found. If so we add the
.current-menu-ancestor CSS class.
Such a simple solution which makes the editing experience easier for the client when working with a custom theme.