Monthly Archives: September 2013

30 Days of Writing – Following Up

September comes to a close today and, with it, my 30 days of writing experiment ends. I think now is as good a time as any to take a look back and see how my experiment unfolded.

How Much Did I Write?

In the last 30 days I’ve published 23 posts on this site. Prior to that, I’d published 5 total starting in February of this year. I also published 4 posts on my wife and my family site. Including this retrospective post, I’ll have published 28 posts in 30 days (a little under 1 per day) which is close to my goal.

Some of the posts were longer than others, but I think everything I published is useful in some way to a potential visitor. I don’t know exactly how many words I wrote in the last month because the variance in word count between posts was so high. I had some posts as short as 300 words and some as long as 2,500 words.

What Did I Write About?

Sticking with my original idea for this experiment, most of my posts were business / freelance related. I did write a few technical posts, but the ratio of business to technical posts was almost 4:1.

I found myself writing about my experiences and how I handle different situations more than anything else. I wrote in the first person most of the time while trying to relay a general lesson from what I’ve learned in the past. I’m not sure if I’m comfortable with this style of writing, but I like it better than attempting to address a general “you” when publishing content.

There were some posts in the past 30 days that I am really proud to have written. I think they provide a lot of value to other or I got a lot of personal satisfaction out of sharing the information. Here’s my top five:

  1. My Freelance Story – I love sharing my experiences and I think my story shows that anyone, even those with limited experience, can be successful with a little bit of hard work and luck
  2. Path to Freelance Success: Part 1 and Part 2 – When I presented this to the team I was working with in Sayulita, I knew I’d eventually want to share it with others and I’m glad I finally did
  3. Easy Freelance Financials – It took me a while to figure out how to approach money and my freelance business and I think this post (along with the accompanying Excel Workbook) will help people who are struggling like I was
  4. How to Write a Bug Report – I feel like this post is one that I can put in front of my clients (and others can use as a reference) in order to improve my relationships and business practices
  5. Building the Multiple Featured Images Plugin – I think this is some of the best technical writing I’ve ever done as I took a small enough problem that I could walk through it step by step without skipping much

There were some posts that I wasn’t happy with as I felt I could have gone a lot deeper and provided a bit more guidance. Of the posts I wrote in the last 30 days, I feel like Google AdWords for Freelancers is the one that could have been improved the most by diving deeper into the subject. Perhaps I’ll follow up in the future with some real life examples and a video walkthrough.

Did I Accomplish What I Wanted?

As a reminder, there were three main reasons I did this experiment:

  1. Develop a public voice
  2. Teach others from my experiences
  3. Build a public profile

I feel pretty strongly that I made big strides forward with numbers 1 and 2. I feel more comfortable writing and publishing now than I did before the experiment. I feel like I have a more coherent writing style and have started to develop a public writing voice.

On the second point, I know I helped at least one person because he said so. I can’t really express how grateful I was for that comment because it really buoyed my spirits as I was nearing the end of the experiment.

I’m not sure if I improved my public profile as much as I could have. I didn’t really promote my posts beyond tweeting them to my followers and posting them on Facebook. My social networks are relatively small (especially for someone in tech) so the exposure my content got was pretty minimal. At this point, I’m OK with that and have ideas about how to improve in the future.

What Did I Learn?

Most importantly, I learned that I can still write. I was worried that my prose would be incoherent and schizophrenic because I spend so much time communicating in chunks with my clients rather than writing long form text. That wasn’t the case and I was relieved.

I also found that writing every day is hard, especially when you’re trying to teach or be insightful in some way. There’s multiple steps to the process. First, I have to have a good idea for something to write about and the knowledge to share a meaningful lesson. Then, I write an outline for the post. At this point, I evaluate whether the topic was something I could do justice to in one day. If I can, I move forward on the post. If not, I take a step back and think of something else. Finally, I write, read, edit, read, edit, read, and (finally) publish the post.

I spent a lot more time writing than I expected to. I thought I’d be spending 30-45 minutes on each post. While that was true for a lot of them, some posts took as long as 3-4 hours. I found it hard to gauge which posts would take that much time. Sometimes I’d be in the flow and write a long post with minimal effort and sometimes I’d have to fight to say what I knew I wanted to say.

Finally, I learned that I love writing and teaching and helping people even more than I thought I did. Every day when I published a post, I felt accomplished and really felt like I had done something meaningful. It is and will continue to be a great way to raise my spirits.

What Now?

I’ll still be posting on this blog. My goal for the rest of the year is to write 2 meaningful posts per week on this site. I will most likely be publishing on Tuesday and Friday.

In addition, I’ve started working on an outline and promotional materials for an ebook I’m going to be writing on a subject I’m an expert in. Most of my writing time will be focused on the ebook for the next couple of months as I work to bring my joy of teaching to another arena (and hopefully make a little money doing so).

Finally, I’m going to look for other things that I can commit to spending 30 days doing. I’ve found that the consistent practice, especially on days where I didn’t think I’d have time, has made me a better writer. I’m sure there are a lot of other things I can apply this model to and I’ll be working to discover what’s next.

If you’re interested in producing content and establishing a writing voice, I urge you to take on this challenge yourself. As always, I’m happy to answer any questions in the comments and I always love feedback and criticism.

How to Pass on a Project

Sometimes a project will make its way into your pipeline that you either don’t think you can handle or don’t want to take on. There are a lot of situations where that might be the case:

  • It isn’t the right size for you
  • It requires skills that you don’t currently possess and can’t easily acquire
  • The timeline is too tight given your current schedule
  • You have a weird feeling about the client
  • You don’t think you can work within the process the client requires

The question is, what do you do in these situations? You could tell the client you’re not interested and leave it at that, but I find that being a helpful resource in a situation like this can lead to new opportunities in the future. How do you do that?

Build a Reliable and Trustworthy Network

You should know other freelancer and agencies from industry events, online chats, and other networking opportunities. Ideally, the freelancers you know should have varied skill sets and the ability to take on projects of various sizes. For example, you might know a designer who specializes in large-scale corporate websites (and does a bit of print work, as well) and another who almost exclusively performs logo and identify work.

Do your best to vet your network so you can feel confident referring prospects to them. Ideally you’ll have worked with a contact in the past so you have first-hand knowledge of the quality of their end-product and process. Don’t be afraid to ask people to send you work samples so you can refer them work. Very few people will refuse a proposition like that.

Explain Why You’re Not a Fit

When referring a prospect to another freelancer, explain to them why you don’t think you’re a fit for their project. I’ve found being tactful and direct to be the best route to take. Something like this could work:

Ryan, I’d love to work with you on your project as it is a good fit for my skill set and it seems like it could be a fun one. Unfortunately, I have other projects scheduled for the time leading up to your specified launch date.

By explaining why you can’t work on a project, you leave the window open for the prospect to change the thing that is preventing you from working together. For example, I’ve had people change launch dates to something more amenable to my schedule in order to work with me. If I hadn’t let them know what was standing in the way, they wouldn’t have been able to do that.

Refer with Details

After explaining why you can’t work on a project, choose a couple people from your network who you think might be a good fit for it and send their contact details to the prospect. In addition, provide some information about why you think each person would help make the project successful and (ideally) a little bit of context about them. That context could include past projects, collaborative work experience, or anything else you think would help the prospect make a decision. Remember, you’re trying to be helpful.

Follow Up

I don’t always do this, but on projects that I really wish I could have worked on, I’ll follow up with the prospect down the road to see how things went. Sometimes they’ll be working with one of the people who I referred them to but as often as not they won’t have started yet. That gives me another chance to work with them and take on a project I was excited about.

General Guidelines

The most important thing to remember is that you should be helpful and courteous. Why? Because you’re a good person, that’s why. Also, if you help someone get what they need, they’ll be more likely to help you down the line. This could be a referral to you for a different project, an introduction to someone who could help you with your business, or advice of some sort.

I’m interested to know how other people pass on their projects. How do you go about referring work to other freelancers if you can’t or don’t want to work with the prospect?

How to Get the Attachment ID of the WordPress Header Image

Skip to the answer

I saw a question on Twitter today about getting the attachment ID for the header image set through the WordPress theme customization screen. I haven’t worked with that part of the WordPress API before, so I wasn’t exactly sure how to do it. I decided to find out so I could help another developer and, maybe, save myself some leg work down the road.

I started by activating the 2013 theme on my local WordPress install. I knew this theme uses the header image functionality, and figured it was probably a good place to start looking. After activating the theme, I uploaded a custom header image and inspected the frontend of the site with Chrome’s web inspector to see what kind of markup and styles are used to place the image in the header.

I was able to see the background image was set on an element with the class site-header. I did a text search on my local WordPress install and found a file inside the 2013 theme called custom-header.php (an obviously promising name). I perused that file and found a call to the function get_header_image. At this point, I knew I was getting close.

There were a couple of layers of abstraction, but I eventually found the get_theme_mods functionality. I threw the following line into my functions.php file so I could see what was returned from the function.

error_log(print_r(get_theme_mods(), true));

As a side note, I find this to be a simple and effective method of exploring the WordPress API. I noticed the data returned contained a key called header_image_data. The value for that key contained the information I needed, so it was just time to walk back up the hierarchy and figure out the best way to get the data. get_theme_mod delegates to get_theme_mods so I knew I had my answer.

All you have to do to get the attachment ID of the uploaded header image is call get_theme_mod('header_image_data'), check the result is an array, and that the attachment_id key is set. If it is, that’s your answer.

$data = get_theme_mod('header_image_data');

$attachment_id = is_array($data) && isset($data['attachment_id']) ? $data['attachment_id'] : false;

if($attachment_id) {
	// Do something here
}

Signs You’re Not Actually on Vacation

I scheduled a sorely needed vacation for this week. I needed some down time from work and a little bit of a recharge. My vacation was supposed to start Sunday but I still don’t feel like I’ve really shutdown and am getting the rest and relaxation I need. Here are the things I’ve noticed that mean I haven’t started my vacation yet.

Still Working

Well, I was on Sunday. A project that was supposed to wrap two weeks ago needed some last minute support on Sunday and I was the only one who could provide it. That meant I had to sit down in front of my computer and work on my vacation. Ugh.

Checking Business Email

As a freelancer, email is my main communication channel. I get noticeably upset when I have a large amount of correspondence unread. Because of this, checking my email has become something of a compulsion: I check it first thing in the morning and then every chance I can throughout the day.

Because I’m not actually doing development work, this means I have tons of time to exercise this (admittedly terrible) habit. I haven’t gotten to the point where I’m not checking my email yet, but I’m close.

Thinking About the Last Project

I referenced above that I worked on a project while I was supposed to be vacationing. I thought that launching it would be the end of the line for that project, but I still find myself dwelling on things I could have done differently to make the project go smoother, deploy faster, or work better. After working on something for 8 months, I thought I would be able to get it out of my mind once it was live. I haven’t been able to do that yet.

Figuring Out New Projects

I have work lined up for when I come back – the projects are clearly specified and look like they’ll be a lot of fun. I shouldn’t have to think about them while I’m vacationing, but I still am. I’m anticipating how I’m going to make sure the new projects get done on time and on budget.

I really need to take a step back and realize there is time to take care of the new stuff when it arrives (better planning has ensured that) and enjoy my vacation while it is here.

What About You?

I’m sure I’m not alone in my vacation failure. How do you deal with vacationing as a freelancer?

Google AdWords for Freelancers

When I started freelancing I did not have a reliable lead generation channel. My website received almost no search traffic because it was relatively new and light on content. Job boards were a good source of leads, but it was a lot of work to convert those prospects into clients. I didn’t know what to do.

That’s when I decided to give Google AdWords a shot. I’d heard that people who clicked on AdWords ads were more likely to convert because they had intent. They are looking for a specific product or service and are more likely to convert than random web traffic. I was also enamored by the fact that the leads would be inbound, requiring less of my time to acquire. Rather than constantly looking at new jobs posted on job boards, I could spend an afternoon setting up a campaign and drip money into it as necessary.

Building Campaigns

I didn’t really know how to get started and I didn’t want to get stalled by analysis paralysis, so I sat down, thought about what services I offered, and tried to discover how people would search for those things. I also determined that I would just send traffic to my home page because it was already built and prominently featured a “Get In Touch!” form that would allow anyone to contact me easily.

Keywords

When I started thinking about what keywords I wanted to target, I knew that the keywords needed to be sufficiently narrow that they wouldn’t be ridiculously expensive to bid on. This means I targeted things like WordPress Plugin Developer instead of Developer or even WordPress Developer. Then, I determined that I would build two separate groups of keywords based on the following:

  • what I am (my role)
  • what I provide (delivered product)

Let’s look at some examples of those groups and the keywords I used.

Role Based Keywords

On any freelance project, my role can probably be described generally as Developer. For my AdWords campaigns, I restricted that to WordPress Developer. Since I do both frontend and backend development, I knew I could target both those roles as part of my keywords. Because I was doing narrow matching for my keyword, I knew I wanted to target things as specifically as possible to keep my cost down. Here’s some role-based keywords that I used:

  • Expert WordPress Plugin Developer
  • Best WordPress Plugin Developer
  • Custom WordPress Plugin Developer
  • Custom WordPress Theme Developer
  • Export Theme Developer

By looking at that list, you should get the picture. My list ended up being 60-70 role-based keywords long with variations on the basic concepts seen above.

Product Based Keywords

I didn’t want to generate keywords based on what I call myself, though, so I also built a list based on what I produce. In general, this boiled down to:

  • WordPress Theme
  • WordPress Plugin
  • WordPress Site

I added descriptive adjectives to each of those items and also generated very specific keywords from a list of previous projects I worked on that people might be searching for. If I already did it, people should be able to see.

Synonyms, Misspellings, and Equivalent Terms

Now that I had my main list built, I went through each item and thought of all the other ways that someone might search for that term. For example, someone looking for Custom WordPress Theme Developer might use the following equivalent keywords.

  • Custom WP Theme Developer
  • Custom Word Press Theme Developer
  • Custom WP Themer
  • Custom Word Press Themer

You get the picture. Grab your thesaurus, think of the different ways certain words in your keyphrases can be replaced, and keep expanding your list.

My Ads

The ads I created to show when someone searched for my keywords weren’t anything special. I didn’t do a lot of experimentation or research, I just thought about what someone would want to read and would be likely to click on if they were looking for someone with my skillset. Here’s what one of my ads read:

Amazing WP Developers

Hire the best {keyword:WP Developers} today.
Get a free quote within 24 hours.

As you can see, I’m interpolating the keyword the user searched for into the ad itself. I’m using a generic term for WordPress (WP) in the title because the term WordPress is trademarked and restricted from use. Finally, the last line clearly outlines the benefit of clicking on the ad. The searcher will be able to get a free quote with a short turnaround. Who wouldn’t want that?

Results

I was not disappointed by my foray into AdWords. The campaigns I ran were great for my business – I would turn them on for a few days, gather enough leads to nurture and convert into projects, turn the campaign off, and repeat. With a little bit of forethought and a reasonable converting landing page I was getting inquiries for more work than I could possibly handle. In terms of cost, I made back every dollar I spent on AdWords for a month as long as I landed a project that was at least my minimum project size.

Although the landscape is more competitive today than it was four years ago when I first used this technique, I still think a freelancer can be really successful using Google AdWords. I’m happy to answer any questions in the comments or speak more to my experience if anyone is interested!

The Mystery Bug that Communication Solved

I’ve been working on a project lately that was proceeding smoothly (for the most part) towards launch. I was working as part of a diverse team, some technical, some not, and we tested extensively on our staging environment. Everything was working great so we deployed to production to do our final testing.

We ended up running into a strange bug almost immediately – our payment processor couldn’t pass information it needed to back to our application. There was no way to tell what was happening because our server wasn’t even showing a connection from the payment processor so there was nothing to debug on our end. It was confounding. We redeployed our code to ensure that it was the same on both staging and production and copied all data from production to staging and the problem persisted.

Fortunately, we were working with a host who was committed to helping us solve our problems. We submitted a support ticket and I started searching for a reason and solution on my own.

After a copious amount of searching and iteration over pages and pages of Google search results, I finally found something that looked like it might be helpful. I immediately documented my findings in the support ticket and proposed some possible solutions on our host’s side. Based on my findings, our support tech was able to figure out the actual problem and suggest some solutions, which we pursued.

Over the course of 36 hours, the support tech and I passed probably four dozen messages back and forth. There is no way that I could have solved this without his help and there is no way that he would have gotten down the right path without my ridiculously verbose messages. In the end, this mystery bug wouldn’t have been solved without our ability to communicate and that is something that I’ve found to be true throughout my freelance career.

My Freelance Story

I’ve talked to a lot of entrepreneurs and I’m always fascinated by the varied experiences that lead a person to start a company. In particular, the freelancers I know have taken ridiculously distinct paths to their current positions. Since I find these things so interesting, I thought it would be fun to share my story.

Growing Up

My mother and father did a great job fostering my love of math, science, and other technical topics. They recognized I had an innate understanding of these things and wanted me to take advantage of my talents. I got Erector sets, Lincoln Logs, and K’Nex for every holiday and would spend hours designing and building things. I distinctly remember creating a pseudo-bionic claw out of K’Nex that would fit over my hand and do different things based on how I moved my fingers.

My father worked (and still works) in the automotive industry as an engineer of various sorts. Hearing about the kind of things he got to do, I knew I wanted to be an engineer. At the age of ten, I narrowed it down to to wanting to be an architectural engineer. My mind was set upon this path all through high school and into college.

The Rose-Hulman Institute of Technology

I enrolled at the Rose-Hulman Institute of Technology as a mechanical engineering major because I wanted to learn from the best. I loved it. The coursework was challenging, but I learned all about the way the world moves and works the way that it does. I acquired practical knowledge and got to do lots of fun things, including designing and building a small bridge truss to compete against my classmates’ designs.

The professors were great, everyone was bright, and I got to study things I was genuinely interested in.

General Electric

In the middle of my sophomore year, I applied for and was accepted as a co-op at General Electric’s Appliance Division. I moved to Louisville for six months and worked as part of the refrigeration team. Some of the work was interesting, but I’d say only 3-4 hours of the week were spent on any meaningful discovery or improvement. The rest was spent writing reports that no one read, attending meetings that were irrelevant at best and hostile at worst, and generally sitting around trying to look busy. I continually asked for more work and never received any. I either wasn’t trusted or there just wasn’t that much to do. It drove me crazy.

I spoke to my co-op supervisor about it and he said that’s just how the corporate game works. The manager of the department I worked in was obsessed with “butts in seats,” going so far as to accuse me of not being at work when he couldn’t reach me at my desk phone (which was broken) and I answered on my alternate number. How dysfunctional is that?

I was depressed – I talked to some other engineers and they confirmed that much of corporate engineering is making PowerPoint presentations and listening to others give them. That was not what I envisioned or wanted.

Changing Majors

I sat in my apartment in Louisville trying to figure out what to do. I knew that programming was important and that I could probably be good at it, so I taught myself how to tinker in PHP. After doing that for a couple of months, I decided to switch majors to Computer Science when I got back to Rose-Hulman. The course work was still challenging and I felt like I was crafting something new every single day. I was an artisan solving problems in context rather than a human calculator solving for x forces in y dimensions. I could tell after a couple of weeks that it would be a great fit. I was so excited!

Of course, I didn’t want to get caught in another corporate trap so I started investigating what the programming world was like. Much to my chagrin, I saw that a lot of the stories held the same kind of soul-crushing narrative that my experience at GE had elicited. There were other options, though. I found you could be a programming consultant, work over the internet, and make a great living. I was intrigued and decided to pursue this.

My First Gigs

During my junior year of college, I started investigating what it would take to go down the path that I wanted. It started by trolling job boards (as I outlined in my path to freelance success) and finding someone who would take a chance on me given my current knowledge and desire to learn. I found Mark Hammonds. He was my age and was looking for someone to do Drupal development for him as part of an effort to rebuild a website for a client of his. We both drove to Indianapolis to meet up for dinner and he was happy enough that I scored an hourly contract with him for the summer.

I moved in with Angela at her mom’s place, set up my computer, and got to work. It was my first real experience at providing professional development for money. There were highs and lows, but I wouldn’t trade those experiences for the world. Working from home was amazing – once I experienced it I knew I would never be able to go back to working in an office.

I also worked on small WordPress and Drupal development projects throughout the summer, but the work with Mark was always my main focus.

Senior Year

The summer ended and my contract ended with it. I had my taste, though, and I knew I could never step away from the kind of life that let me work from home on things I enjoyed and earn good money. My senior year at Rose-Hulman was a whirlwind as I balanced coursework, work-study, and figuring out how to start my freelancing business. I slept maybe five hours a night if I was lucky.

My last quarter at Rose-Hulman I decided to stop trying so hard in my classes and work on my business. My grades dropped down to Bs, but that was OK. I was too busy working on my website, gathering leads, wooing prospects, and starting to make real money. It was exhilarating.

One of the best things about Rose-Hulman is that they have a dedicated career center that will help you get a job (and a well-paying one at that) right out of school. They were surprised when I told them I didn’t have a job offer because I wasn’t looking as I was going to start my own business. I’ve always thought that was kind of funny.

College is Over

I did really well in college and graduated with honors, but that meant next to nothing as far as prospects were concerned. They wanted to know I could help their business, not how great my GPA was. I spent the summer learning how to nurture leads, building my technical knowledge, and generally working my butt off. I would get up in the morning and ride my bike to the gym, work out, shower, and then sit at Starbucks for 8-10 hours working. It was fantastic.

I was still perusing job boards throughout the summer and eventually stumbled on a job posting at FreelanceSwitch by a company in California called “Shane & Peter” (who are now Modern Tribe). While I thought it was a weird name, I decided to apply for a contract position. I remember sitting on the bed of the truck I was driving at the time in a Barnes & Noble parking lot and talking to them. That conversation would have a huge impact on my life for the next several years.

The Move

After the summer, Angela (my now wife and then fiancee) and I moved to Seattle, WA where Angela would be attending law school. We didn’t know anyone, but that was OK because we had each other. I worked on tons of projects as I tried to figure the whole freelance thing out. How could I make more money and advance my freelance career? How could I learn more about what I do while still serving clients?

Those first six months, I essentially worked non-stop. I’d get up in the morning and see Angela off and sit down in my office and work all day. Angela would come home and we’d go to the gym and have dinner and then I’d work until one in the morning while she fell asleep next to me.

Throughout this time I was working on my own gigs, but a majority of my energy was focused on serving Shane & Peter and, more specifically, their clients’ needs. I got to work on some stuff that wouldn’t have been available to me on my own. I talked to Peter almost every single weekday for almost two years. I got to attend retreats with other freelancers that they worked with. It was a lot of fun and I learned a ton along the way.

I’ll never forget the first big mistake I made as a freelancer when I forgot to add a condition to a WHERE clause in a SQL statement and caused intermittent performance issues on a client’s site. It was baffling because I didn’t have the data set to see it locally and didn’t have the server access required to debug it remotely. We eventually got it figured out, but I learned from that whole ordeal that the best thing to do when you’ve made a mistake is to calm down, communicate as much as possible, and do your damnedest to fix the problem. I think that is the most important lesson I learned from working with Peter.

Onward and Upward

During the time I was working with Shane & Peter, I was also working on expanding my business. I networked like crazy, revamped my website, and took on more and more expensive projects. I eventually wrote a book which I was able to use as a calling card. It became part a standard part of my pitch:

Oh, why should you hire me? Did I mention I wrote a published book on WordPress theme development?

I eventually priced myself out of working with Shane & Peter. I was spending 70% of my time on projects with them but making 70% of my money from projects that were with other clients. It just wasn’t sustainable in the long term. I peg that as one of the hardest things I ever had to do: I had to choose between working with my friend every day or making more money for me and my family. Making money won.

Solo + Agencies = Win

For a while I was on my own, but then something wonderful happened. I ran into an agency that could afford to pay me my normal project rate and would allow me to work on projects with companies that would otherwise be inaccessible. I don’t remember how I met Brian, but I’m so glad I did. We’ve worked on a ton of projects over the years that I’m really proud of and I’m happy to call myself a member of the TrendMedia team.

About six months ago, I stumbled upon another agency with whom I have a similar arrangement. He gets the projects, I serve the client, and everyone is happy.

So that’s where I’m at now – I work on projects with clients that I gather myself and fill the rest of the time with projects through these two agencies. I hardly ever want for more work (oftentimes having way too much to do!) and am making the money I need and want to for my family.

I Love Freelancing

What does all this mean in a broader context? I’m not sure, but writing this post has made me realize two things:

  1. I love what I do
  2. I’ve worked my butt off to get where I am right now

If I’ve worked with you and you’re reading this, thanks for making my lifestyle possible. I appreciate it more than you know. If you’d like to pick my brain about an aspect of my freelance story that I left out, leave your questions in the comments!

Celebrate Your Achievements

Have you done something awesome recently? Maybe you launched a new website, wrote a post on your blog, or solved a difficult business problem. Whatever it was, did you take the time to celebrate what you accomplished?

For me, the answers are often “Yes” and “No”, respectively. I’ve heard the same from many other freelancers. We are all so busy living for the next project that we never sit down and reflect on the successes that we are a part of.

The lack of reflection leads to a big problem. If you don’t stop to recognize your accomplishments, you might as well not have been a part of them. You’ll forget the successes you’ve had as you drive yourself towards the next deadline. For me, this has lead to moderate depression at the thought of “working so hard for nothing.”

This might seem like a simple mind trick (and it is), but the next time you have a successful outcome, sit down and spend a few minutes thinking about it. Think about how you got where you are and the lessons you learned. You’ll feel better in the present and the future. When you get frustrated on your next project, you’ll have something to look back at and remind yourself of how you’ve experienced success and how you can reach that feeling again.

I’ve started doing this in my business and personal life, and it is already paying dividends. Give it a try!

Quick List: Have a Great Phone Call

I’ve found that phone calls with clients and prospects can either be really great or a total waste of time. In my experience, the great phone calls all have the same things in common:

A strict time limit
The best phone calls have a defined start and end time that aren’t deviated from – everyone on the call knows this, calls in on time, and says goodbye when time is up
An agenda written in advance
Everyone knows what is going to be discussed, what the various options are, and what decisions need to be made
The right people are on the phone
Everyone who needs to be involved in the required decisions is present and ready to make a decision
Someone is responsible for taking notes
If there are no notes, you’ll lose track of what you talked about and the decisions that were made
People aren’t afraid to say goodbye
When it is time to go, say so – you’ve got other things to do and can’t be sitting around forever blabbing

Getting on the phone can be a great way to get to know a prospect, establish a deeper rapport with your clients, or put a human touch to your work. That being said, you’ve got work to do – get on the phone, get what you need done, and get back to work.

Understanding GitHub’s Awesomeness

Until a couple of weeks ago, I didn’t understand what it was that makes GitHub so awesome. It isn’t the pretty interface to the Git version control system or the fact that people can post code and other things for the world to see and use. GitHub is awesome because it makes it absolutely trivial to collaborate and help out other programmers.

It all started with a tweet:

I thought it was pretty cool that Erik was sharing this with the world so I took a look at the plugin. I opened the plugin file that had just been committed and started perusing the code. I immediately saw this line:

wp_register_style( 'wap8-flickr-me', plugins_url( 'flickr-me/css/flickr-me.css' ), '', WAP8_FLICKR_ME_VERSION, 'screen' );

I noticed that plugins_url was missing the second parameter needed for it to function correctly. I wanted to help Erik out by providing a fix, but I didn’t have a bunch of time that morning. In the past, providing help would have meant checking out the code, making my change, generating a patch, and sending that to Erik in some way. Alternatively, I could have provided instructions for a fix like I did for the WP SMTP config plugin.

Because the code was hosted on GitHub, I didn’t have to do either of those things. The interface allowed me to create a fork, edit the file, and send a pull request – all through the web interface. In case I’m not illustrating how easy it is to do this, here’s some screenshots of the process:

Click the edit button to start the process

Click the edit button to start the process

A fork is created for you - make whatever changes you need to

A fork is created for you – make whatever changes you need to

Enter a summary of your changes and then click the "Propose File Changes" button

Enter a summary of your changes and then click the “Propose File Changes” button

Enter some more information or details if you want, and then click "Send Pull Request"

Enter some more information or details if you want, and then click “Send Pull Request”

Finally, you get to send a tweet letting the person know that you’ve sent them a pull request:

And that’s why GitHub is awesome. Not just because you can find solutions for problems you’re having, but because it makes it as easy as possible to collaborate and help others.