December 01, 2014

Review: Redis Applied Design Patterns

Redis is one of the most popular NoSQL databases, and for good reason. Even though you wouldn't want to use it as your primary datastore, Redis is a high-performance complement for caching frequently used data and running certain types of calculations such as leaderboards. I'm far from a master of Redis, but my presentations about Redis are some of my most popular online content, getting thousands of views every month.

In the Packt Publishing book, Redis Applied Design Patterns, author Arun Chinnachamy provides a concise guide to Redis for experienced developers wondering what Redis can do for them. The book opens with a crash-course 3-chapter primer on NoSQL for those coming from a background in relational databases. After that, the rest of the book focuses features unique to REDIS within the context of application use cases such as caching and auto-suggest features.

The initial chapters feel a bit rushed and amateur, featuring statements like this one that are likely to provoke anger or amusement in experienced developers (bold emphasis mine):

The main advantage of NoSQL is that there is no concept of normalization. This is the reason why you get more performance from a NoSQL database when seen against a normalized SQL database. There is a trade-off in that you are sacrificing data consistency in the NoSQL database, but the benefits achieved in doing so are higher.

Despite that, I'm still a fan of having a central point of reference for each major technology that I employ in my stack, which is one of the main reasons why I maintain that my Rails Way series is still valuable after all these years. Otherwise you're reduced to bouncing around a myriad of online sources, an effort that can be frustrating and overly time consuming. This case is no different, the Packt book is a good central point of reference to Redis, although I would advise ignoring the more subjective parts of the book and making use of it purely as a reference tool.

Overall the author employs a concise, direct style that makes it easy to read and digest. It is also chock full of pointers to external resources, making it a good all-around guide to have around when working with Redis on a day-to-day basis. It's only $11 for the ebook version, which makes it easy to recommend.

October 14, 2014

Africa Calling

Reposting from my Medium blog

Africa Calling

September 14, 2014

Do. Or Do Not. There is No Try.

A reminder that I come back to time and again.

September 12, 2014

Demo of QuickMVP

The video features my partners at Javelin, Grace and Trevor, presenting QuickMVP to the NY Tech Meetup, one of the most prestigious in the world. I don't think our idea particular complicated or anything, but I'm proud of our execution on this one.

QuickMVP is a landing page builder + easy creation of Google Ads to drive early adopter traffic + tool suite to be able to analyze results of your experiments in a way that's compatible with lean startup best practices. This video is actually one of the best demos of the software out there. Learn why this product is driving more and more recurring revenue for us every month.

August 05, 2014

The Future of Consulting

I am doing an online (live) panel discussion with special guests a little less than an hour from now.

Here is a brief list of topics that we hope to cover:

- state of software consulting today. static? growing?
- what are the external forces shaping change in the industry?
- opportunities of ongoing engagement outside traditional project-based models
- should firms be looking to unbundle services?
- or additional bundling and/or co-promotion of educational and othe rservices (ala Thoughtbot)
- what is the proper balance of generalists vs. specialists on staff? what are hiring challenges?
- how does a firm stay “top of mind” at clients between projects?
- deployment of proprietary tools make sense? shared IP?
- pricing: time vs. value based?
- new competitors and business models? real threat?
Feel free to add questions for the panelists on the talk page's chat section here. To access the chat, you must be registered for AirConf and RSVP for the panel. If you're a little late to the show (starts 3pm ET) don't worry, you can just hit play on the Youtube player and watch it from the beginning. We'll try to address any questions/comments posted before the scheduled end time around 4pm ET.

April 28, 2014

How to Write and Publish a Technical Book (and make lots of money)

Over the course of the last few years, the tech publishing market has changed. Authors are in a much better position than ever before.

If you are serious about success as a technical author, here are your up-to-date instructions. As long as your content is solid and valuable to your audience, I believe this is how you make the most money. You'll also reap serious long-term benefits.

First of all, are you talking to a publisher about a book deal already? Maybe you have a book proposal and/or outline in hand already?

Good. That's a good starting place, but it's time to get in the driver's seat. Put the discussion with the publisher on hold. Be nice and tell them that you're interested in doing a book with them later in the year. Promise to get back to them once you make progress on your manuscript.

Many publishers will balk at this change of events, but don't worry about it. What I'm going to teach you is how to build leverage. You're going to need as much of it as possible later on when you go back to them.

Now, I'm assuming that you have a title and concept worked out.

At this point you should also have a first draft of a book outline. Go to and create an author account. As part of signing up you'll have to create a book. Enter your title and description. Follow the instructions for creating and uploading a cover image. It doesn't have to be fancy.

Done? Publish your leanpub landing page and announce the book project to your social network. You want to start generating interest from your audience of early adopters as soon as possible. You also want the search engines to pick up your new landing page and start building a foundation for traffic to flow its way.

Time to start writing the book. (I can give you advice on how to be an effective writer, but that's a separate topic. Make sure to subscribe to the mailing list below to find out more.) While you are writing, your leanpub landing page collects email addresses of interested parties. Many of them will freely tell you how much they're willing to pay for the book when it's available. That's very valuable information.

Time to publish.

Publish your incomplete book on leanpub once you have 3 chapters written. Doesn't matter if 3 chapters is only 10% of your book. If you wait longer than that you are losing income and valuable feedback from early adopters. The great news is that at that point, you start earning 90% royalties even though the book is far from complete. I promise that the income and interest from your early buyers will keep you motivated to make progress.

Keep writing.

This middle phase will take between 3 and 6 months for most people, perhaps more for difficult topics. Keep publishing every time you finish a new chapter or have significant amounts of new content. Keep making money throughout this time.

Back to the negotiating table.

When you get to about 75-80% finished then you want to contact traditional publishers like Wiley or Pearson and/or whoever you initially spoke to about a book in the first place. Tell them that you're interested in their best offer. The best thing that can happen at this point is a bidding war over who will publish your title. (You shouldn't bother with Pragmatic Programmers. Want to know why I say that? Subscribe to the mailing list below.)

Cash Advances

If you're a first time author with a popular topic, traditional publishers should be willing to advance you at least $5k USD. That is money that you'll never have to return, which is why publishers seem stingy with advances. It's all risk to them. But since your book is almost done, you've gone a long way towards mitigating that risk for them. That should loosen their pursestrings somewhat.

Half of the advance will be payable on signing the book deal. The other half will be payable on delivery of final manuscript. Consider the promise of that money your incentive to make a final push and finish the book.


Royalties for print should start at 18% of net revenues to the publisher. (Expect that figure to be around $10-20, so you're only making a few dollars on each sale. That's just the way it works, don't fret about it.) The real money comes later, when you open up new business opportunites. But that's another topic.

Royalties are not a single number. You'll also negotiate a multi-tiered ramp up to 25% royalties as your sale numbers grow and hit stretch targets. Selling 10 thousand copies of a print tech book these days is a solid success and should be compensated accordingly.

What about ebooks?

You're going to negotiate hard for a 25% royalty on ebooks, but be willing to accept a little less. Don't get greedy and blow it.


Once you negotiate a deal you're happy with, sign it and finish your book. Submit the manuscript and get the balance of your advance. Plan on discontinuing Leanpub sales once the officially published version is available on Amazon and in stores.

You'll be cashing royalty checks every six months. Plus you get many other intangible benefits. Traditional publishers can open the door to other writing opportunities in periodicals, speaking engagements and even video appearances. There's also the credentializing effect! Every other schmuck these days has an ebook. But traditional print still provides a strong foundation for launching successful consulting careers.

Are you an aspiring author? Interested in reading more in-depth content about how to succeed like I have?

Subscribe to my mailing list

Interested in...

April 08, 2014

Glad to announce that my latest book, The Lean Enterprise, is now widely available in print and Kindle editions on Amazon. Getting lots of great reviews already!

January 07, 2014

TechPeaks: Startup Life in the Italian Alps

Last summer (2013) I was honored with an invitation to serve as a mentor for the inaugural group of entrepreneurs welcomed into the TechPeaks accelerator program. It opened my eyes to what's possible when a progressive local government achieves effective cultivation of innovation and startups. Quite an experiment the Italians pulled off last year, and the results have encouraged them to do it again this year, with notable evolutions to their program that I believe make it an even better opportunity for aspiring entrepreneurs.


Here's one of the coolest aspects of it, that really sets this program apart from traditional accelerators such as YC and TechStars: You don't even need to have a startup idea or be part of a team to qualify!

There are two ways to apply to the program: 1) with an idea, team optional or 2) as an individual technologist without an idea. If you get accepted without an idea, the program functions as a matchmaker, with the expectation that you will band together with other people in the program on their ideas, or come up with new ideas to pursue. Out of a total of 50 participant slots available, a maximum of 20 are reserved for these individual explorers.

If I didn't have a family and my own startup at the moment, you better believe I'd be knocking down their door to accept me as an explorer.


All participants are relocated to Trento, a college town with some of the most gorgeous vistas I've ever seen, nestled in between vineyards in the Italian alps. It's a relatively quick train trip from Milan and a fantastic place to live. Your accomodations and living expenses are covered by the program, which has a duration of four months, from March 25, 2014 until July 25, 2014. Teams that make progress are eligible for hundreds of thousands of euros in startup grants and additional follow-on funding if they continue operations in the Trento area.

The TechPeaks 2014 application deadline is January 20th. I encourage you to check it out.

January 01, 2014

Robert Williams, man to watch in 2014

I recently interviewed Robert Williams, founder of Workshop. Over the course of the last year Robert went from full-time employment, to successful freelancing, to launching a successful online business helping other freelancers to succeed using his methods.

What is your background?

My background is in design. I went to an expensive art school - which I now regret, because 90% of the education I use on a daily basis is stuff I learned online (mostly for free).

I worked at a few design agencies after college, then in the marketing department for a large nursery - but those jobs left me unfulfilled and wanting to start my own business. I got that opportunity after I got fired from my job only a few months after receiving a raise, to boot.

I decided that instead of going to interviews I’d look for freelance work full-time. This was an epiphany for me, because I truly became grateful for having been let go from my 9-5 job. I spent my first week literally laying out on the beach everyday - and the freedom was awesome. That was the point where I knew I probably wouldn’t ever hold a 9-5 job again.

How did you manage your freelance work?

Starting my own freelance design shop has been one of the most educational experiences in my life. I realized I had to stand out from the average designer online. This simply wasn’t happening on sites like dribbble, twitter, and behance. On those sites you’re competing with thousands of the world’s best designers and you don’t get to highlight your specific skill.

I decided to delete my portfolio website, and focus on contacting leads 1-on-1 in order to a)  track the amount of people who were replying to me and asking to see my portfolio and b) have more control over how I was presenting myself and my services.

This had pretty great results, I was able to make $30k in my first six months freelancing (without a portfolio website). This fascinated me and I began to study and collect evergreen principles to freelancing. The fact was that most places online tell you to post on twitter and dribbble and ‘get your name out there,’ but for someone just starting out this isn’t the right move.

Okay, so what is the right move for a new freelancer?

I created an optimized system for finding the best leads online quickly, and made templates for stuff like emailing prospects, onboarding new clients, getting world-class feedback and more. Optimizing my freelance business has been one of my biggest passions in the past year.

Recently, I started a new project focused on helping other freelancers do the same; Workshop. I send the web’s best leads to a private list of freelancers every day. I also send all of my secrets and techniques to building my freelance business to members, which has been an awesome experience.

How did you decide to get into this particular business?

I got the idea from desperately wanting this service for my own business. As freelancers, we charge anywhere from $50-$1k per hour, and if you factor in the time is takes to look for work - you’re spending a fortune on finding work. I wanted a service that automated this process for me, but that was high quality. A few other people were doing like a auto-generated lists of leads, but the quality was really low, and not worth the money. It was something that I needed to do for my business anyway so I really liked the idea of charging for this service.

Then, about 5 weeks ago, I was listening to a podcast interview with Ruben Gamez from bidsketch. He said one thing in particular that really resonated with, ‘a lot of people are listening to podcasts nowadays but not many are actually doing something actionable as a result.’

I decided then and there to pursue this idea - and try to grind it out. I put together a quick landing page, using techniques from online courses I’ve taken in the past year including, earn1k, recurring revenue for consultants, 30x500, email marketing for startups, and a few others.

I was also a member of JFDI, a private community of bootstrappers, who really helped me talk through my landing page and iterate quickly by providing me an extra set of eyes (or ten). This community support was integral in keeping my confidence up when people started to question my authority and service. I literally had one person sign up on the first day. I spent like 5 hours finding the 5 most awesome leads I could, and sent them over to him. Luckily over the next few days I got some traction and things began to take off.

What differentiates you from potential competitors?

What I’m doing differently, is 100% hand-curating every single lead I send. I aggregate thousands of job leads everyday and painstakingly comb through them by hand. I have strict, and vigorous criteria for finding the best leads.

The projects are all stuff I would apply to. Nothing that would have a budget of less than $1000 and I make sure every lead is remote, and open to freelancers everywhere. Also, I try to make sure and do a little extra legwork to include things like the company website and contact email if possible.

The result is a list of 5-10 leads that have all the relevant info for a busy freelancer, and none of the fluff. 90% of the work is done for you. All you have to do is reply to these 5-10 leads and you will have a constant stream of people entering your prospect cycle. 

Members no longer have to worry about job boards which were really designed for full-time work anyway, and instead reply to everything from their inbox. I also offer to monitor any job boards members want me to, so you can literally use me as a virtual assistant.

The difference between me and a virtual assistant you would find on places like odesk, is I’m an experienced freelancer myself. No one is going to be able to decipher the great leads from the riff-raff as good as you do, unless they’re a high-paid consultant themselves, which I am. 

What have been your biggest mental obstacles?

Subconsciously it was wanting to see success immediately. I heard people like 37signals and Amy Hoy talk about growing slowly, and totally agreed, but it wasn’t until I actually started this project that I realized I’ve been way too impatient in the past. 

90% of growing a great business is just grinding it out. Sure, you need luck, timing, and help from others, but if you’re not there everyday it doesn’t matter. You can look at this as a negative or a positive. It’s up to you. You can be impatient and give up on all of your ideas… or you can decide to do something regardless of how long it takes. But make sure you charge from the beginning, otherwise you won’t know how you’re doing.

To me, it’s one of the greatest strengths, because I don’t have control over whether someone with a million followers tweets out a link to my website, but I do have control over whether I put in effort each and every day. I’m okay with growing slowly because I’m building, learning, and I want to be in it for the long-term. I also want to create the absolute best service for freelancers and help them build an awesome business for themselves.

Thanks Robert!

Are you a freelancer? Check out Workshop for yourself.

November 20, 2013

Haml's little-known list_of helper

TIL that given an Enumerable object and a block, the list_of method will iterate and yield the results of the block into sequential <li> elements.


  = list_of [1, 2, 3] do |item|
    Number #{item}


  <li>Number 1</li>
  <li>Number 2</li>
  <li>Number 3</li>

The list_of method also optionally takes a hash of options applied to the output li tags as attributes.

Interested in more information like this? You can download my book The Rails 4 Way at Leanpub today. Final print edition on Addison Wesley coming early next year.

Sponsored By


or visit my my homepage

My Companies

My Latest Books

My Book Series