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.

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.