Looking for a Top Notch WordPress/PHP Developer

If you’re in Baltimore and are a developer, or if you are in Baltimore and know someone who is a developer… Heck, if you’re in DC and are a developer or know a developer, we need you. (You can be to work in under an hour on the MARC train).

Some of you know what I do and who I do it for. I work for a company that has consistently been rated in the top 3 companies to work for. We’re fun and relaxed and our content producers focus on publishing in the financial industry.

Dogs are regularly in the office. We wear shorts and sandals to work. It’s an a-political group – as in office politics. Everyone works well together from the execs down to customer service.

We believe in “Fail cheap and quick” as a lean startup sort of mentality and everyone is empowered to just try stuff if it makes sense.

What *I* do is build awesome web technology to support the business. Plenty of WordPress but now we’re building out huge APIs for reporting and consumer-facing tools. And that’s not WordPress. That’s Laravel and MVC, if you’re curious.

We are looking to add another developer with real chops. PHP, JS, REST APIs, SQL for now with NoSQL as a viable thing for the future. We largely operate on Rackspace and Amazon EC2.

I’d love to hear from you or your developer friend. Send me your resume and cover letter but let me see your github as well!

abrazell@agorafinancial.com

Skunkworks

Back in October, I announced my departure from WP Engine. At that time, though I didn’t talk about it on this blog, I decided to take some time off, more or less. Since 2006, I’ve been hard at work with very little time alotted to myself. I spent 2 years with b5media and jumped immediately into a failed role at Lijit (who has now been acquired by Federated Media – nice work, guys!). Upon my departure from Lijit, shortly after the market bottom in 2008, and needing money desperately, I went into full time WordPress consulting. I did that until I moved to Austin last year when I went in full time on WP Engine and stayed there for 15 months or so.

So basically, I haven’t had a lot of time to myself. So I took time. In the past few months, I’ve taken some large consulting contracts, but mostly, I’ve spent time travelling to Maryland, Seattle, Chicago – all for pleasure, nothing for work. I’ve spent time trying to weigh my priorities and wants. I’ve tossed around starting up a new company or doing something different.

At the end of the day, now that it’s 2012, I know what I want to do. It’s a bit unusual, but I think it’s important and can really revolutionize a boutique agency. I’m not comfortable doing social media work. I’m too honest and raw in my own online presence and many companies and clients may not be comfortable with my level of authenticity.

I also don’t want to do what is common among agencies – sweatshop site development. Hey, no offense. That’s what it is. Take on 30 new clients, promise them websites that are the brainchilds of the agency marketing “expertise” and ask the developers to crank them out with little to no strategic or creative input.

That might work for some developers, but I’m not a normal developer. I’m a highly established WordPress professional that has commanded 5 figure consulting deals, written a 700+ page book on the subject and have built some of the most complex WordPress solutions I’ve ever seen (Humble brag! Also proprietary, but can provide in person demos). I’m not a good fit for sweatshop site generation.

You know what agencies need that no one is doing because no one has taken the time to think outside the box? A skunkworks division. What agencies need to differentiate themselves from the thousands of other agencies they are competing with is a person or small group of people with autonomy and who are focused soley on creating disruptive technologies that no one else is doing. Try things. Fail at some, succeed at others. Test market demand. Offer exclusive access to stuff that no other agency has. Innovate, innovate, innovate.

That’s what I want to do. And someone sees the sense in that. And someone realizes that that is worth thinking outside the box for. Someone is willing to invest in that competitive advantage. Someone gets it. It’ll take money. It’ll take risk. It’ll take balls of steel. Or you can be normal. Who wants to be normal?

So as we enter 2012, I am open to conversations around this or other creative outlets you might want to explore if you want a competitive advantage. Email me at aaron@technosailor.com.

Changing Roles at WP Engine

For some time, I’ve felt there was a change coming and today, I’m ready to announce that my role within WP Engine is changing. Starting today, I have transitioned into an advisory and consulting role with the company.

Effective immediately, I will be taking the portion of the business that focused on professional services and consulting to allow the company to focus on premiere WordPress hosting. It’s a good thing and I’m excited about the possibilities. Back in November, we decided to start taking on some professional services work to augment demands from many of our customers. It was awesome to have fast, secure, scaleable, managed hosting but they wanted more!

And we wanted more.

However, as the company has evolved, taken funding, hired more people, addressed growth challenges and built out our hosting option, it seemed clear that the professional services portion of the company was a separate kind of deal than what we wanted to focus on.

So today, I’ll be taking that portion of the company (and all related existing and current relationships, as agreed on), and working on that. Meanwhile, I’ll still be working with the company to guide direction and strategy. So it’s good for everyone.

Effective immediately, I am available for all WordPress consulting roles. However, I am also currently entertaining all possibilities involving full time employment as well, and welcome those conversations.

To contact me, please direct emails to aaron@technosailor.com. As transitions go, the immediate financial impact is something that I need to consider.

The Most Expensive Question

The most expensive question you can ask a consultant is, “What else do you recommend?”

This seems like a simple thing. At least if you’re a consultant. Potential clients approach you and they know they need something done. They may have a good idea of what that something is and they may even be able to provide a wish list of things to get done. However, for all that preparedness they ruin it all for their budget by asking, “What else do you recommend?”

Now some consultants do business this way. They are paid to help the client understand their needs and map out a solution. However, understand that this is a very expensive proposition in most cases. Hours of meetings and calls and emails exchanged back and forth can go into defining the scope, as we call it.

What's the Point?
Image by skipnclick on Flickr

We’ll usually approach the client with open ended questions to get a high level view of the client project.

  • What are you trying to accomplish?
  • What is your ideal end result?
  • What problems are you trying to solve?

Once I get a broad picture of the project, I can schedule conference calls with relevant parties to discuss each answer to each question. This is for the purpose of defining the details. Each call could take an hour or more and might span more than one call. This is all billable.

At the end of these series of calls/meetings, we still might have a bunch of email exchanging to do. This is even before we begin doing actual work. You can easily rack up thousands of dollars during this process.

The next phase of the project involves deliverables. Having defined all the scope details, the project probably goes on Basecamp or some similar project management service. Most consultants have a “floor” that is a minimum threshhold. I know people who will not work on projects below $50k. Others won’t work below $25k.

At this point, if the client is still not mentally committed to a path, there can be a lot of potential for “Scope creep”. That is, when the scope of the project slowly expands to incorporate other areas not defined in the agreed upon scope. Good consultants see this coming and can either agree to it pro-bono (bad policy), agree to it as an added service/feature (billable) or convince the client the idea is bad (it might be).

Scope creep is rarely good for the client, though. You’re definitely going to get billed for it when working with most consultants.

Bringing this full circle, however, you can mitigate your costs when dealing with consultants by having a really firm idea as to what and why you want to do from a high level. Leave the details to the consultant to work out, but strategically know where you’re going. If you can define the scope (wireframes are always helpful), you can lessen your cost even more.

The more we as consultants have to do, the more you’ll pay. We don’t mind helping, but if money is an issue, be careful and come prepared.

And for God’s sake, don’t ask “What else do you recommend?” We can make a mint off that question.

BASH Script for WordPress Backups

A lot of people are worried about backing up their WordPress installs on a regular basis. I know. I get that. Here’s a script you can use if you have access to the shell. Put this sucker on cron (For many Linux distributions, you can put it in

1
/etc/cron.daily

if you have root access. Otherwise, use whatever mechanism your hosting provider offers for cronjobs/scheduled tasks.

Also note that while this script will work fine for most Linux distributions, you should know that every distribution is different and minor modifications may be necessary.

Standard Disclaimer: This script is free of charge and, thus, unsupported. Functionality is neither guaranteed nor implied. I work as a consultant and have many years making WordPress work for companies and individuals. If you want support, you have to pay but I’d be happy to work with you. Contact me for paid work only at aaron@technosailor.com.

With all that done, here’s the script. Make sure you remember to edit the appropriate variables and make it executable.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash
#### DO NOT EDIT
DATE=`date +-%y-%m-%d--%T`

#### EDIT BELOW

# If CREATE_ZIP is 0, then a tarball will be used (default). If 1, then a zip file will be used
CREATE_ZIP=0
# Accessible/writable directory for temp storage
TMPDIR=/tmp
# Absolute path to WordPress backup storage location
WPBACKUP=/backups
# Absolute path to WordPress install.
WPDIR=/path/to/wordpress
# Enter Database connection details from your wp-config.php file
WP_DBUSER=user
WP_DBPASS=password
WP_DBHOST=localhost
WP_DBNAME=dbname

#### STOP EDITING
if [ ! -d $TMPDIR ]; then
    mkdir $TMPDIR/backup
fi

if [ ! -d $WPBACKUP ]; then
    mkdir $WPBACKUP
fi

# Dumps the database
mysqldump -h$WP_DBHOST -u$WP_DBUSER -p$WP_DBPASS $WP_DBNAME > $TMPDIR/backup/wordpress-db.sql
 
# Create Archive
if [[ CREATE_ZIP -eq 0 ]]; then
    # Tarballs the Database and WP files
    tar -cvf $TMPDIR/backup/backup$DATE.tar $WPDIR/.htaccess $WPDIR/wp-content $TMPDIR/backup/wordpress-db.sql 2>&1
    gzip $TMPDIR/backup/backup$DATE.tar
    # Move archive to backup location
    mv $TMPDIR/backup/backup$DATE.tar.gz $WPBACKUP/
else
    # Zips the database and WP files
    zip $TMPDIR/backup/backup$DATE.zip $WPDIR/.htaccess $WPDIR/* $TMPDIR/backup/wordpress-db.sql 2>&1
    # Move archive to backup location
    mv $TMPDIR/backup/backup$DATE.zip $WPBACKUP/
fi

Your Resumé is Causing Hiring Companies To Laugh At You (Revised)

I wrote this article, originally on August 2, 2007, long before the current economic slowdown and jobless numbers. The Department of Labor is reporting a national 8.5% unemployment rate, a number we have not seen since 1983. Nearly 1 in 10 Americans have no job, and those are just the people who filed for unemployment benefits. The number is 15% in some sections of the country.

The other day at a networking event, I introduced myself to a man who was milling around. I asked him what he did and he told me he was an IT Project Manager. Interested, I pressed for more. Which company, for instance, did he work for? That’s when he said he was out of work. My initial thought was how grateful I am that I have a diversity of skills to rely on to put food on the table.

Needless to say, there’s a flood of people looking for work. They are flooding Craigslist and the job boards. They are spitballing their resumés across the internet desperately trying to find someplace that will hire them. My advice: strike with precision accuracy. That does not mean only apply for jobs that are seemingly made for you, but do some homework. Look at the job reqs and tailor your resumé. Know about the company should they call you in for an interview. For posterity, here is the article, reprinted in full, from when I was a hiring manager.

Your Resumé is Causing Hiring Companies To Laugh At You


Graphic by Doug Belshaw

You know that companies are laughing at you right now, don’t you? It’s true. For a variety of reasons, you shoot for the moon and hope for the stars and hope that someone will be stupid enough to hire you. Why? Lots of reasons but it boils down to five main reasons.

You Didn’t Read the Job Requisition

It’s true. I get resumés all the time for positions at b5media and it’s apparent that the job posting and requirements were not read. It’s nice that you have 8 years of Java/J2EE experience, but if we are soliciting for a PHP developer, your experience doesn’t matter to me.

My Advice: Read through the job posting. If you feel like you have comparable experience, then apply. What do I mean? I mean that Java positions and .NET positions, while they are good experience for many companies, do not compare with people who do web scripting. This is a completely different ballgame and requires a different set of skills. If I ask for a PHP developer, I may be willing to talk to an ASP or Ruby developer. You’ll have to convince me, though, on Java or .NET. Likewise, if I advertise for a Linux engineer, we are looking for a semblance of Unix/Linux experience. Windows Server 2003 is helpful in some environments, but we know that you’re not qualified for a Linux position if the only server experience you have is in a Windows environment.

You Cite an MCSE as a Qualification

Many companies do still want MCSE’s. I’m not quite sure why because it’s a piece of paper that demonstrates no real world experience. Companies are more impressed by demonstrated experience in your environment than a piece of paper that only demonstrates that you had the wherewithal and money to buy a piece of paper.

MCSE means nothing in the real world. It’s great that you have an understanding of Active Directory. But can you make Active Directory dance? Have you transitioned from competent Active Directory admin to Active Directory ninja? Can you document verifiable accomplishments.

My Advice: Make sure that you can provide bullet point accomplishments. Your accomplishments are more worthwhile to a hiring manager than your piece of paper. Make me see that you are qualified for the position you applied for – don’t just tell me you are.

Your Resumé is Irrelevant

One thing I’ve learned from doing my share of job searches is to have a relevant resume for every sector you want to work in. As a hiring manager, I really don’t want to see how much help desk support you have if I’m recruiting for a development job. It’s obvious you are too lazy to actually tell me why I should hire you. In these cases, I delete your resume. I don’t hold on to it for further consideration later. I don’t pass it on to other hiring managers that might be able to use your skillset.

My Advice: Stay relevant. Tell the hiring manager why he should hire you with a resumé that is pertinent to the job you’re applying for. Include a cover letter that is sufficiently balanced between formal and informal so that the manager can read and have a good understanding of who you are outside of your resumé. I personally have three different slightly different resumés. I have one for development, one for systems and one for management. Take your time when applying and send the right one.

You Don’t Know Who You’re Talking To

In most cases, the company that is hiring has identified themselves. You have Google. You have blog searching. You have a variety of different ways of finding out about the company you are applying to. But you don’t use any of these tools. You don’t even find out what the company’s corporate website is. You haven’t taken the time to do your homework and find out if this is the kind of company you actually want to work for. Your laziness has been demonstrated once again.

For instance, at b5media, we make no secret that we are a blog network and that we’re proudly powered by WordPress. While having a blog and using WordPress are not things we require of our employees, it sure is nice if the candidate knows what blogs and WordPress are. It’s sort of important for our business.

My Advice: Use the tools at your disposal to formulate your resumé. Find out who you’re applying to. If you want to apply at b5media, you should probably know what a blog is. On a technical level, understanding of WordPress is fairly important. Make sure that if you’re applying as a junior developer at a non-profit organization, chances are you’re going to end up with junior developer pay with senior developer responsibilities and experience. Know who you’re dealing with before you go in.

Your Resumé is longer than two pages and Is Filled with Fluff

Yes, contrary to popular belief, we hiring managers expect that if you list every technology in the book, that you are able and willing to use them. However, we also know when people are stuffing their resumés with keywords. I know you were taught to do this by employment coaches and universities instructing you on how to search for a job. It’s really a bunch of hogwash though because we know. Let me repeat that: We Know!

We’re also not impressed by long resumés. We don’t have time to go through 4 pages of fluff to see if we can find the stuff we need to know in your resumé. It’s not a good way to win brownie points with me if you’re wasting my time.

My Advice: Recognize that very few people know everything and that you’re probably not the exception to the rule. It’s okay! Really! I’m not impressed by know-it-all’s anyways. However, your ability to distill a job requisition and figure out what we need to know without making us tell you is a good sign. You can get a lot of mileage out of a relatively short resumé that actually does hit the keywords we are looking for. (Hint: Refer to point #4 for helpful information gathering tips).

See? It’s important for your future and career to understand these points. I’m betting if more people understood these things, unemployment would be lower and you’d have a job that you really love. We want to hire those kinds of people. We want to hire you if you become that guy (or girl). It takes some effort but whoever thought that having a perfect situation without putting out the effort should be the norm, was smoking something.

At b5media, we want to hire the best of the best. Mark Jaquith and Brian Layman were both hired because they really fit everything I said above. Plus, it was easy to know about them because they blog, they use and develop on WordPress, they have the skillsets we needed for their positions.

Chad was hired because he has a reputation as a great ad sales guy and thats what he does.

I was hired, not because I have an MCSE (I don’t!) or a Computer Science degree from University of Maryland (again, I don’t even have a degree), but because I understood the company, the technology and the platform – all very critical for my job.

We have several tech jobs available right now. We’re hiring a Systems Engineer with Unix and architecture experience. This is not a gig, it’s full time, so if you’re not ready to quit your job, don’t apply. We’re hiring a support person, ideally in Toronto, but open to virtual support too. This is for blogger and channel editor support. It does require an understanding of WordPress.

I really want to find the right people, so if you are the right person and you can meet the above points, send me your resume at aaron [at] b5media [dot] com. :-)

Twitter Helping Twitter Find Jobs

Late last night, the #rtjobs hashtag showed up on my radar over on Twitter. It was being championed by @You2Gov as a mechanism to help connect those looking to fill positions with those looking for work. Naturally, I fall into this last group but I often hear about jobs that I am not able to consider, whether because of skill set or geography.

So while the #rtjobs project is developing over on Twitter, I slapped up a site that would help organize that information. Using WordPress and the Twitter Search API, I put together a site that I hope is both useful and productive.

It’s all about helping people find open opportunities and get placed. If you are on Twitter, you can help by passing along any info on open opportunities. Use the hashtag #rtjobs. If you have a position open, post it to Twitter using the same hashtag.

And of course, we could use some publicity on this. It’s only as good as the number of people who are aware. So if you’re a blogger, blog it. If you use social tools like Digg, StumbleUpon or Facebook, share this post with your network of people. Let the good karma flow in this really bad economy.