Jason Austin's Blog Life and times of a PHP Developer in Raleigh, NC

19Apr/102

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!

Tagged as: 2 Comments
13Jan/104

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 :)

13Jan/102

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.

12Jan/100

NC State Goal for 2010: Improve adoption of the Brand


Last year, our campus adopted a brand book.  This is a guideline for how NC State media (web, print, etc) is to be published.  It was something that our campus SORELY needed, and a great step in the right direction.  In 2010, I'd like to help NC State improve the adoption of that brand with respect to the web, and be better organized along the way.

To accomplish this goal, I believe it starts with developers and designers.  Our campus has an awesome community of web developers and designers.  I have been the key organizer for the group for the past year, and my continuance with that will be a focus in 2010.

More Meetups, More Topics

The plan for 2010 is to have monthly meetups that are a bit more structured than years past.  The goal is to come up with a few presentations about web-like stuff, and have the community vote on what presentations they want to hear for the next month (similar to how IgniteRaleigh selects talks).  The idea would be, after a while, people would start submitting their own talks so that a few of us don't have to do them every month.  Every meetup, we'd have one or two topics, then use the rest of the time for socializing and general Q&A.  We are also going to be trying to give equal representation to the designers among us.  The better informed our developers and designers can be, the better they will be able to execute the goals of the brand book.  And an active community, is (hopefully) a productive, happy one.

Social Media Push

Last year, we launched http://twitter.ncsu.edu and it was a massive hit.  I have no facts to back it up, but we HAVE to be the most actively tweeting campus around.  We have 74 official NC State accounts for goodness sake!  I also helped teach a class last year on "Tweeting for NC State University", which made it to the home page of slideshare.net (way cool).  In 2010, I'd like to continue our momentum and tap the Facebook, YouTube, LinkedIn, whatever-social-media-outlet-you-want-to-name markets as well.  I'd like to see us expand on the NCSU twitter site to also pull feeds from other social media outlets.  I think it would provide a great resource to incoming students, allowing them ways to connect with new people on campus.  I'd also like to organize some additional training for people on how to effectively use social media on behalf of the University.  This will help us spread the brand to new and prospective students.

Certified Developer/Designer Program

This one is something that I have been thinking about for a while, and it may seem a little bit out of left field, but hear me out.  I'd like to setup a system where designers and developers are rewarded for knowing and executing the brand book the way it should be.  It would involve a bit of work on behalf of the employee, but the rewards could be tremendous for them and for the department or college they work for, especially in our resource-starved environment.

Here's the gist.  We setup a curriculum which involves classes on the brand book, effective design principles, Photoshop, accessibility, usability, etc.  This would be a lot of work to get started, but we already have a lot of good people who are already doing most of these classes already.  As an employee completes the curriculum, they are accepted as a certified developer or designer for NC State.  Part of them keeping this designation would be for them to turn around and help teach others.  Blog, teach workshops, answer questions on the forums and mailing lists.  It is a communal-like approach which may or may not work, but it would give employees the chance to add "teacher" to their toolbox of skills.

That sounds like a lot of work, right?  So what's in it for the employee or department?  Here is where I need to secure funding, but I do have a vision.  First off, free software.  Adobe Creative Suite, Zend Studio, Dreamweaver, whatever.  Right now, colleges and departments have to purchase individual licenses for each employee that wants to use it.  If you are a certified developer or designer, we will give you a license to use for free.  Secondly, access to pre-made templates, logos, fonts, layouts, and all sorts of brand-related goodies.  It will make the employees job easier, and they will have more time to focus on other things.  Third, a conference lottery.  Conferences are great ways to improve on your profession, but the sad thing is that we have very little funding to send people to conferences.  All certified developers and designers would be put in a lottery once a year to win a "scholarship" to the conference of their choice.  It will give people who don't typically have the opportunity the chance to branch out and attend events like An Event Apart, DrupalCon, ZendCon, or whatever they want.

Right now, this is all a dream with no real push behind it.  But I think it would a great rewards program for our 100+ developers on campus.  I know this will involve the efforts of lots of people and myself.  But what do you folks think?  Is it crazy to expect already busy people to do even more, even though it is for the betterment of NC State?  Are the requirements too big?  Are the rewards too small?  What kind of challenges do you see?

Heavy stuff, but I will leave you with a bit of Dilbert humor about certifications...

DISCLAIMER: These are my personal goals for NC State in 2010. None of this has been signed off on or anything like that, it is just what I hope to accomplish in the new year.

4Jan/103

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.

23Jul/090

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.

25May/092

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.

1Apr/092

The Crappy Economy Express

I lead a double life.  My professional career takes me from being a peon one minute (NC State), to a CEO the next (AmberCube).  I've been doing this for a while now, and have only recently appreciated the vast differences between the two.  There are lots of things happening for me/to me/in spite of me in both arenas.  Both arenas come with their own set of unique and challenging problems to solve.  Some days I feel like I can take on the world.  Other days I feel like one guy, standing on the tracks in front of a runaway train with no hope of slowing it down.  Every day I feel lucky to have a job doing something I (usually) love, but recently I have felt more like the guy on the tracks in staring down the oncoming "crappy economy express".

I used to think that being employed in Higher Education meant that my job was safe.  Yeah, it meant that I would have to endure budget cuts, inconsistent raises, and an overshadowing presence known as NC State Government.  But hey, at least I was helping shape the young minds of tomorrow, right?  And I wasn't worried about being laid off every week, right?

Well if this economy has taught me anything, it is that Higher Education, specifically State Government, is certainly not immune.  The state government is going to have something like a $3 billion deficit for the next fiscal year, so everyone is being asked to cut back...and I mean WAAAAAAYYYY back.  No travel.  No training.  No new computers.  No new anything.  Not even office supplies.  From my perspective (limited as it may be), we have hid the checkbook and considered our bank accounts closed.

IT is one of the myriad of places where the the state is looking to trim spending.  Our CIO was asked to present the Chancellor with several ideas that would save at least $1 million EACH from IT.  That is a scary scary number.  $1 million doesn't mean not buying new computers, or halting travel, or getting rid of professional development.  $1 million means one thing...jobs.  Being that one of the areas under investigation is web services, it means that people I know and work with (myself included) are being looked at with a very critical eye right now.  Someone, somewhere sees money to be saved here, and in some ways I don't disagree at all.  It just makes me nervous for myself and my colleagues.

I will be keeping a close eye on where the discussion of centralizing web services will go.  I see how the administration sees this as a possible cash cow.  There are lots of pockets of developers, designers, graphic artists, etc. all over campus.  If we put all those resources together, we can save a ton of money right?  Right?  Maybe, but there are LOTS of things to consider before jumping in.  I can also see how this concept is terrifying for people in the colleges and departments.  What will happen to their personal attention they are used to?  What about their unique and distinctive needs?  Where do those things fit into this plan?

The fact of the matter is that right now, I have more questions than answers....and I am sure I am not alone.  As State Employees, we aren't used to being worried for our jobs.  In my 8 years as a State Employee, I have never come to the office thinking "is today the day I might get laid off?".  It is all new territory, and with new territory comes fear.  I try to believe that the people making decisions in our organization have NC State's best interest at heart.  I am sometimes disappointed, but I think it is much easier to go through life believing people are inherently good and decent, rather than someone is always out to get you.  Naive, sure.  But like George Michael said, you gotta have faith.

30Mar/090

Update Mashup

None of the following warranted an entire post to itself, so here is a little recap of the Jason Awesome happenings of late...

Vegetarian Update

We've made it this far...only 13 days left.  I have found that I am OK without eating meat, but I am currently incredibly bored with my food choices.  I don't think I can eat anymore cheese pizza or pasta without freaking out.  We have found some good places to eat vegetarian (Red Robin, Flying Biscuit, Moe's FTW!) and some places that FAIL like none other (Village Draft House, anywhere Chinese, Chili's).  In case anyone was wondering about my health over the last month+, I have lost a few pounds, but nothing significant.  We actually ate much healthier when we ate meat than we do now.  Also my energy level has been sustained by eating almonds, taking vitamins, and keeping my protein up.  Only a few more days and we will have done it!

Disconnected Sundays

While neither Erin nor I have completely unplugged on Sunday's, we have made a more conscience effort to.  We have gone to the grocery store together, gone to the movies, done some shopping, cleaned house, etc.  It has been really nice, and I have enjoyed the time we have spent together.  Needless to say, we are going to keep disconnected Sundays around.

OIT Award for Excellence

I was nominated by my friend Nick for an OIT Award for Excellence.  They had a reception for those of us who were nominated (there were 9 total) where they announced the winners.  My friend Jen did my introduction and said some really nice things about what I have been doing at work.  I didn't win, but that was OK.  It is just nice to be recognized.

Objective-C and iPhone Development

I have been reading an Objective-C book and trying to work my way through the syntax of the language.  It is pretty straight forward and I am almost done reading the book.  This will help me with my iPhone application development.  The best part about learning Objective-C was how I came to own the book that I am reading.  Erin and I were at Southpoint because I had to get a new power adapter for my MacBook.  Erin didn't want to wait with me, so she went next door to Barnes and Noble.  When I got done, I texted her and we met out front.  She handed me a bad and said "I got you something".  I looked inside and there was the Objective-C book that I had been eyeing.  True love is when your wife gets you a programming book when you don't even ask her to :)

21Mar/090

Awesome iPhone Dev Class

On Thursday of this past week, Steve Hayman, the CE of Apple Mobility, came to campus to do an iPhone development class for our campus web developers group.  If you've been following my posts lately, you know that I have been looking forward to this for a while, and that I have gotten totally into iPhone development lately.

Steve had a great class.  We learned a good bit about the capabilities of the iPhone, he demoed a few apps, and we even built a flashlight app.  But the best part of the class was not during the class, but after it.

My co-workers (Jen and Nick) and I went to lunch after and the possibilities for development dominated our lunchtime conversation.  While this is totally NOT unusual, the excitement was unprecedented.  We probably had 4 or 5 implementable ideas by the time we left lunch, so it was really cool.

In the next few weeks I am going to get some folks on campus together to start a community-developed NC State app for the iPhone.  It should be an awesome experience, and really give value to the University.

And as a side note, AmberCube (the company that Garrison and I own) have taken the plunge and dropped the $99/year on an iPhone development license.  Expect to see some great things coming from us in the future :)

Switch to our mobile site