Choose Your Own Adventure: Freelancer or Founder - Out Now in php[architect] magazine

I'm excited to announce that my article, Choose Your Own Adventure: Freelancer or Founder, appears in the January 2015 issue of php[architect] magazine, which is available online and in print now. I drew on my experiences as a freelancer who found himself rather unexpectedly growing into the founder of an eCommerce development agency to write what I hope is a very applicable, hands-on guide for all of the developers out there considering striking out on their own either as a freelancer or as the founder of their own agency.

php[architect] is a great magazine that I encourage all PHP developers to subscribe to - there's both a print as well as digital subscription, and I've been impressed with the quality of the articles each month.

If you have any questions or feedback on my article, please don't hesitate to post it here or reach out to me on Twitter at @JoshuaSWarren.

phpworld keynote: Turning Your Code into a Company: The Parts They Don't Tell You by Luke Stokes

Turning Your Code into a Company: The Parts They Don't Tell You by Luke Stokes - @lukestokes. Founder, CTO of Foxycart. Founded in 2007. Goal was to provide income for his growing family.

Starting a company is hard - it took 4 years of working full-time and then building Foxycart in the evenings and on the weekends, working as much as 10 hours on Saturdays. Don't believe the hype on TV - Shark Tank isn't real life. It's hard to build a company. But it's worth it!

A human being should benefit from what you do as a developer.

There's no such thing as an overnight success.

Getting "funded" is not a destination.

Build a business, not a startup.

Think about what do you believe - what will keep you motivated at 2AM?

Your focus has to be about the customer.

Belief that commerce technology makes the world a better place kept Luke going as he built FoxyCart.

Coders are insecure - we have a habit of hiding our code away. Don't be! Every failure is a step closer to success.

As a developer: solve problems, add value, keep learning.

Listen to your customers!

Motivation - passion is required, but it isn't enough. Who will talk you off the ledge? Think about paying customers. Encourage each other.

There's no glamour at 2AM - building a business is hard.

Solve real problems - if you'd pay for it, others might also.

How did Luke get to where he is with Foxy cart: slow and steady, grow the team with awesome people, focus on the product.

Focus on the product. Build a solid development team, not a sales or marketing team early on.

Fear can be healthy - don't make the jump to full time with your new company until revenue is a nice, consistent positive number.

There's great tools out there to help you build your company now. Check out http://bit.ly/foxytools for some recommendations.

My path as an eCommerce merchant-support monkey-developer-executive-partner

Winding Mountain Road

This article was inspired by this response from Piotr: https://twitter.com/piotrekkaminski/status/461551105554386944

For some reason, the 'what about regular [...] devs' part struck a nerve and made me realize that many people aren't aware of my varied background in eCommerce and even with Magento.

Long before Magento existed, I was a developer. My first experiences with eCommerce took place before the dot-com boom and bust; at roughly the same time I began shopping online (everyone thought I was nuts) and developing eCommerce sites. These sites were in pure PHP (PHP 3, at that), and it was so long ago, a majority of people had never heard of this crazy new thing called PayPal.

Fast forward to 2004 and in addition to development work, I was given the opportunity to become involved with a startup-stage eCommerce merchant. So, I found myself working as both a developer and an eCommerce merchant. At the time, we were using osCommerce. Dark days. I continued to freelance as a developer, working with PHP, WordPress and osCommerce projects primarily.

Now jump ahead to 2007 - I was in the middle of leading a complete revamp of our website, and in desperate need of something better than osCommerce. Given that Ruby on Rails was all the rage at the time, I decided we should write our own eCommerce site, from scratch, using Rails. That project struggled for a few months when I then discovered this cool new thing that would eventually become Magento. It solved all of our gripes with osCommerce and seemed to be the perfect platform. I actually rewrote a good portion of the osCommerce importer that was provided in the early versions of Magento so that we would be able to make the jump from osCommerce to Magento.

In 2008, I realized that my freelance eCommerce development work was taking more time than my work with the eCommerce merchant, so I founded Creatuity and began to focus more of my time there. I believe I've always had a unique perspective because of the work I did as a front-line employee at that eCommerce merchant as well as the ongoing consulting I've provided to them over the years; I know the ins and outs of being an eCommerce merchant on various platforms, so I tend to see things a bit differently than the average developer.

In 2008 and 2009 my work consisted of a mix of osCommerce, WordPress, general PHP and Magento. In late 2009, one of my largest contracts was with Interspire (now known primarily as BigCommerce), where I was a support monkey and then PHP engineer on two of their products for almost 2 years - their eCommerce platform (which eventually became BigCommerce), Interspire Shopping Cart, and their CMS system, Interspire Website Publisher. Between those two products and the two roles I served in at Interspire, I was able to work with literally thousands of eCommerce merchants, and I was able to watch Interspire grow from literally a handful of employees to 50+ people almost overnight.

During this time, I made the decision that Creatuity would go 'all in' on Magento - I had seen a number of different eCommerce platforms and it was clear to me that the one platform that met the needs of both merchants and developers was Magento. This was also when Creatuity went into a very exciting, but very challenging, period in our growth - we grew from 1 employee to over 20 employees in a very short span of time. Founding Creatuity and my goals for Creatuity is an entire article by itself, though - I basically wanted to create a company that I would love to work for, because I hadn't found one yet. I didn't set out to build the biggest company, or make the most money, but instead to build a positive environment that both clients and employees would benefit from.

So that's my experience as an eCommerce merchant, support monkey, developer and executive. Surprisingly enough, I didn't have experience as a Magento Solutions Partner until relatively recently - Creatuity joined the Magento Solutions Partner program in 2012. Not joining the partner program sooner is something that I regret, but to be honest, I had a fairly jaded view of the partner program when it originally launched, as I think many community members did at the time - and some still do.

This winding path through the world of eCommerce and especially Magento gives me an interesting take on things. I spend most of my time these days on executive/partner type work, but I enjoy things related to development work the most and when I discuss eCommerce, I find myself thinking from the standpoint of an eCommerce merchant most of the time.

The path I've taken definitely makes it challenging when the Magento Imagine registration form asks what my role is - for some reason, there's no option labeled 'merchant-support monkey-developer-executive-partner'. Maybe next year?

Photo credit: The featured image that appears when you view this story from the homepage is from jstephenconn's Flickr photostream. Seemed like an excellent metaphor for the path I've taken thus far in eCommerce. 

How I Hire: Questions & Screening

Kalen recently asked on Twitter for tips on hiring frontend developers: https://twitter.com/kalenjordan/status/453902785948311553

Many people responded with great advice - giving candidates a test project was a frequent answer, and a great step to take. However, even before you assign a test project, I think it's important to evaluate each candidate on several things above and beyond just their development skills.

At Creatuity, I've built our hiring process over the years with input and ideas from books like Joel Spolsky's (CEO of Fog Creek Software) book Smart and Gets Things Done and Tony Hsieh's (CEO of Zappos) book Delivering Happiness. Combining ideas from these books and my experience growing Creatuity over the years and tracking the success of each person we've hired has given us a fairly unique approach.

In what will hopefully become a series of articles, I'd like to share this approach to help both other companies hire better and to help people who are applying at Creatuity understand how the process works and how they can impress us.

Today, I'd like to focus on one of the very first steps of the process - questions & screening. After someone has found our job posting (for instance, our PHP eCommerce Development Intern posting, or if that's not an active posting when you read this, pick any of the positions in our Texas office from this list of open job positions at Creatuity and follow along on that one - the process is similar for both technical and non-technical roles), they're faced with more than just the usual fields of name, resume and cover letter. We ask a few additional questions on the initial application, such as:

Why do you want to work in software development?

Do you find ecommerce interesting? Why?

Any other comments you'd like us to consider while reviewing your application?

These questions serve several purposes. We're looking for a few different things:

  1. Did the candidate answer all of the questions with short, brief sentences, giving little detail? If so, that's a good sign they're applying everywhere they can, looking for any job at all, and not specifically interested in working for us or working in this specific position. That's usually a bad sign.
  2. Do they seem passionate? Passionate about their work, their life, our industry? Passionate people tend to be successful people.
  3. Does their response seem well-written? Do they use text (SMS) abbreviations, or do they write professionally? One common thread I've seen in many, many books and articles on hiring is that no matter what the position is, written communication skills can be one of the biggest indicators of potential success or failure as an employee.

Based on the resumes and responses to these questions, we'll generally select a large number of people to send a followup screener to. This screener is sent via email and consists of a few more questions. For instance, for our marketing internships, we'll ask:

Why do you want to work at Creatuity?

When you visit our website at Creatuity.com what do you notice? How well do you think it communicates our value and our brand to potential clients, and what would you change about it?

We strongly believe in work-life balance and making sure our employees have an opportunity to pursue their hobbies and have time off to spend with friends and family. What are some of your hobbies?

What's the most interesting personal project you've completed?

Include a link to your blog and Twitter accounts if you'd like, to help us understand your experience with blogging and Twitter/social media.

We strongly believe in our Core Values and want to find employees and interns that mesh well with these values - which of these values do you identify with the most?

This is also where we'd generally ask for a sample project (in the case of marketing interns, we give them a brief overview of our current marketing efforts and ask them to critique it and provide a course of action they would take for marketing our services).

This series of questions is designed to judge a few different things before we then select who we call in for an interview, such as:

  1. Their desire, interest and motivation level - the majority of candidates never even reply to these questions. If you won't take the time to answer these questions when you're looking for a job, what sort of motivation levels will you have when you're working each day?
  2. Their basic level of skill in the field we're hiring them for - we'll dive into this further during the interview, but we want to get a feel for their experience before we get to that point.
  3. If they are really passionate about this field - if their most interesting personal project is related to ecommerce (our focus at Creatuity), then that means they're really passionate about the field, and that passion will show in their work.
  4. Questions about hobbies, etc., allow us to start getting a feel for how they might interact with existing members of our team and oftentimes uncover strengths a person otherwise wouldn't think to mention during an interview.

Once a candidate passes the initial application screening and answers these questions, we'll generally schedule a phone or in-person interview. After implementing these steps, hiring definitely takes longer - a majority of the people who view the job posting don't apply and a majority that apply don't answer the follow-up questions. However, those that do make it through this process are much more likely to be individuals we would make a job offer to, and those individuals also tend to be much, much more successful employees.

Thanks to this process, turnover is very, very low at Creatuity - this, combined with our accelerated review process during the first two months of employment has almost entirely eliminated hiring mistakes.

The jobs we're hiring for are all in our offices, so we always do an in-person interview as the last step, however, this process could be adapted and has been used with remote hiring as well - either through job postings or sites like oDesk.

If you have any questions about our screening processes, feel free to post them here or find me on Twitter - @JoshuaSWarren - I'd love to discuss my approach to hiring with you. Also let me know what aspect of the recruiting/hiring/onboarding process you'd like me to write about next.

I hope this helps Kalen and anyone else that's looking for a solid way to hire great candidates.

Returning to my Geeky Roots in the Magento Community

Magento Imagine

Over the years as I've grown Creatuity from a single developer (myself) to a company employing over 25 people, my average day has changed quite a bit. Originally, I did everything - sales, billing and all of the development work. With my background in PHP development (I've been working with PHP for over 15 years - I have to catch myself when I talk to our new developers and development interns, because I have found myself saying things like "Back when I started, we didn't have all these object oriented features in PHP!"), the past 3-4 years as Creatuity has really grown have challenged me. I've found myself spending less and less time developing and writing code and more and more time doing things I had never done before that took me well outside of my comfort zone. It's been a great experience - I've learned more about business, management, hiring (and firing, unfortunately), marketing and what it truly means to be an executive in the past few years than I ever imagined I'd learn in a lifetime. I've also gone from working by myself to having an awesome team of developers, designers, writers, account managers, interns and other managers to work alongside. I'm incredibly proud of where the Creatuity team has taken us over the past 6 years.

Recently, I've found myself in an interesting position - I've stepped back from the breakneck 90+ hour weeks, working from the moment I woke up to the moment I finally crashed in the middle of the night on pushing Creatuity from a startup to a successful ecommerce development agency. We've grown to the point that I can allow myself a slightly less hectic schedule and know that our team will still work together to keep us moving in the right direction. As this has happened, I've been asking myself the best way I could spend the bit of additional time I find myself with.

The answer, so far, has surprised me a bit - while we have a team of Magento Certified Developers at Creatuity that do all the heavy lifting on our client projects, I find myself wanting to get back into development. And wow, has it changed. As I became more of a manager and less of a developer, I fell out of touch with the Magento development community; I didn't have or take the time to pursue Magento Certification or a spot on the Advisory Board when I was asked about that several years ago. To put it another way - the last time I was spending all of my time on Magento development, implementing Magento sites and customizing them myself as a developer, GitHub - where so many community members freely share their Magento work now - was so new that I didn't know of a single Magento developer using it. Most of us were still using svn, and there were no certifications, no study guides - learning Magento was a completely different experience.

In a lot of ways, these changes have put me off from getting back into the Magento development community - I feel somewhat like an outsider and fairly overwhelmed, and coming from my position as CEO of a Magento Solutions Partner, I am always worried it will seem like an intrusive attempt at social marketing by a company that should know better. However, I've been keeping up with quite a few Magento developers on Twitter and I'm slowly but surely sharpening my Magento development skills back up. Thanks to some awesome community members like Kalen JordanDaniel Fahlke, Phillip Jackson and Vinai Kopp, not only am I beginning to feel at home in the Magento dev community again, but I also have found some interesting opportunities surrounding my interests in writing, continuous integration and continuous deployment where even with my fairly rusty "hands on" Magento skills, I can contribute back to the community.

I'm renewing my interests in other areas as well - travel, craft breweries and writing in general - so expect to see a wide variety of topics from me here and on Twitter, but first and foremost, expect to hear about Magento and Magento development quite a bit. So, for my less geeky friends and family - my apologies, it's about to get pretty technical in here. But hey, you can always keep up with my less technical goings-on via my Facebook and Foursquare accounts. And to anyone in the Magento dev community reading this - send me a quick hello on Twitter and let me know what you're working on. I'd love to help out!

With special thanks to Nathan Castle for taking the excellent photo from Magento Imagine and releasing for the community to use via Flickr, which I've used as the cover photo for this post. Certainly the coolest photo I've seen of a large gathering of Magento geeks.