Speaking at SunnyConf

SunnyConfI just received word today that I was accepted as a speaker for SunnyConf, Arizona’s first Ruby conference, which will be held September 25, 2010. I’ll be giving a talk on “Leveraging Rails to Build Facebook Applications.” This is version 2.0 of the talk, incorporating major changes that were announced by Facebook at their F8 conference in April.

Earthquake Hits DC Area

I felt my first earthquake this morning — like a freight train rumbling past my house just outside. It was a minor quake, just 3.6 on the Richter scale.

Twitter Problems

I just got “rate-limited” doing a search on Twitter for #RubyNation. This was the first time I’ve used Twitter in the past week because I’ve been busy with multiple projects. It’s also, by extension, the first and only search I’ve done in the past week. I have to say that either Twitter’s search is broken, or their algorithm for identifying people who need to be rate-limited is totally FUBAR.

Note: It turned out to be a widespread Twitter problem.

Organizing and Running a Conference

For the last three years, I’ve been fortunate enough to work with a great team of people to run a successful and profitable technical conference called RubyNation. This conference is an annual event, part education and part entertainment, that promotes the Ruby programming language. As you might expect, I’ve learned a few things about how to organize and run a conference over the last three years.

I’m going to share some practical tips and suggestions about how to organize and run a relatively large-scale public event like a conference. Some of the tips may be useful across a wide range of event types, but my focus here is primarily on the kind of technical event with a series of educational talks and a small group of speakers.

Let’s start off with the basics. I divide conference-related activities into two basic categories:

  • The Prerequisites: These are the activities you need to accomplish to make your event possible.
  • The Timeline: This is the schedule of supporting activities you need to accomplish to make your event a reality.

It’s easy to talk about running an event. People do it all the time. How many times have you heard someone say something like:

“Dude, we should run a conference.”

Or:

“We could run a better event than this one.”

Talk is cheap. Putting on an event takes time and effort. It takes planning.

Prerequisites

  1. Know Your Auidence: Before you even think about putting on a conference, you should know your audience. For RubyNation, the primary founders were already organizers and members of the Northern Virginia Ruby User’s Group, usually referred to as the NOVARUG. We had experience attending other technical conferences, including Ruby-oriented ones, and therefore had some idea of what a successful local event would look like. We also knew when the major national events (RailsConf and RubyConf) were held, so we knew when not to do our conference.
  2. Draw: If you’re going to put on an event, you need a draw. You need something to attract people to your event. For RubyNation, we were fortunate that there were some prominent members of the Ruby community that either lived in the Washington DC area or were here so frequently on business that attending a local conference wouldn’t be a problem. We asked several of these prominent Rubyists if they’d speak at our conference. When they said “Yes,” we then had the legitimacy of having secured some top-notch speakers that our audience would recognize.
  3. Venue: Your choice of venue can make or break your event. If it’s the first time you’ve run the event, you should be conservative. Hotels are expensive venues, and therefore a risky bet for your first-time event. For RubyNation, we held our first event in an auditorium that we rented from the Center for Innovative Technology (CIT), an organization whose mission was to promote technology in our area.Deciding on a venue also crystallizes a bunch of other decisions that you have to make about your event. Like, when are you going to hold your event? You should probably schedule it nine months to a year in advance, especially if it’s your first time running this type of event.What format will your event have? Is it going to be a one-day event or a two-day event? Single-track or double-track? For RubyNation in its first year, our venue was relatively cheap, but it only had a single auditorium; clearly, then, we were a single-track event. We also opted for a two-day conference, emulating other similar conferences that had been successful. We chose to schedule our conference for a Friday and a Saturday.How may attendees should you plan for? We knew that there were two major local user groups for Ruby, the NOVARUG and the DCRUG. Plus nearby groups in the Shenandoah region, Richmond and Baltimore. We had also witnessed NOVARUG meetings where a single celebrity speaker had pulled in over a 100 people. So, we planned conservatively for a first-year event that would accommodate 135 people. If you plan too low, your event sells out, which is great advertising for next year’s edition of the event. If you plan too high, you’re increasing your risk and costs. Be conservative.How much should tickets to your event cost? With the venue and catered lunches, we defined a ticket price in our first year that put break-even at 100 tickets. We purposefully didn’t plan on money from sponsors, so any sponsorship money we received just reduced our risk by effectively lowering our break-even target.

If you’ve gotten the prerequisites figured out, you’re well on your way toward putting on a successful event. There’s still a lot to be done, but it’s a major accomplishment to be able to talk to people about your event and give them information like the date of the event, the expected number of attendees, the estimated ticket price, etc.

Timeline

Once you’ve got the prerequisites handled, the train is starting to roll down the tracks. Well, the “tracks” are your timeline. You’ve got a lot of things that need to be accomplished to make your event successful. From experience, I can also tell you that the train speeds up as the conference gets closer, so there’s a lot of activities you’ll want to accomplish as soon as you reasonably can.

Here’s a list of activities that should be on your timeline:

  • Web Site: You’ve got a venue, a date and some well-known speakers to serve as a draw. You need a web site, and it needs to up as soon as possible. You need to make your web site as professional as possible, because you’ll be using it to: 1) convince your audience to buy tickets, 2) convince other potential speakers that they should speak at your event, and 3) convince sponsors that they need help support your event by giving you money. You can’t accomplish these tasks with a site that looks like it was designed by a high school student.
    When: As soon as possible.
  • Promotion: As soon as your web site is up, you need to begin promoting your conference. Announce it on the bulletin boards for any nearby user groups that you might reasonably draw your audience from. Send out emails to people who might be interested in it. If there are general web sites that cover your conference’s topic area, contact them about promoting your event with a banner or listing. Make sure your web site also features banners that your audience members and speakers can use to promote the conference on their blogs and web sites. Check out the badges from RubyNation for an example. Promotion is an ongoing task that really kicks into high gear when the tickets go on sale.
    When: As soon as possible.
  • Sponsors: You don’t have to have sponsors, but each sponsor who provides you with cash or services decreases the risk of your event failing. Sponsors want to know what they’ll get in return for their support, so you’ll have to create a polished Sponsorship Prospectus. See Rubynation’s 2010 prospectus as an example.
    When: After the web site is up.
  • Ticket Sales Capability: You need to be able to sell tickets for your event, preferably allowing people to use their credit cards. You’d also like to sell as many tickets as you can as early as you can, because every ticket sale reduces your risk and brings you closer to that magical break-even mark. You could implement online e-commerce features yourself, but you’re much better off hiring a service like EventBright to handle your ticket sales for you. They’ll take a small service charge from each ticket sale, but it’s well worth it.
    When: At least 4 months before the event.
  • Call for Papers: You’ve secured several speakers to serve as a draw for the conference, but you don’t have a full roster yet. For RubyNation, our first year roster consisted of 11 speakers over the course of two days. You’ll need to put out a Call for Papers to solicit additional speakers. A typical Call for Papers simply asks prospective speakers to provide the title of their proposed talk, an abstract and their contact information. I recommend a Call for Papers lasting from 4 to 6 weeks, supported by marketing to get information about the event out to potential speakers. You can always extend the interval if you’re not getting enough proposals.
    When: 128 – 140 days before the event.
  • Proposal Evaluation: The Call for Papers has ended, and you’ve got a bunch of proposals. They need to be evaluated, and then you’ll need to create a schedule for the conference. Allow two weeks for the evaluation, it’s harder than you think. It’s best if the organizers can meet in person to discuss the proposals. You’ll need to get the final schedule up on the web site as soon as you can.Remember to choose one or two backup speakers in case any of the speakers have to cancel (backup speakers should get free conference passes just like the chosen speakers). Also, remember to put a disclaimer on the final schedule, i.e. — “Schedule may change without notice.” This covers you for changes; even one of your draws could conceivably cancel.
    When: 100 days before the event.
  • Selling Tickets: I recommend starting to sell tickets as soon as the conference schedule is finalized and available on the web site. Start with an “earlybird” price to encourage customers to buy tickets. Raise the price one month before the conference and one week before the conference. For RubyNation, we allowed 65 days for ticket sales and sold out in 60. Give yourself a little more time to sell tickets (it’s easier on the nerves).
    When: 75 – 100 days before the event.
  • Conference Program: Many conferences hand out a Conference Program, generally a professionally printed publication that provides information about the conference, the schedule and advertisements from sponsors. The hardest task is to get high-quality, usable advertising copy from the sponsors. Start early when asking for their artwork, ask them often if necessary and give them a HARD deadline after which they WILL NOT have an ad in the program. It’s the only way to train them. Print the conference program 30 days before the event if you can.
    When: 30 days before the event.
  • Swag: Swag refers to the items that you hand out at the conference, such as T-shirts, polo shirts, conference badges, toys, paper hand-outs, technical books, etc. If you’re getting swag from sponsors, try to make sure you receive it 30 – 45 days before the conference. For items that need to be designed, such as shirts and badges, try to get the designs finalized in the same timeframe, even if the final orders have to go in later.
    When: 30 – 45 days before the event.
  • Pre-Conference Review: This is a face-to-face meeting of the organizers about two weeks to a month before the conference. The purpose of this meeting is to make sure that everything is ready for the conference: audio/visual equipment, room setups at the venue, speaker guidelines, policies/procedures, catering details, etc. 
    When: 14 – 30 days before the event.
  • Venue Walk-Through: One or more of the organizers should visit the venue one more time in advance of the event. This is a last double-check to make sure everybody, including the venue staff, is in sync on what’s about to happen. The walk-through should confirm how the rooms will be set up, where lights will be, how the stage will be set up, where attendees will be fed lunch, where the registration booth will be, etc.
    When: 7 – 14 days before the event.
  • Retrospective: After the event, the organizers should get together at a nice restaurant for a Retrospective (at the expense of the conference). With egos checked at the door, the organizers should discuss the things that worked well for the conference, and the things that didn’t work so well. If the event is held again, the goal is to improve it by repeating the activities that worked, and improving on the imperfections. This has been a key factor in improving RubyNation each year.
    When: 7 – 21 days after the event.

There’s no doubt about it, putting on a conference is hard work with, at best, a modest income. But the rewards can be immense. Professionally, conferences are excellent for knowledge acquisition and networking; as an organizer you’re especially well-positioned for networking. You also gain the satisfaction of doing something nice for your community, be it a group of programmers specializing in Ruby or an audience of dentists trying to improve their skills. If you follow these tips, you’ll be well on your way towards putting on a high-quality event.

RubyNation Contest

It looks like RubyNation will be doing an online photo contest using the Votridea Online Contest Platform (which I helped create). I’ll post more news as it becomes available.

Votridea Contest Platform Launches

Votridea is an easy-to-use online Contest Platform that fosters innovation by building communities around ideas and challenges. Votridea is an all-in-one, customizable suite of contest and community management tools that makes the complex process of building online multimedia contests simple. It’s also the project that I’ve been working on for many months now, so I’m very pleased that we’ve just launched this dynamic product.

Votridea Contest Platform

Votridea is an online product created and backed by MetroStar Systems, a fast-growing consulting company located in Northern Virginia. MetroStar Systems has been rated one of the nation’s fastest growing companies by Inc Magazine.

Votridea has its genesis in an earlier project. In 2008, MetroStar was approached by the Department of State’s Bureau of Educational and Cultural Affairs to implement and manage an online video contest for an international audience. The purpose of the contest was to promote the bureau’s ExchangesConnect social network, an online community that promotes cross-cultural understanding around the world.

MetroStar has now run the bureau’s contest for two consecutive years. During this time, we built a robust community engagement platform that successfully handled all the issues involved in running an international contest that featured users in more than 50 countries worldwide. Thanks to the contest platform, ExchangesConnect has seen unparalleled membership growth which has helped them reach an ever-wider audience with their message of understanding.

Votridea is the evolution of that robust, proven platform. It’s been generalized so we can easily skin the platform for each individual contest. It’s also been productized so that we can easily tailor features to meet the needs of new clients. Along the way, we’ve also added support for photo contests, multiple video hosting options, improved analytics for tracking contest performance, etc.

Best of all, it’s a cloud-based solution, which means that we can scale to meet the demands of any online contest, no matter how big the audience. Find out more about Votridea now.


Yes, for you technophiles, the platform uses Ruby on Rails, Amazon EC2 for storage and is hosted with EngineYard (one of the top cloud-based hosting solutions for Ruby/Rails applications).

At the Crossroads

It came to me a while ago that I had come to a crossroads in my career. This isn’t the first time that this has happened. Like everybody else, sometimes you reach a point in your career where you need to decide what direction you want to go next.

Should you accept the promotion and become a manager? Should you keep a particular job despite all of the overtime you have to work? Is your current role preparing you for the next stage in your career?

I’m a Software Architect, with a specialization in information-rich web applications. I’m not talking about brochure web sites or somebody’s WordPress blog, although I can build those, too. I’m talking about large-scale web sites that serve thousands of people, with scalability options to serve millions if need be. Think “Amazon One-Click Ordering.” No, I didn’t build Amazon’s product ordering functionality…but I probably could.

So, why did I feel like I’d come to a crossroads in my career?

Let me ask you this? How many 50-year-old software developers have you met? I’m not 50, but I can see it on the distant horizon. I also know that there’s a modest amount of ageism present in the software industry, enough so that older developers are sometimes considered less innovative, less in tune with current technologies and less likely to work the crazy hours (for no additional compensation) than younger developers.

Like most people, I want to keep making increasingly larger amounts of money. If you remain technical, there’s a soft cap on how much money you can make. After all, at some point somebody is going to ask if you’re really worth twicewhat a more junior developer is worth.

Hence, the crossroads.

How do you manage your career so that you’re worth what you want to be paid? When you’ve started to bump into that soft cap, how do you make yourself valuable enough to get beyond that barrier?

A Historical Perspective

Before I answer those questions, let me go back into the depths of time for a historical perspective. In 1990, which is like 10,000 B.C. in Internet years, I worked for a defense contracting firm, one of the proverbial Beltway Bandits.

I don’t want to tell you who the company is…well…actually, I do. They were called HFSI, a company that no longer exists. They were a contracting firm that splintered off from Honeywell, then got bought by a French company, then got acquired by a company called Wang. Who knows where they are now.

I worked for a directorship that consisted of about 60 people, with eight managers underneath the director. He was a hoot; probably the worst director I’ve ever seen in my life. He used Machiavellian tactics to play his managers off against each other so none of them would ever have enough power to threaten his position. He made them do all the real work, while he played flight simulator games on his PC all day.

I was the youngest person in this group. The lowest paid. The lowest level. Yet, as a top-notch C programmer (which was a really big technology back then), I was in demand throughout the company. I was always getting loaned to other groups to help them with their projects. In contrast, the work effort that many of my compatriots put out was abysmal.

I may have been one of the fastest horses in the race, but I was boxed in at HFSI. No matter how hard I worked, there was no way to get ahead, no way to leapfrog the people who did less work than me (for more money, by the way).

I could leave, of course. HFSI was comfortable, but totally unchallenging and financially unrewarding. I was at a crossroads. When HFSI began to falter, engaging in layoffs and a pay raise freeze, it became clear that something needed to be done.

I decided that I wanted to work for a consulting firm, probably for commercial clients (and to get away from the slower-paced government work that I’d seen). I determined that my C programming skills could get me a higher-paying job, but not as high as I wanted. I needed database-related skills to be a more complete package.

Over the next six months, I bought a textbook on Oracle, a prominent commercial database that the company was using in some areas. I taught myself how to use Oracle. I learned SQL. I volunteered for opportunities in the company where I could use these skills. After six months, I started interviewing, at which I was terrible. But I got better at that, too, and eventually landed myself a job as a consultant for a 25% raise.

I learned two important things back then. First, you’re in charge of your own happiness. And second, nobody cares about your career the way you do.

You can wait for things to happen, or you can make them happen. Which do you think is more likely to take you where you want to go?

I hit a crossroads, and I decided on the direction of my career. I acquired the skills I needed and pursued the job that I wanted. And I got that job.

Back to the Present

Now that you know how I approached a real-life crossroads in the past, that should give you some idea how I’ve approached my current crisis. It took six months to navigate my original crossroads, and it’s taking a good bit longer for the current one (and the down economy didn’t help, either).

Where do I want to go? Well, I like building things. I like building things that people actually use, like web applications. In other words, I clearly prefer to stay technical.

But, I like working with people, too. I like speaking in front of crowds. I enjoy advising customers on technical matters. I’m not the kind of technical person that you want to just lock up in a room somewhere.

Finally, in some ways, I’m a post-coder. I like building things. Coding is what I have to do to build things.

I like challenges. I’m bored stiff now by coding things that aren’t challenging or that I’ve done many times before. For example, I’ve implemented login systems in Pascal, C, PowerBuilder, Classic ASP, Cold Fusion, Java and Ruby. Implementing another such system is not appealing. Find a cheaper, junior programmer to solve that problem. Give me the hard stuff, please.

Where do I want to go next in my career?

I want to function as a true technical architect, providing structure and direction to multiple software projects. I want to work on the parts of projects that require technical heavy-lifting, where my cost is justified because a junior developer simply can’t accomplish what I can. That’s how I can provide value to software development efforts.

But that’s only half the story. I want to leverage my other capabilities for business development. With my technical background and writing skills, I can provide technical input to proposals. I can provide training to customers on technical subjects, with the intent that such training also functions as a lead generation activity. My speaking engagements at conferences can also fulfill a business development role.

The role I want is one that I have to essentially invent for myself. It combines software implementation, technology evangelism and business development. It requires me to be a serious techie, a gripping public speaker and a businessman.

I don’t have all the skills I need for this role. Yet. But I’m working on it. It’s my career, and I’m in charge.

You’re in charge of your career. What are you doing next? Are you going to wait for something to happen? Or are you going to make it happen? It’s up to you.