php|architect Article: Good (PHP) Help is Hard To Find
In this month's php|architect there is an article written by yours truly entitled "Good (PHP) Help is Hard To Find." Here is the synopsis:
There is a huge difference in a PHP developer and someone who “knows PHP.” If you are looking for a job, how do you set yourself apart from the crowd to get noticed as a qualified professional PHP developer? The answer is simple. You have to build your geek cred.
It is the first time I have ever been "published" in a real way. I was extremely nervous about writing the article, and am now even more nervous about how my PHP community brethren will receive it, but I thought I did a pretty good job on my first REAL writing piece. I hope that the article is helpful to PHP developers looking to land a job and those of us just looking to improve our own skills.
It is kinda awesome though...knowing that the "who's who" of the PHP community will be reading something I wrote. Let's just hope I didn't screw it up too much. Check it out at http://phparch.com. My article is in the March edition, but if you are a professional PHP developer, you would be well served to purchase a yearly subscription. Well worth the money.
BreweryMap.com – Find new brews!
Just after the new year, Garrison and I were sitting around the office talking about breweries. I was planning a trip to Denver and wanted to know about breweries in the area, so we brought up Google maps and searched for "Denver Breweries". The results sucked. We couldn't find much of anything worthwhile.
Simultaneously, our friend Shaun was creating an open database of breweries and beers called BreweryDB.com.
It didn't take long for Garrison to put the two together and create a mashup, mapping all the breweries in BreweryDB.com onto a Google Map and making it searchable. BreweryMap.com was born. As soon as I saw what Garrison had done, I asked him for access to the code so I could make a mobile version of the site. After about a week or so of work, we had a functioning site that allowed you to search for breweries and beers from your phone or your desktop.
Fast forward to last week. We were asked to do an interview with Raleigh's #1 newspaper, the News and Observer, about BreweryMap.com. We did a photo shoot and everything. It was very cool. Our article was posted earlier this week, with a teaser on the front page! It was unexpected, but very cool. I bought like 10 copies
Our goal with BreweryMap.com has always been to promote two of the things both of us love, craft beer and technology. I feel like we are on the verge of something really awesome and am really excited for what the future holds. If you like exploring new beers, check out BreweryMap.com and find some new breweries to try!
2010 In Review
2010 is over. I set a pretty high bar for myself, both personally and professionally, when I made several blog posts in early 2010. Three of those posts (Inventory the (NC State) web, Improve Adoption of the Brand, and More Mobile) were directly pointed at my professional life at NC State. One post was more of a general "Stuff I Wanna Do" post. After all that, here is what I (we, in most cases) were able to accomplish.
At NC State
I made it a goal of mine to start a project to inventory the web at NC State. I explained the problem in my previous post, but am sorry to say that I don't think we are any closer to solving it now than we were then. Honestly, it never became a focus of mine over the last year. Hopefully it is something that I can actually begin work on in 2011.
My second goal was to begin to improve the brand adoption. I actually feel like we made a difference in this area, albeit small. We have continued the work with the NC State Web Developers Group and continued to push the university forward with Social Media, including an ambitious project creating a location-based service specifically catered to NC State. We aren't any closer on a web developer / designer certification program, but not because of lack of trying.
My third goal was "More Mobile" and I have to say, we've made the most progress here. We are launching a new site in mid-January focused on our efforts to mobilize (no pun intended) the Mobile efforts on campus. We've released several applications into the app store, gave presentations on how we "do mobile", and have an organized and positive direction on where to go next.
Despite not meeting some of my goals, I feel like I accomplished a lot in 2010 at NC State. Not to make excuses or anything, but I feel like a lot of my progress was impeded by some dire circumstances. We've lost a significant amount of people in my department, with additional budget cuts looming on the horizon. Morale is at an all-time low. In fact, most employees I have talked to are just plain pissed off. Pissed off at management, at politicians, at administrators, at the world. I'm not pissed off. I was, but I think I'm in the "accepting" stage now. The higher education IT world just isn't what it was when I started working at NC State in 2001, and it likely never will be again. Oh well. Bottom line is, people are just not as productive or innovative when they are downtrodden. Now on to some slightly better things...
Personal Work and Personal Goals
I wanted to grow my business in 2010. That happened in a rather unexpected way. AmberCube didn't really do a lot this year, but an offshoot of that occupied the majority of my free time in 2010. I haven't blogged about it here, but if you know me personally, you have heard me talk about Destination Analytics. I dedicated A LOT of time and effort to DA this year, with it finally paying off in December when we were able to post some profits. Great feeling.
I wanted to advance professionally in 2010. Since I already spoke a bit about NC State, this is more about my professional profile outside of that. I've started contributing to some open source projects (Zend Framework), I've spoken at several conferences this year, I've started to help organize the Raleigh PHP User Group, and I've started sharing more of my code. Along the way, I also found something that I am pretty good at...organizing events. I organized BarCampRDU 2010 and also served as program chair for the UNC CAUSE 2010 conference. Both were incredibly rewarding and exhausting, but I honestly had a blast.
Travel was also a priority in 2010. Erin and I knocked this one out of the park pretty well with our trip to Rome, Sorrento, Corfu and Athens. It was a flat-out amazing trip. Best of my life so far. We are already planning our next one, which seems to be directly related to what conferences I may speak at. I also went to Chicago, the beach a few times, and camping.
I wanted to get out and explore more in 2010. One of the places that I excelled at this (my friend Jen would hug me) is in the craft beer category. I have discovered that I love the stuff. I've tried more different beers in 2010 than I even thought possible. I joined the Band of Outlaws at LoneRider (my favorite brewery) and even spent $19 on a single beer at one point. My 2005 self would have kicked my ass, but that guy loved Bud Light so what did he know?
One thing Erin and I didn't really follow through with was our restaurant challenge. We made it to precisely 1 restaurant on the list. We just didn't end up having the time. It's still on our list for next year though.
I wanted to lose some bad habits in 2010, but let's just ignore that. I seem to have picked up more than I lost. Maybe next year...
Overall, I think I did pretty well for myself in 2010. Erin and I are doing great together, too. I fully expect 2011 to continue on with some of the successes of 2010, hopefully limiting some of the let-downs. Happy New Year and good luck to all my readers in 2011!
Come see me at TEK-X!
I have the great honor of speaking at TEK-X this year, which is an awesome PHP conference in Chicago from May 18 - 21.
My topic is "Lean Mean PHP Machine", where I will be talking about how Garrison and I do what we do with very little budget, high demand, high stress...but also high efficiency and quality. You know what that means right? It's gonna be flippin sweet
But only if you guys show up!
Conferences are a great way to network with new people and revisit old friends, so I am really looking forward to it. It's worth every penny of the conference fee to hang out with the "Who's who" of the PHP community (that definitely doesn't include me, but it does include folks like Rob Allen, Matthew Weiere O'Phinney, Cal Evans, Keith Casey, Eli White and many more...all regulars in my Google Reader).
Come on out to TEK-X and please find me and introduce yourself. I always enjoy meeting new folks... See you in Chicago!
Strategies for upgrading webapps?
Calling all software developers! Garrison and I need some help...
Here is the scenario. We have to maintain a bunch of production web applications, most of which use Zend Framework. When we have created a new version of the application, we need to deploy it to production in as simple of a way as possible. We have automated the file version of this by using Phing to export the tag out of SVN, copy old config files, set write permissions in the correct place, etc. However, the database manipulation has happened manually and we are looking for strategies on how to automate this.
We came up with an idea to write a custom migration library which will execute php and sql files, but it seems like a problem that has to be solved better by someone else. Anyone have any tips? Anecdotes? Strategies? Anything to help us get going in the right direction would be much appreciated. I'd even buy someone a beer or two
Speaking at TEK·X
I had announced this on my twitter feed, but I thought it warranted a blog post of it's own. I have been asked to speak at TEK·X, an awesome conference for PHP professionals. My talk, "Lean Mean PHP Machine" was accepted! Flippin sweet! Here is the description of my talk:
Implementing software development “best practices” can be a challenging feat, especially if you are in a very small team of developers. Little to no budget, stress to just “get something out”, and lack of understanding from management of what you really do means you have to make sacrifices, right? This talk will give you some insight on accomplishing your goals of being a top-rated development shop, even if you are an army of one. From justifying those best practices to utilizing free services to hiring additional help, this talk will run the gamut of running a software development shop at a small scale.
Speaking at a conference is a great responsibility and honor, but then I took at look at who the other speakers are and I was immediately humbled. So many of the other speakers are the movers and shakers in the PHP community. Hell, some of them actually helped write PHP. As soon as I saw the speaker list, I instantly got nervous. But a few reassuring words from my friend Keith Casey helped. I am just thankful that people like Keith and the rest of the TEK·X organizers are willing to give me a shot to share what I have learned about working with PHP in a resource starved environment.
So if you are a PHP pro and want to get involved with a great community, consider coming to TEK·X in May. Knowing (of) most of the speakers, and meeting most all of them at one time or another, I can GUARANTEE that you are going to get your moneys worth.
Looking ahead to 2010
I typically suck at making and keeping new years resolutions. I've never felt that making resolutions really changed anything, except for the first month or so of the year. As a perfect example, check out your local gym during the month of January...then go back in March. There will maybe be a quarter of the people there.
While I don't like resolutions, I do find that with a new year, it is good to reflect back on the previous one and evaluate where you are and what you want to accomplish in the new one. In an effort to keep myself honest, I figured I would record my goals for the new year here, in no particular order.
Grow My Business
2009 was an interesting year for AmberCube. We had a few clients, made a little money (enough to buy Garrison and I new computers), and joined some new ventures. The economy certainly affected our profitability, but I believe our focus wasn't as strong as I wanted it to be. My hope for the new year is that we can increase our client base and grow the business. Hopefully that means additional income too.
Advance Professionally
I accomplished a good bit at NC State in 2009. I lead the initiative to get the NC State Mobile Web up and going, helped a lot with the social media identity of the university, and started managing some part-time employees. I got more involved with the tech and social media communities in the Raleigh-Durham area, participated in BarCampRDU, and met a lot of great people. While all that is great, it's not enough for me. I'd like to establish myself more at the University and get to a level where I can feel like I make an impact. I'm not sure I can do that in my current position, but that doesn't keep me from trying. I already know that 2010 will bring an increased responsibility for me as I will be participating on the Campus Communication Committee, focusing on web and social media communications. And we are working on some really exciting projects for the mobile web presence. 2010 will certainly be busy, but my goal is to make it pay off professionally.
Travel More
Erin and I have talked about it a lot, but this year is the year. We have gone a few places since we got married (San Francisco, Memphis, Jamaica for our Honeymoon), but we have always wanted to go bigger. Our plan is to try to make it to Europe this year. I really want to go to Italy and Paris, so we are going to make it happen. We have been saving up money for 2+ years to go, so this is the year we are going to do it. Planning has already started
Oh yeah, and on the back of traveling, I am planning on buying a Digital SLR camera before making any big trips. That means I'll need to learn how to use the thing properly too.
Lose some bad habits
This is the obligatory "I want to eat out less, work out more, be healthier" one, but I need to add it to the list. We got into a bad habit of eating out several times a week, which is not only expensive, but un-healthy too. I worked really hard a few years ago to lose a lot of weight, and I don't want all that hard work to go to waste. To help me, I found a great website/iPhone app to help me called dailyburn. It will help me track my food and workouts, set goals for myself, and accomplish what I want to in 2010.
Explore more
Erin and I love to try new things, so 2010 will hopefully be a year to explore new things. Food, wine, beer, places, things to do. I want us to live while the living is good. Part of this is travel, but a lot of it has to do with what we typically do on the weekends. Lately, it has been sitting around in front of a computer, which is pretty lame. I hope the new year provides us with a kick in the butt to get out, experience all the great things Raleigh has to offer, and spend more quality time together.
Get more involved with the PHP Community
Warning...Geek speak to follow! I really love the PHP community. I swear, it is the greatest thing since sliced bread for a developer like me who has to operate on no budget and a tiny staff. I have recently joined the Zend Framework project, finally signing my contributor license agreement! That means I can start helping with documentation and the monthly bug fixes. I have also been invited to speak at TEK-X in Chicago in May. I am really excited about the opportunity to speak at my first professional PHP conference as an on-the-agenda speaker. I have done un-conference sessions before, but this is the first for-real one. I am nervous and excited, all at the same time. There are a few more conferences that I will be submitting papers to as well, so we'll see where that takes me...
I think that is enough stuff for the new year. Hope everyone has a wonderful, productive and exciting 2010.
How to/How not to handle criticism
Over the last few weeks, I have been involved in some intense discussions about how to deal with feedback. They all center around how to deal with users when they are not happy with how something works or how a situation is being handled. In my observations of people handling criticism, I have noticed a few horribly ineffective ways to deal with criticism, and a few good ways.
Ineffective Option 1: Ignore Them
This is probably the most popular. "If we ignore it, maybe it will go away!". Yeah right. All this will do is frustrate your end users, and if they don't get any satisfaction from submitting feedback in an acceptable way (help ticket, talking to a supervisor, etc), they will look at other, typically more destructive ways to let their voice be heard. They will turn to Facebook, twitter, blogs, email lists, wherever so that SOMEONE will hear what they have to say. Users feel like if you are ignoring them, you are basically telling them that you know more than they do, they are wrong, and their opinion doesn't matter to you. Ignoring problems don't make them go away, it makes them bigger.
Ineffective Option 2: Shut them up without helping them
This is typically initiated after the "ignoring them" option fails. Someone hears something negative about a project and thinks it is detrimental to it (which it likely is, but what do you expect after ignoring them?). Instead of engaging the person and trying to find out if they can help, they try to figure out how to make them stop talking by using a position of authority or influence. It is my opinion that this tactic is totally unproductive. The user feels like they can't give feedback (be it criticism or compliment), and you, as the one in charge of the service or product, don't have a clue when something is wrong because people are afraid to say anything for fear of getting in trouble. How do you expect your product to get better by shutting people up about it's problems? "Nothing to see here...move along"
Ineffective Option 3: Tell them they are wrong
This is akin to "ignore them", although more aggressive and ultimately more detrimental. Complaints are people's opinions, and by definition, opinions are "a view, judgment, or appraisal formed in the mind about a particular matter" (Webster). Their opinion is how they feel. They can't have a "wrong" feeling, just maybe a differing one than you. You have to respect your users opinions, and they have to feel as though their opinion is respected. Telling them they are wrong will only fuel their fire. If their complaint is that something doesn't work correctly, taking a few minutes to walk them through the correct process can save much heartache and turmoil.
Effective Option 1: Embrace the criticism
All the other options have generally negative impact, but this one...well, there is hope for this option. It reminds me of this commercial:
http://www.youtube.com/watch?v=f51maMnJHdc
If you look at every complaint as an opportunity to fix something, your customers will be so much happier and more willing to work with you. By embracing the criticism, you acknowledge that you (or your product) has flaws, and that you are willing to make it better.
Effective Option 2: Engage your criticizer
Some people just want their gripe be heard and go away. Others what to help be part of the solution. If someone complains about how something works, ask them for their input as to how they would like to see it function better, THEN FOLLOW THROUGH! Use your users as a valuable audience with which to get innovative ideas from! After all, they are the ones using your product.
------------------
There are probably many other ways to handle feedback, but those are the ones that I have observed lately. As someone who is offering a service, you have to understand that your users are your lifeblood, and without them you wouldn't exist. Treat them as though they are your most prized asset, and you will get rewarded with loyalty and appreciation. Ignore them, shut them up, or tell them they don't know what they are talking about, and you will have anarchy on your hands.
Pathways Graduation 2009
If you follow my blog, you may know that I have been in a leadership development class for the last year. The course has about 15 workshop days where you study leadership principles and strategies. We also have to be the "leader" for a project, and be on a team of other members in our class for a "team project".
The class is a lot of work...more than I had thought it would be. And the most challenging part was that all of our assignments were sort of grouped together at the end. This made the last month+ pretty stressful.
Last week, we had our final workshop, which was a day of presentations (both individual and group). My individual presentation was about my work with the NCSU Web Developers, and I think the presentation went off pretty well. I was told that I was the only one who ever quoted Vanilla Ice in a presentation, so I was proud
Here are my slides if anyone is interested:
After the presentation day was over, we had a graduation ceremony. We had 37 people graduate the program, which was a pretty big class. Along with my "diploma", I also won an award for "Inspiring a Shared Vision" for the work with my project. That made me feel pretty good.
The class as a whole was a learning experience. Going in, I thought I knew everything there was to know about leadership, but I learned alot of valuable tools along the way. Assuming you have the time and can work it into your schedule, doing Pathways at NC State is beneficial. I would just warn anyone that it is time intensive.




