Browsing Category


Life, Productivity, WordPress

Starting Up

I have never been so excited about a website launch than I am at this moment. I’ve been able to take my strongest skills from across my hobbies, merge them with my web development skills, and create a fantastic product that I can’t wait to share with the world. It’s a dream web app for me, and something that I’ll enjoy using for years and years to come. And it’s something forcing me to meet more of my goals for this year with learning Javascript and taking my WordPress development to the next level.

Vague? Yes. I’ve written a much longer reveal post when we’re ready to release our beta version, hopefully by Labor Day. Please stay tuned, I’m super excited about this opportunity.

Life, WordPress

Impostor Syndrome

Here’s my biggest secret: I’ve always thought I wouldn’t be good enough for what I do. I’ve let it hold me back in way too many ways. Here’s my story.

1) I went to a prestigious engineering school (Case Western Reserve University).

Despite getting hired to work on a help desk on literally day one of college, and succeeding mightily in that work the whole time I was in college, I couldn’t find a job when I graduated. Granted, I was trying to stay in Cleveland at the height of recession – I graduated in January 2007 – but I didn’t apply for anything that would have given me an upward trend.

2) I married a successful software developer.

Once I got married, I/we assumed that I could never rival his salary, and I stayed at home for a couple years. Inferiority complex kept me from even applying for any jobs, even ones I would have been very very qualified for.

3) My husband’s trajectory forced me to find money.

Let’s be honest, I was miserable staying at home. My self-worth had gone OUT the window. My confidence was gone, and there wasn’t much left of the promising high school graduate who had my pick of some very good universities to turn me into a productive adult. Then, my husband started graduate school, and my smart budgeting sense said “Yes! Yes! we can pay for this out of pocket!” only to be faced with the cold hard reality of how gigantic the tuition was (more than 1/3 of his take-home pay).

4) I began freelancing online, for way less than minimum wage.

I never took any of those “$2/hr” type listings, but I didn’t know what I was doing. I was tech savvy, but I didn’t really have marketable experience. So I took easy jobs – $50 here, $100 there, but spent way more time on them than a skilled person would have. Besides a few nutty clients (the type that wouldn’t have been happy no matter who I was), I learned very, very quickly. After a few months, I felt confident applying for my first hourly positions, and worked as a freelancer for several small agencies. I was able to ramp up my hourly rate to the point where I could work a 40 hour week, rather than a 80 hour week because I didn’t know what I was doing, and eventually obtained a level which rivals my husband’s income.

5) I began to experience community, and found my worth.

The biggest watershed moment for me was in 2015 when I attended LoopConf. An expensive conference for WordPress held in Las Vegas, it was my first time truly around people who did what I do for a living every day. My first glimpse at successful people in the field, in person. The big moment came after attending several sessions which I was loving and soaking up the content, when I was talking to others and they were all discussing how various talks had completely gone over their heads. That they couldn’t imagine using the knowledge because they didn’t even understand it. That’s when I realized I had truly arrived – because I watched every session, soaked up many new tips and tricks – and never thought any of it was “hard”. I began the conference assuming that I was the new outsider, and quickly realized that I wasn’t.

Once I started truly talking to the other people that understood things on the level that I did, I finally realized that I was not longer that outsider looking in. I had arrived. I am good at what I do. I can always grow – and there are many things on my personal growth list for the year, weekly, monthly and annual goals to reach – but I am a success story. And nothing can hold that back.

6) The future.

In the beginning of the year it became clear that to grow more thoroughly, I wanted to join a team as a full time employee, rather than continuing to freelance. I received a taste of that last year with one client, who seemed to be bringing me on full time before things fell apart for her. Applying for jobs, however, comes with this huge risk — that brings up all the inferiority complex and impostor syndrome issues. I have to remind myself, day in and day out, that these companies know what they’re looking for. If they judge me to have the wrong personality for their company, why would I want to be there? I want a position to thrive in, and not to be throttled. In the meantime, there’s nothing wrong with continuing to freelance, until the perfect position opens up for me.

Life, WordPress

Digital Nomad

I’m not one for settling down. If I’ve been in the same place for too long, I’m just itching. I haven’t travelled far since the Christmas holiday season — and it’s really getting me. Of course with moving and trying to sell a house, there’s limits on how far I can get right now – and hunting for a full time position does take away from spontaneity.

Have you ever wondered about working from home remotely? When I first started freelancing, I wasn’t sure that I was doing it long term. I didn’t have a reliable vehicle, and didn’t want to invest in one just for a job, so I started out freelancing from home. It’s been my dream job. I am probably on the road 6-10 weeks (or more) per year — and most of my clients never even noticed. The clients that notice the most are the ones that video call me – I haven’t invested in one of those chair-back screens that blocks my background, so they can tell I’m in a different space.

My most productive week of feeling accomplished with my work in 2015? I was visiting one of my best friends. I drove 20 hours to visit her in Texas, with my young son. Being with her gave me the perfect balance of being able to churn out massive amounts of work, and know that my kiddo was having fun, and get to spend lunch breaks with them. On a normal workday, I usually don’t get lunch breaks like that.

Now, it can also cause problems. No matter how much I say I need to work, there are some places I’ve found it extra difficult – like with my parents. It’s hard to work when everyone else is on vacation. And whenever I plan to do something away from work, sometimes work comes in and takes precedence — I’ve never been to a development conference where there hasn’t been some work emergency. I’m used to being on call, and so long as the pay makes it worth it, the pay makes it worth it.

That being said, I love taking longer vacations. Would I love to rent a beach house for a month, and work from the beach house? YES. I would much rather do that, than take the time off altogether and only get a long weekend at the beach. I like working in new and different places. One of our “family plans” is to ride bicycles across the United States (and back). We figure we will take a little over 6 months, and average something like 40 miles per day (but have scattered zero days throughout). Assuming a decent pace, leaving each morning around 7am we would be done by lunchtime – and able to eat, cleanup, and work. Completely doable *with* working – and with a remote position, if I have a full time position with a company, they will definitely know I’m doing it, so that I can be above board – but also so I can meet any coworkers I’m coming near. If it’s remote work freelance for several clients? They might not even notice. Just need to grow my child bigger so he can handle the Burley Piccolo — it will be a few years.  However, between a combination of zero days if the work gets heavy and/or if the weather gets too stormy, and working on ride days after the morning ride portion, I can see the country… and work too!

But, for the forseeable future, I’m mostly here in my beautiful Lenoir City home office — dreaming of those long trips away, and knowing it can and will be a reality sometime.

WordCamp, WordPress

WordCamp US 2015

My trip to WordCamp US in Philly was awesome, and a lot of fun. Like any technical conference, I got a lot out of the sessions, but I got even more out of the community interactions outside. I held back so many times from going to WordCamps because the more local ones to me didn’t seem to have “enough” developer oriented talks. After all my experiences at WordCamp US just talking to people, I think it is really important to still go to the other WordCamps. My old goal for 2016, which I set a while ago, was to give a talk at a technical conference. My new goal was to learn Javascript and the REST API inside and out – (and yes, I set that goal *before* Matt Mullenweg announced that every WordPress developer needed to have that goal). I think at this point, I’ll aim to do both.

I’ve always considered myself an excellent PHP developer, not very useful for Javascript, but more than one conversation I had yesterday at the official WCUS after party convinced me otherwise. I’ve done a lot of work with tapping WordPress’s PHP into external javascript APIs. It took me all day, and into dinner tonight, to realize exactly what I needed to do. I have a great idea for something that I’m pretty sure isn’t out there yet — so I’m setting the goal of writing an awesome plugin this week and submitting it to the repository. Well, if the plugin repository is anything like the theme repository, it will take a long time to go through review – so I’ll put it on Github and blog about it sooner. I don’t want to blog about it before I write it because it’s always better to see if it works the way I think it does, first. I would say, look for it this week — but who am I kidding? Between my kiddo’s birthday, closing on a new house, traveling for the holidays, and then moving — it’s going to be an intense month. Hopefully I won’t wait until after the move.

Any ideas of a good conference to speak at next year? Preferably one cheap for travel from East Tennessee? I’ve heard good things about WordCamp Atlanta, WordCamp Asheville…

Today was Contributor Day at WordCamp US. I wanted to work on Core, but I’m too intimidated by my lack of experience running VVV – so I decided to work on Documentation. Then I read something online about there not being a lot specific organized for Docs to work on, so I skipped it altogether and worked on Theme Review. I don’t think I had realized how much I like QA. I think it’s something I’ll definitely keep doing – a three month backlog for the theme repository is crazy long – I bet many developers give up hope before their theme is reviewed. I will keep doing my piece as time allows.

If you were not at Contributor Day and you have not contributed to WordPress, but you use it — I can’t imagine not giving back to the community. And some day, I’ll be contributing with things I write, not just QA.


cPanel hacking of WordPress

Several months ago, I noticed that of the many websites I had on one server, one of them was not updating properly. In fact, it never updated WordPress, and it actually acted like there was no such thing as an update.

I forced an upgrade by uploading the new core via FTP, but as this was a live site, I didn’t want to do anything crazy to the database, or even take the site offline at all. Upgrading via FTP worked, but it still never flagged or showed that updates were needed, as time went on.

Usually, and this is seen on one old demo site, the dashboard will say the current version number, along with the button to update if one is available.

Also, navigating to the Upgrades page on the dashboard,

This was something that I did not have time to deal with. It was a minor issue, as it was only affecting a couple of sites. However, I stumbled across this blog today dealing with how cPanel had been changing Core to prevent upgrades. Suddenly, I realized what was happening.

It turned out the culprit in this case wasn’t even cPanel – it was a GoDaddy plugin. What’s weird is that the site had never been on GoDaddy. It was once on MediaTemple, early on, and I’m thinking that’s a possible culprit since they’re related. It has been on multiple hosts, and I can’t verify how it happened at all, but there was a plugin placed in the mu-plugins folder – which was why the manual FTP updates hadn’t fixed a thing! Due to the above blog post I was able to search on various terms, and I located the mu-plugins GoDaddy plugin by searching for “core_upgrade”.

Header information from the plugin:

Plugin Name: System Plugin
Plugin URI:
Author URI:
Text Domain: gd_system
Domain Path: /gd-system-plugin/lang

Offending item snippet:

// Don't auto upgrade core
add_filter( 'auto_update_core', '__return_false' );
add_filter( 'pre_site_transient_update_core', create_function( '', 'global $wp_version; $x = new stdClass(); $x->version_checked = $wp_version; return $x;' ) );
add_filter( 'user_has_cap', array( $this, 'block_core_upgrades' ), 10, 3 );

// Use default WP settings for these three
// add_filter( 'auto_update_plugin', '__return_false' );
// add_filter( 'auto_update_theme', '__return_false' );

// Disable e-mails 3.7 Beta -> RC
add_filter( 'automatic_updates_send_email', '__return_false' );

// Disable e-mails 3.7 RC -> Final
add_filter( 'enable_auto_upgrade_email', '__return_false' );

// No debug e-mails
add_filter( 'automatic_updates_send_debug_email', '__return_false' );

// 3.7 Final filter
add_filter( 'auto_core_update_send_email', '__return_false' );

As it was the only mu-plugin, I deleted the whole mu-plugins directory from the installation to remove all the offending code. Magically… we have an update button now, and are happily running the very latest version of WordPress.


WordPress 4.3 and the little joys in life

As someone who deploys a lot of WordPress sites over time, rather than just maintaining a couple large sites, there are two major (major to me!) changes coming in WordPress 4.3 that I am very happy about.

1) Comments are now turned off by default.

As anyone who launches many non-blog websites with WordPress knows, one big step in a site launch is deactivating comments everywhere. We suggest every user have a blog, because blog posts increase total website word count which can increase SEO and make a site more popular. However, most companies that might be convinced to post a blog once a week are not ready for the headache of regulating comments. Many don’t want to deal with comments at all – and certainly not on “Pages” of the site. One big step in every site staging or launch has been removing comments. It’s so exciting that this step gets to leave my workflow. No more headaches when someone goes in and adds hundreds of pages/posts before turning off comments, causing the need to mass edit in the database.

2) Favicon support.

As someone who has attempted to provide favicon support over time with customizer options for users, this new favicon option will be much better, and I don’t have to worry about it! Integrating Favicon support is awesome, and just one more thing to be really, really excited about.