11 Apr

Two Years Ago and A Quarter Million Dollar Later

Two years ago, I left my job with a very ambitious goal: never work for anyone else but me. This included contract work.

It was real test in self-confidence and determination. But my first month of working for myself was a great success. I was off to a good start. And I’m glad to say that things continued going increasingly well after that.

Here are the details.

Products

With consulting out of the question, products were my only source of income. As you’ll see, most of my products are info-products, packaging information in various formats.

In the last two years I released five products:

I applied a systematic approach in validating and launching each one of those. All became profitable from day one (I describe some of my techniques in Copywriting For Geeks bonuses). But my classes are the ones generating most of my revenues. This is why I have three. When you find something that works well and that you love to do, you crank it to eleven.

I also created a proper company and moved all of my products there.

Numbers

Those two years also marked another important milestone. I recently crossed the $250,000 mark in sales. While I don’t think this is exceptional, I’m extremely proud of it. Especially proud of the fact that all of it came from my products, that I created from scratch. I’m now making a living entirely with the things I passionately create in my tiny home office and that feels awesome!

I should also note that I took a lot of weeks and sometimes several months off instead of expanding my business. Had I been more proactive, that number could easily be higher. But I made it a rule not get into any business which would take control of my time. And allowed myself to wander without too much guilt.

It’s not that hard

A lot of people will say you have to make plenty of sacrifices to have a successful business. Sacrifice your health, time with your family and everything else. I found that a business is everything you want it to be. So it can be a bunch of sacrifices if you want it to be or it can be something else. That is the beauty of it all. If you want to work more, you can, and you will be compensated. Not by a pat on the back from your boss, but by more money in your pockets and more customers thanking you. It’s up to you to make those decisions and part of what makes building a business such an empowering and scary adventure.

If you read somewhere that you have to max 10 credit cards, gain 20 pounds and work 15 hours a day to make your business succeed, it’s a lie. In fact, my finances are going great, I actually lost 20 pounds and have worked fewer than 15h per week.

The hard part is not the sacrifices, but the change in mindset you need to make. Putting your stuff out there and asking people to pay you money, constantly promoting your stuff, accepting that some will dislike your products, living in the fear of losing it all and occasional self-doubt can be though challenges.

You Can Do It!

Be my own boss and not have anyone dictate my schedule or interests has been my grand professional goal for as long as I can remember. So don’t be fooled in thinking it took me two years to get where I am today, it took me twelve or more.

Twelve years ago, I was unable to get any job as a software developer. Sitting in my room at my parents house, I furiously coded a VB6 application with the intention of selling it. But didn’t know a thing about where to go from there. Didn’t know anyone who knew anything about that either. Didn’t believe starting a business was possible for people with questionable social skills like me.

If you’re dreaming of being your own boss and creating a business too, here are a few advices:

  • Start small (give away stuff, open source, etc.) and use your successes to build up your confidence, credibility and authority.
  • Start by copying and adapting successful businesses (but make sure they are successful first).
  • Your new passions are sales, marketing and advertising.
  • Create the best products you can. I promise, people will notice how much you care someday (if they haven’t already).
  • Be patient, but determined.

Thank You!

You know what makes or breaks a business? Customers. And boy did I found great ones!

If I have anyone to thank for my success it’s you who bought my products. Thank you! None of this would have been possible without your trust, feedback, patience and encouragements. You have changed my life and I can’t never thank you enough for it.

Most of my customers are now referred by other customers who enjoyed my products enough not only to buy and use them, but who tell others about it. That feels incredibly great!

06 Dec

My experience with intermittent fasting

I’m surely not the first programmer to mention the side effects of being in front of a computer all day. Right after getting a job, I started packing on pounds and my health kept degrading.

Reading Tim Ferris’ Four Hour Body got me the kick to try a diet. His is called Slow-Carb. Basically: no bread/pasta, no dairy, no fruits, but one cheat day per week. Gotta say it worked quite well and was surprisingly easy to follow. I lost about 25 pounds in a few months and maintained that weight ever since.

But during that time I also got into strength training, but noticed I made very little progress and felt my energy level was pretty low. So I went on to try something else. Also no carbs and no dairy seemed a little weird to me.

Enter Intermittent Fasting

So I ended up on LeanGain.com.

The premise is you fast for 16h+ and eat during the remaining hours of the day. Which basically means you skip breakfast.

LeanGain also adds fasted training, meaning you even train before eating, after ~15h of fast! Crazy uurg!

OMG! But breakfast is the most important meal of the day!

There have been numerous studies showing that skipping breakfast makes you fat and all. But apparently, other studies are proving this wrong. People skipping breakfast either already have bad eating habits or fasting make them eat more in subsequent meals. Which is why I tracked my calories, carbs, fat and proteins closely at first.

Intermittent fasting actually has a bunch of health benefits. Some studies even show it can lower blood pressure. I’ve had hypertension for a few years and medication was the next step. So that was enough to convince me to try it for a few months.

I’m not a health expert in any way, so I encourage you read about fasting myths here by the author of LeanGain.

Results

I’ve been following the LeanGain approach for almost two months now and here are my results.

I had been maintaining my weight around 175 pounds and ~18% of body fat (143.5 of lean mass) for close to a year. I was unable to get lower and also unable to get more strength. Now after ~two months I’m at 170 pounds and ~14.5% body fat (145.35 of lean mass).

So I gained ~1.85 pounds of lean mass (musclez!) and lost ~6.85 pounds of fat in a little less than two months.

My strength has also been increasing:
- Bench press: from 160 pounds to 185 pounds
- Squat: from 225 pounds to 275 pounds
- Deadlift: from 185 pounds to 315 pounds (was scared at first to try this, which explains the very low initial number)

And… surprise surprise! My blood pressure dropped back to normal in just one month!

Right before starting on October 23: 155/83
On November 24: 133/84

Although it was hard during the first two weeks. I actually now feel more focused during the morning when fasting. And I also have more time during the AM as I don’t need to eat/prepare breakfast.

WARNING!

Obviously, I’m not a doctor. I don’t know what I’m talking about here and am simply reporting my results. Do any of this at your own risk.

21 Nov

How Your Code Is Executed

I remember as a kid I was so excited when something broke in the house, a phone, the TV or the Nintendo. That meant I got to open the thing and look at how it worked. Of course I had to nag my parents for it and they sometimes questioned if I was the one who broke it in the first place simply to crack it open. Maybe once… but not more, I swear!

Later on I discovered programming and became fascinated by how easy it was to create things with it. It took me a few years, but I finally got the itch to crack it open and learn how programming languages are made.

Since then, I believe I became a better programmer simply because programming languages are the tools we use, and understanding how your tools work, in any profession, art or science, is the best way to master our craft.

Overview of a language

Here’s a quick overview of how a typical programming language is structured:

Here’s a walkthrough:

  1. The lexer will take your code, split it into tokens and tag them. If your code was in english, that would be like splitting each sentences into words and tagging each word as an adjective, noun or verb.
  2. Then the parser takes those tokens and try to derive meaning from it by matching tokens with a set of rules defined in a grammar. This is where we define what constitute an expression, a method call, a local variable and such in our language. The result of that parsing phase is a tree of nodes, called AST for Abstract Syntax Tree.
  3. Now, if our language is a tree walker interpreter (like ruby < 1.9), the interpreter will browse the nodes one by one and execute the action associated with each type of node. It’s not very efficient, so that’s why most languages compile to bytecode instead of keeping the nodes in memory and executing from them.
  4. Bytecode is very close to machine code, but at the same time close to our language source too. The trick is to bring it as close to the machine as possible to get higher performance and as close to our language as possible to make it easier to compile. Once we have that bytecode, we run it through the virtual machine. It will walk through the bytecode executing actions associated with each byte.
  5. While executing, our VM or interpreter will modify the runtime. The runtime is where our program lives. It’s the living world in which our program is executing. When you create objects or call methods, this is all happening in the runtime. Having a fast and memory efficient runtime is crucial. This is also where the garbage collector is doing its work.

How bytecode is actually executed

One of the most fascinating thing I learned was how the bytecode is interpreted by the virtual machine. Even though it’s a Virtual machine, it is very close to how the actual physical machine, the processor, work. So understanding this leads to understanding how your whole machine works!

Here’s a small excerpt from my new class: The Programming Language Masterclass explaining how an if statement is executed at the bytecode level.

A few notes before you watch:

  • The literal table is where we store hard coded values that appear in our code, such as strings, numbers and method names
  • A series of bytes in the bytecode form an instruction, each one telling the VM what to do.

All of this is properly introduced and explained during the class.

Learn it all, ask me anything, master your languages, YEAAAAAAAH!

If you want to learn more about how the code is parsed, compiled and executed, join me in my new: Programming Language Masterclass. There are only a few spots left.

I hope to see you in class!

18 Oct

Three ways to stimulate your creativity

Is there something more depression than having zero creativity? You know you want to create something but don’t know what. Or perhaps you have a problem, but can’t find the proper solution. Sometimes your brain is just not in full power. You see all those people on the internets creating amazing things. Why can’t you create stuff like that?

I know the feeling!

I’ve had some very creative times in my life, but I’ve also had some very depressing times where I felt like the dumbest person on earth. Throughout the years, I’ve studied famous creative people and tried various ways to stimulate my creativity.

Here are the three techniques that worked best. Each one worked very well but at different times, often in combination.

1. Break a habit

The best way to have no creativity is to turn your brain off. When your whole day or week is a routine you don’t even have to think to complete, you’re basically living on autopilot. Changing small things in a routine can have a huge impact on your creativity.

Take a different path to work. Change haircut. Change your lunch menu. Anything small or big will stimulate your brain. I’ve used this technique numerous times.

Also, changing a habit will stimulate you to change other ones. So if you want to change something important, change some small things first, which will give you motivation (doing something new is always exciting isn’t it?). Then, use that motivation and confidence to change something bigger.

The point is to get momentum. This also work for anything you want to accomplish, not only having more creativity.

2. Be alone

Be alone, that is the secret of invention: be alone, that is when ideas are born. - Nikola Tesla

Solitude is greatly underrated. I believe no serious work, deep thinking or innovation is possible with people around you.

This has nothing to do with being introvert or not. Creating requires a high level of concentration which can’t be reached when there are people around. You can’t still get with people before of after that process to get feedback or re-energize.

Without great solitude no serious work is possible. - Pablo Picasso

And by alone, I also mean no IM, Twitter, Facebook or such.

3. Get bored

Here’s an easy way to get bored: consume less. Not because I believe consuming is bad, but because I think it forces us to the other side: producing.

Necessity is the mother of invention. - Unknown

Get bored long enough and I assure you getting unbored by creating will become a necessity.

I remember having no internet when I was younger on my parents computer. That’s why I first learn to program, there was nothing else to do on that damn thing!

Drop a comment below and let me know if you have any tip of your own to stimulate your creativity!

26 Jul

Free Time

One question I get all the time when I release something is: how do you find the time? Although this is false, you don’t find free time, you make it. Because as soon as your time becomes free you fill it with an activity: playing, reading, sleeping, thinking. This is Parkinson’s Law: your daily activities expand to fill the time available.

Time is your most valuable asset. With time you can make whatever you want, be it money or anything else. With some money you can afford some more time and with some more time you can get some more money. Success builds upon successes.

A few years ago, after releasing my first successful open-source projects, some people told me: “appreciate the time you have now, because once you have kids you won’t have time for this anymore”. A year later, my daughter was born, the same year, I released tinyrb the most complex coding project I ever did. Now I have two kids, more projects than ever and managed to quit my job doing only what I love.

How to Make Time?

Everyone’s life is different. Of course, now I get pretty much all the time that I want (but I still have to plan for it). But I’ve always found ways to make time for my projects. Here’s a quick recap of hours I saved to dedicate to my projects when I had a job.

Work from home: -2h/day
Sleep less: -2h/day
Don’t watch TV: -2h/day

That makes an extra 6 hours per day. 30 hours per week (without the weekends). That’s almost another workweek right there and I haven’t cut a minute from the things I love, like spending time with my family and reading books. I don’t always spent all this time on my projects, but when I have an idea, I can make things happen in a week or so. The point is, this is my time, I decide what I do with it.

Here are a few more examples of useless activities you might have done recently: checked-out Google+, Installed OS X Lion.
You might be thinking: “but I have to keep up to date with latest technologies”. I’m not saying you shouldn’t, but you certainly don’t need to try every new technology that comes out the minute it comes out. Let other people filter it for you.

This is Hard, I Need My Night of Sleep and Forget About Working From Home

Yeah, life is hard, I agree with that.

The Four Hour Workweek has a chapter on how to work your way up to working from home full-time. It’s hard, takes time, guts and determination. I started with only one occasional day per week, then a few more, then full-time a year later. You can plan for it and make concessions (like a smaller salary, remember: time is your most valuable asset).

How to Find Motivation?

I remember a year ago, I found this video and that was quite a revelation to me. I know it can be cheesy, but sometimes that tasty cheese is all you need to get the energy needed :) (oh what a cheesy pun!). It all boils down to: how bad do you want it? Not bad enough if you can’t make time for it.

When you want to succeed as bad as you want to breath, then you’ll be successful.

12 Jul

Why Geeks Don’t Believe in Copywriting

Copywriting is the art/science of selling with words. Most geeks do not believe in copywriting. Long copy can’t sell, right? Who reads a single sentence in Apple’s copy? All you need is a fancy product name and an incredible list of features, right?

Wrong, wrong and … wrong! And I’ll explain why in a minute.

Various styles of copy work depending on the stage of sophistication of the market and their state of awareness.

States of awareness

How aware of your product and their needs is your market?

1. The most aware: everybody knows about your product, no need for long copy, state the price and what’s new about it.
2. The customer knows of the product but doesn’t yet want it.
3. The prospect knows he wants what product does, but doesn’t know yet there is a product.
4. The prospect has a need, recognize the need, but doesn’t recognize the connection between need & your product.
5. Completely unaware market.

Most mainstream copy is cheesy to geeks because we have a very high state of awareness (state 1-2).

Sophistication of the market

Copy also depends on how many products have been there before you. This is called the sophistication of the market.

Here are the 4 stages of sophistication of a market with a sample headline describing each.

Stage 1: (First to market) keep it simple, eg.: “Lose ugly fat”
Stage 2: Push claims to extreme, answer objections, eg.: “Lose up to 47 pounds in 4 weeks or get $40 back”
Stage 3: Find new mechanism, eg.: “First wonder drug for losing fat”
Stage 4: Expand on new mechanism, push it to extreme, answer objections, eg.: “First no diet wonder drug for losing fat”

Those headline are old-hat. Style changes but strategies don’t.

Learn to write amazing copy NOW, for FREE! ZOMGBBQ!

I have to admit, my interest in copywriting was caused by an over-exposure to Mad Men. After watching the four seasons a dozen times, I carefully studied Influence, by Robert B. Cialdini, the mythical (and out of print) Breakthrough Advertising, by Eugene Schwartz, a bunch of other books and bought a crap load of videos, PDFs and online tutorials about copywriting.

After applying some of this stuff, I started selling a lot more and my life began to change quite drastically :).

It took me some time to admit this was due to my copywriting skills, but I was literally getting emails from customers saying: “Your tag line hooked me”, “[…] then I read your [product] description and that sealed it” and “this sentence convinced me”.

So, I’ve decided to pack all my learnings in a small eBook for easy and quick consumption by you!

And … it’s FREE! For now at least ;)

Get it at copywritingforgeeks.com

I hope you like it!

Note: The stages of sophistication and states of awareness are from the book Breakthrough Advertising, by Eugene Schwartz.

17 May

Faster A/B Testing

We’ve all read about A/B testing. How it can help you increase conversion four quadrillion percent, twice. The problem is you need a few (a lot actually) conversions to be able to make a choice. So for example, when I run an A/B test on my ebook sales page, I let it run for a fews weeks until I get a few conversions (sales).

That is a very slow process. Also, you can’t run multiple A/B tests at the same time, as it would mix up the results of each test.

When I launched my class, there was quite a lot of things I wanted to test on the page. The problem was, I could only get 20 conversions (sales) and I had to get results fast. There was no way I could wait weeks for results.

So here’s what I did.

Track scrolling

Instead of tracking sales or clicks, I tracked scrolling. I assume if someone finds the headline or copy interesting, he will scroll to read more. The goal of the sales page is to get people to read it till the end.

Fortunately, I’ve been using Optimizely which makes tracking custom events pretty easy. Here’s the code to track scrolling past 25% and 90%.

var scrolledTo25Pct = false, scrolledTo90Pct = false;
$(window).scroll(function(){
  var bottom = $(window).height() + $(window).scrollTop();
  var height = $(document).height();
  var percentage = Math.round(100*bottom/height);
  
  if (percentage > 25 && !scrolledTo25Pct) {
    scrolledTo25Pct = true;
    optimizely.trackEvent("scrolled_25pct");
  }
  
  if (percentage > 90 && !scrolledTo90Pct) {
    scrolledTo90Pct = true;
    optimizely.trackEvent("scrolled_90pct");
  }
});

Using that technique, I was able to tweak the headline and copy, and get results in a few hours instead of weeks.

40% increase in conversions

My tests totalled a 40% increase in people that clicked the Register button.

I must admit A/B testing sometimes feels like black magic. For eg.: switching to a blue Buy button on my book sales page yielded a 440% improvement in sales… ?! But running lots of smaller tests seems like a better thing to do than depending on a full conversion such as sale or sign up.

Optimizely is pretty awesome! Give it a try.

02 May

Working for Me: First Month Report

In early April, I left my job with a very ambitious goal in mind: never work for anyone else but me. This includes contract work.

I had similar aspirations in 2009 when I gave a shot at startups with Talker. My focus, at that time, was more on building a startup and not on profitability. Although Talker turned out well in the end, it failed to support me financially and to provide the lifestyle that I wanted.

I took a lil’ more than a year to reflect on my errors, and spent a lot of my time studying marketing, advertising, business and sales.

So now I’m back at it. I’ve been working hard during my first month, trying to find something I love doing that would support me and my family, and that would help others.

How did I do? (Show Me the Money!)

So how did I do on my first month? :) I must say, this is way beyond my expectations.

For the month of April, I generated close to $12k in sales. Even more amazing is that I took about two weeks of vacation at the beginning of the month.

Here’s the split:

Of course that is not 100% profit. One of my strongest strategy for generating sales has been affiliate marketing. A great percentage of my sales go to affiliates. That leaves me with a profit of about $9400 in a bit more than two weeks (two weeks for generating the sales, not building the products of course).

It feels incredibly good to know I’ll be able to focus all of my time on my products and that all those people have trusted me enough to give me their hard-earned money.

Holy crap! How did you do this?

Although I am very surprised by my results, this is surely not an accident. The time I spent learning about marketing and sales is paying off. But, the hard part was not learning, the hard part was opening my mind to be ready to learn about this stuff.

To explain what I mean by opening my mind, here’s a brief story from a book a read recently:

A women who studied writing for most of her life had the chance to meet with one of her idol, a best selling author.

She asked the best selling author: “How do I become a best selling author? I studied writing for years. I wrote a few important publications, each very well received. Yet, I can’t become as successful as you are.”

The best selling author asked the women who was taking some notes: “what did you write under my name?”.

She replied: “best selling author”.

He replied: “that’s right: best SELLING author, not best writing author. If you want to become a best selling author, learn about sales”.

The women’s face became all red, she was furious: “I have a PhD in literature and you’re telling me I should take a sales class?”

I had that same exact mentality.

Affiliate marketing can be very ugly. Some people are doing shady stuff there. But at the same time, it amazes me how those shady people manage to sell crap, imagine what you can do with a good product! Big companies like Amazon and Apple are relying on affiliate marketing too. No one reads long sales letters right? Well… long copy sales, that’s a fact. You have to learn how to present it and when to use it. And… you’re still reading, right? ;).

Marketing and sales are backed by numerous scientific researches in the psychology of influence and persuasion. It is a fascinating world. But, it is extremely counterintuitive for most people.

There’s more …

Now, if you’re ready to open your mind like I did, join my newsletter and I’ll share all the details on what I learned, what I’m learning making a living with my products and of course you’ll know about my new products before everyone else ;).


27 Apr

Owning Rails: an Online Master Class

I initially learned Rails with the book Agile Web development with Rails, but the thing that made Rails click for me was not building a sample app, it was seeing all the design patterns I studied long and hard before being applied and playing well together. It didn’t take me long to pick up Rails and master it. And I know this is because the architecture and design choices behind it made so much sense to me.

Seeing all the Rails tutorials popping-up, I feel they are taking the wrong approach. I don’t think you can deeply understand Rails by playing with it’s APIs, building a simple app in a few hours. I think you need to understand how it works and everything will fall into place. Once you do, you are no longer feeling stuck in the framework.

So a few weeks ago, I was inspired by Amy Hoy and Thomas Fuchs’ Javascript Master Class in launching my own online class to teach Rails. I’ve always enjoyed teaching people about Rack, EventMachine, Thin, programming language creation and virtual machines at conferences and user groups. But I know the most useful thing I can teach is Rails. I truly believe that once you know enough about Rails you enjoy web development much more. But this is hard to understand until you actually do… know enough about Rails. And what is “enough”?

Well, from my experience, “enough” is understanding three key things:

  • the design patterns behind Rails
  • the naming conventions
  • the coding style

And you don’t need a CS degree to understand any of these and you certainly don’t need to know by heart any of the APIs.

That is why I’m using the same approach I’ve been using for years for teaching: with code. Not only with live coding sessions, but with code samples, straight from inside Rails, explaining how stuff work. I want to teach you how to read Rails code, and believe me, it’s way easier than some people think.

Register now for the May edition or my Owning Rails online Master Class!

Yay!

18 Apr

RefactorMyCode new home

Holy cow wow! RefactorMyCode has found a new home. But mostly, a new team working on it and giving it the love it deserve.

And not just any team:

Can’t wait to see where they bring it next!