Tom Söderlund's Blog

Founder of Weld, advisor of Goo Technologies.

Married to Paulina with two kids.

I like #leanstartup, #javascript, #cycling, #crosstraining, #espresso.

Website: tomsoderlund.com. Twitter: @tomsoderlund

Right now, 5% of Earth’s population knows how to create software. What would happen if that number was 50%?

Right now, 5% of Earth’s population knows how to create software. What would happen if that number was 50%?

Using Meetup.com as a recruitment tool

Here’s my hack for using Meetup.com to recruit developers and designers.

  1. Join a local Meetup.com group with a matching skill profile, e.g. JavaScript developers if that’s what you’re looking for.
  2. Go through the member list and try to write down the names in a spreadsheet to as many as you can muster. I haven’t found a smart way of qualifying the candidates on Meetup.com so that’s a separate step (see #3).
  3. Go through the spreadsheet and do a Google search on "Firstname Lastname" site:github.com for each person. For designers, replace github.com with dribbble.com.
  4. A similar search but with site:twitter.com can give additional contact information, or at least a link to a personal website.

I consider contributions (can if needed be quantified with “Total Contributions number” on the user profile) on GitHub to be a great way of vetting developers. A strong Dribbble profile is a similar measurement for designers. I don’t care about LinkedIn.

Yes, the above process can take a bit of time. When I feel lazy I get help from my virtual assistant from GetFriday to collect the data.

To me, these funhouse stairs is the perfect metaphor for building a startup.

When you start, most things are out of reach: customers, talent, investors. So you work a bit more, building on your product, talking to people. And eventually you can take the next step up the ladder. New opportunities arise, but many things are still out of reach and you’re far from your goal. So you take another one, and another one.

Step by step, you build your business.

(Picture by Gullmars of the funhouse at Gröna Lund)

To me, these funhouse stairs is the perfect metaphor for building a startup.

When you start, most things are out of reach: customers, talent, investors. So you work a bit more, building on your product, talking to people. And eventually you can take the next step up the ladder. New opportunities arise, but many things are still out of reach and you’re far from your goal. So you take another one, and another one.

Step by step, you build your business.

(Picture by Gullmars of the funhouse at Gröna Lund)

prostheticknowledge:

ARDUBOY

Circuit board business card is a minimalist credit-card-sized handheld console which includes Tetris. Videos embedded below:

A revolution in minimalist circuit board art design.

Barebones Arduino
OLED Screen
Piezo Speaker
Capacitive Input Buttons
9+ Hours Playtime
1.6 millimeters total thickness

You can find out more about the project here

A business-card sized games console, nice!

Tips on finding outsourced talent

I’ve used outsourcing sites (oDesk, Elance*) and crowdsourcing sites (Designcrowd, Hatchwise) for both design and programming talent on a number of projects. Here’s my tips:

  • Write a good specification. With images. Enough said.
  • Scout the talent - don’t wait for them to find you. Posting a job on oDesk/Elance will give you tonnes of applicants that don’t have the skills. Instead, post a invite-only job request, then search for people using as unique keywords you can come up with (e.g. “NodeJS”, not “JavaScript”).
  • You can’t find design talent on oDesk/Elance. No good way to browse, and “good design” is hard to define in a requirements specification. Instead, use Dribbble to find designers you like.
  • Ready-made design can be a better option than crowdsourcing. Crowdsourcing is time-consuming and/or expensive and/or produces low-quality output. The old project management quote "you can have it fast, good and cheap - now pick any two" comes to mind. A better option is buying a ready-made design from Brandcrowd, Stocklogos, or 99designs.

*oDesk and Elance are now the same company. But I used both when they weren’t. :-)

Designing a CRUD API for WebSockets

When building Weld, we are using both REST and WebSockets (Socket.io). Three observations on WebSockets:

  1. Since WebSockets are so free-form, you can name events how you want but it will eventually be impossible to debug.
  2. WebSockets don’t have the request/response form of HTTP so sometimes it can be difficult to tell where an event is coming from, or going to.
  3. It would be nice if the WebSockets could fit into the existing MVC structure in the app, preferably using the same controllers as the REST API.

My solution:

  • I have two routing files on my server: routes-rest.js and routes-sockets.js
  • My events look like this example: "AppServer/user/create".
  • I use forward slashes (“/”) to make the events look like routing paths.
  • The first string is the target (~”host name” if this actually was a path).
  • The second string is the model.
  • The third string is the CRUD verb: i.e. create, read, update, delete.
Interesting realizations from time-tracking my life with the Timelytics app:

I work less hours than I thought.
There’s almost a gamification aspect to sleeping, so I think I sleep more than before.
Commuting takes more than I thought.

Interesting realizations from time-tracking my life with the Timelytics app:

  • I work less hours than I thought.
  • There’s almost a gamification aspect to sleeping, so I think I sleep more than before.
  • Commuting takes more than I thought.