Just Fucking Ship

Two months ago I found out that Nathan Barry has a 24 hour product contest, in which he aimed to produce a real product, in the form of an email course, in 24 hours, from start to finish. It was really interesting following the process where he created a whole product, that earned a fair amount of money, in 24 hours, from scratch. Of course, it wasn’t from scratch, because he already has a couple of design products, but his process of making something in 24 hours seemed awesome.

One of the other people that I follow, and use their products, Amy Hoy, accepted the challenge and had her own product built in 24 hours. I bought both of the products, and although I’m not a designer, I’ll be using Nathan’s exercises for learning.
The thing I’m writing about here is Amy’s book, Just Fucking Ship, which is the sum of all her knowledge on shipping products fast. She takes us through a very convenient metaphor of creating a Thanksgiving dinner, planning for it ahead, and doing only the necessary things that you need to ship the product, or finish the dinner on time. Stripped to bare essentials, the final product (after 24 hours) didn’t have nice formatting, it wasn’t edited, and had no cover. But it was a product that had a price, and a place to buy it. It wasn’t perfect, but it was just enough. I’ve read the first version when it was out, and then the last (edited) one a few days ago. It’s a very short read and intended to be re-read every time you start creating something new. The updated version is much better, with nicer formatting, and although there is no kindle or epub format yet (I really love my kindle), the PDF is very readable on the kindle.
Amy’s language might scare off some of the purists, and it’s intended to. It’s really fun to read a book that is written just as someone would explain stuff to you in person, with real language, not overinflated purist nonsense. Go  buy the book, it’s only $19, and the price will probably increase in the future.

Review: The Design of Everyday Things

I’ve recently read a great book, recommended by Merlin Rebrovic in one of his blog posts. I’ve always seen design as something abstract, something you need to be born to, and avoided it like the plague, not being born for it was the main excuse. However, after seeing that it is not really that hard and that you can learn design, I started to read a lot about it. I’m not an expert (yet), and I don’t see myself doing design professionally, at least not soon, but learning new and unexplored things brings me pleasure, and stepping out of your small box is great, because there is a whole world out there.

The Design of Everyday Things, a book by Don Norman, is a great intro into the world of design. And by that I mean industrial design. How to create products that people can use with ease and are nice to look at. I’ve read only the second edition of the book, which was updated to accompany the computerised, mobile world we live in now.
The book has plenty of examples of good and bad design choices, with the masochist teapot on the cover being one of the funniest. You will learn how design can help reduce the number of airplane accidents, and pretty much all accidents, where enough knowledge to operate something isn’t in the world, but required to be in the head. You can see a nice comparison of head vs. world knowledge here.
Badly designed products are all around us, and sometimes we don’t even notice them. It’s mainly because we have learned to cope with our stove where the burner to knob mapping isn’t that obvious. Maybe we have some exotic faucet in the bathroom, which is so clear to us, but guests tend to have issues operating a simple (or not so simple) faucet. Sometimes people who design these things are inexperienced, and wanting to make the prettiest looking faucet, not thinking of its usability, and putting too much knowledge in the head. Who want’s to read a 5 page manual just to be able to wash their hands? I know I don’t.
But nevertheless we buy those things, sometimes they are so stunning, and we just need to have them, not thinking about the usability. Sometimes we are on a budget, and we buy the things we can.
Sometimes the issue is in the production costs. It’s one thing to design a great product in a fancy 3D design tool, where only sky is the limit, and completely another to produce that thing, market it, and sell it at a price the market is willing to pay. Those design examples are limited to high-end products, where Apple comes to mind, or Bang & Olufsen, but their products aren’t really affordable to regular people.
Maybe if the people realised what a badly designed product is, they wouldn’t buy it, and the manufacturer would have to redesign it, because the competition has a product that is perfectly designed. But sadly we can’t hope for this to happen. Low budget, poorly designed products will always have a market, because people can’t spend enough for a quality product, and novelty items, made only to praise the visual design and not usability will always find their buyer among the people that need to have that fancy something, that no one can and will use for it’s intended purpose.
This book has opened my eyes to the crimes we developer often do against usability and design. It also pushed me in the direction of exploring user experience and design, in general. Hopefully, this will be a fun journey.

Zero to One, or how to create a monopoly business

I have recently read the book Zero to One by Peter Thiel  and it really changed my overview on the business world, and the projects/products I want to work on from now.

The book focuses on building Paypal  and the period it was built in, the dot com boom. We all know Paypal is now a successful company, and we maybe not know that they are one of the few who survived the boom in 2000. I was shocked to read that their first product was a Palm Pilot money transfer software. I’ve had a Palm, and although it was a cool device back then, the market wasn’t cohesive enough to support the product. But the underlying mission of Paypal was to change the way we transfer money between each other. Having Palm device as a prerequisite, although the niche was big enough, was not a good idea. So they switched to the email address money transfer, and we all know how that turned out.

For Paypal, or any company to succeed in the long run, the main prerequisite was to create a product or service that is either something innovative, like iTunes store, or something at least 10 times better than the competition. They also teach us that we have to start with a small niche, and build up from there. Unless you are old enough, you probably didn’t know that Amazon started as an online book reseller, and Paypal started as a merchant payment option for a small number of eBay top sellers. eBay (or Auction Web) started as a direct person-to-person auction site for collectibles. They all built great services, which were at least 10x better than the competition, or completely new, and started in small enough markets, where they had zero competition, so they could iterate and improve the products, before competition caught up what was happening.

There is also one great thing about small markets, and that is the fact that big fish can’t swim in small ponds. You as a small bootstrap company can live of a small enough market, and the big companies won’t even touch that market, because the market value is in the range of a statistical mistake on their yearly earning reports. And it’s a great place to innovate, improve and grow, till you can expand to another pond, after you have a monopoly in the first one.

We were all taught that competition is a good thing, even in economics class. And that highly competitive markets are the best option, for consumers, and for companies. That is a big fat lie, for both the consumers, and the companies. The companies in this kind of open market are in ruthless cutthroat battle for customers, and they have to lower their profits to the bare minimum, because if the competition is cheaper, the customer will go and buy their product, in a commodity market, price is one of the main attributes that guide the customer’s decision on buying.

Monopoly on the other hand, is a great thing. There are two types of monopoly, the economic one, which imposes its size and power over the market, buying or destroying all competitors, but that is not the one I’m talking about. The intellectual monopoly, the one created by innovation, or by having a 10x product, is the best position in the market. You have no competition, or they are scarce. The market is in pain, and your product can solve that pain. Tesla  as an example, is a company who builds on of the best electric vehicles in the world. But they started with a roadster, a really cool looking roadster, which was a novelty item, but beat all of the brick-shaped electric vehicles when the hip green business people considered on buying an environmentally friendly car. I would buy the cool roadster over the brick shaped electric vehicle any day. Now Tesla also has 2 family cars, the best electric cars in the world. There is competition right now, but competition is at that state that Tesla had to open their patents, just for the sake of everyone else catching up to them. It is a monopoly if the competition isn’t competent enough to merely catch up with you, if not exceeding you, and overtaking the market.

Old habits die hard (The Power of Habit review)

I have a few quite obnoxious habits and a few really good ones. I have tried to get rid of some of them, and succeeded in most cases, but some or most of them just reappear after some time. Have you ever wondered why that happens? A book by Charles Duhigg, The Power of Habit: Why We Do What We Do in Life and Business explains it in detail, and I’ll write just a brief outline of the book. You should definitely read the book.
All habits have a system by which they work. And as we learn things, they all become habits to us. Let’s take driving, for example. When I first learned how to drive, it was all finicky and stressful. And by that I mean just driving forward, knowing when to change the gear (we generally have manual transmissions here), how to give the turn signal, when to turn the wheel, etc. Driving is a set of a large number of skills, but people seem to drive pretty comfortably, without the stress mostly. When we learn a skill, and use it on a day to day basis, our brain (the reptilian one) creates the habit loop. The process can be summed to cue > routine > reward. And most of human behaviour can be explained by that simple formula.
When you feel a sensation or some other cue, for example, when I wake up, I need some mental calmness time, to prepare me for the day. My routine was to make a coffee, and aimlessly surf the net or read emails while drinking it. The reward was mostly lacking because I would lose valuable time, but the habit was there, and hard to change. But, when you recognise the cue, and the reward you expect, it is not that hard to change the routine in between. You just have to find something that will give you the same reward as the bad habit you have right now, but now it will be better for you. When you feel the urge to smoke a cigarette, it’s surely not nicotine calling you, but something else. Maybe you are bored, maybe you want to talk to someone, maybe you just smelled some great coffee, and the first action you take is to pull that cigarette out. I’ve been there, and the urge to light it up is devastating, it’s automatic behaviour for you. Like you have been programmed to do it.
Programming is the correct word, we program ourselves to do a lot of stuff. You probably take the same route to work each day. Or when you go outside to take a walk, to refresh yourself, you take the same route. Our brains work like that because if we processed and decided on each piece of information we collect, our brains would explode, and we would not get to think about the greater stuff in life. Walking by itself would be a chore big enough that our minds couldn’t wander off to think about art or love.
Learning new things, like a new language or driving, is forcing us to create new mind maps of stuff we have to do, so we experience anxiety and sometimes quit and completely leave the new skill behind. But if we persevere and stick on to learning it, new mind maps create in our brain, and we form a habit of doing those new things. Computer programming has somewhat become a habit for me, at least the stuff I do on a day to day basis. I feel the same anxiety when learning a new language, a new framework, or having to solve a different problem.
Once you find similarities between the things you are doing at the moment, and the stuff you have done before, your brain will connect the dots, and make it an easier path for you. All problem solving skills are mental habits of some kind, you learn how to identify the problem (the cue), you know how the solution should look like (the reward), and you fetch the stored routine from your brain to solve the problem. Of course, the routine might not fit the problem 100%, but that is where we adapt and create a new routine for the problem at hand.

ember-cli 101 Book Review

Ever since I first heard of Ember.js (even before the 1.0 days), I’ve been wanting to learn it. But the learning curve of the framework always veered me off from it. Also, the lack of a real project to apply Ember.js to it was also an issue. Yes, we can rebuild the Hello World (Todo MVC app) in any possible framework, but the real learning comes when you start building a real application, with all the issues and edge cases it brings with itself. Although I’ve read a lot of blog posts, watched a lot of screencasts, tinkered with it, and nothing came close to the information provided in the ember-cli 101 book by Adolfo Builes. As ember-cli is now the official “Ember Way” (not to be confused with the book that is coming out in spring/summer 2015), I’ve realised it’s worth learning about, and using it to build great applications.
A warning note, if you are looking into Ember.js, and aren’t really that proficient with JavaScript, do yourself a favour and go read this four book series first: Master Space and Time With JavaScript by Noel Rappin. It will teach you the basics of JavaScript, and it also contains an Ember.js book as the last part of the book series.
In the book, the author guides us through creating a simple item borrowing app. The difference from all other tutorials is that the author has created the backend API for us and has different endpoints, as he guides us through the book. You will learn how to implement a medium complexity app with a REST (Rails active_model_serializers) API. Also, you will touch all of the Ember.js components, and implement them in your demo application. You will also get to learn the awesome ember-cli cli generators, which are a really nice thing, especially looking from a perspective of a Ruby/Rails developer, that is used to having those nice things.
Although I’ve learned a lot from this book, I still have to reference the Ember.js API docs for every complex issue. As I will probably have another blog post on learning things, I won’t write much of it now, but the gist is, you have to build 10 apps to be a specialist in a framework, or one or two really nasty ones. You will encounter basic issues when you are starting out, and some weird ones specific only to your project. But that is the thrill of our job, and we need to embrace it, it wouldn’t be much fun writing todo apps our whole lives, would it?
Back to the book, it’s a fairly light read, updates constantly, and as the author himself promised, it will be updated at least until Ember.js version 2.0, which is still in the RFC process. If you are thinking about learning Ember.js, you should definitely consider reading it. You won’t learn everything, it isn’t a silver bullet book that will teach you a new framework in an afternoon, but it will give you a much better start, compared to everything else that is out there. Also, consider that Ember.js is constantly improving(with a 6-week release cycle), so having an up to date resource, while you are learning the framework is a great thing.

Yearly review 2014

It’s the beginning of a new year and the best time to look back on the one behind us. As writing reviews of the past times is generally a good thing, because our memory of lesser moments will fade away, there is only one way to be able to look back and have enough consistent data of the past. If nothing else, we can use it for future benchmarking and see if we are moving in the right direction.


I wrote more blog posts in 2014 than all the previous years combined. Thirty posts came out, averaging 2.5 per month. That is not bad, but still not close to one (good) post a week which is my long term goal, in addition to other writing I’m planning to do.


I’ve had a fairly good year business wise, my business making more than ever before. It was also the first full year I was doing remote only consulting. And it is much better than my previous employment. Stepping out of the box, analysing and solving different problems each week/month is a terrific way of improving yourself and your business down the way. I’ve had two burnouts last year, and decided that I need to slow down a bit, and focus on what is really important. Applying the Pareto principle saved my sanity. I stopped working on a few projects, and I’m happier about the time that I now can spend with my family. Also, I have attended my first
CodeRetreat, and learned a lot, not only about programming and TDD, but about myself, and how to handle working under tight constraints.


Remote work, and the ability to plan my own day has been a blessing, especially because of the fact that I have a two year old son, and spending more time with him than I normally would if I had a normal job, is in itself a blessing. Also, we have been able to spend more than a month at the coast last summer, working from there was a great experience and a proof that this way of life indeed is better (for me).


I’ve rediscovered my Kindle somewhere around the summer and started reading again. Reading about a book each week, sometimes less, sometimes more. Most of those were business books, but also some of them are design and UX books, recommended by a friend. Design has always been a dark magic art to me, but lately I’m finding out that is isn’t really magic, but constrained by lots of rules and boundaries. And human psychology, which is also of an interest to me.
Also, I’ve been reading some biographies, philosophy, almost anything that felt OK when I was reading the book summaries.

Plans for 2015

I have many plans in my head, but everything is a bit foggy and probably unattainable in a year. So, here are some business plans, some personal development, some simple wishes I aim to accomplish in 2015.

  • Creating some small products, I haven’t figured out what they will be, probably a booklet/book, or a small course. I’ve always been wanting to create a SAAS(software as a service) product, and have some passive monthly income, who knows, if I put enough elbow grease into it, it might happen. Small sites like the ones that Kurt Elster does are something also worth exploring. Although the money from AdSense isn’t something you should rely upon, I agree that it is a nice way to direct people into your sales funnel.
  • Build a site for my consulting business, it has been more than one and a half years, and I don’t even have a landing site for the business I’m working from. That is one of the top priorities for 2015. Even if it is some custom WP theme.
  • Learning more about design, and user experience. It is a great interest to me, and although I realize that I can’t be that developer/designer unicorn, I just want to know enough about design, so I don’t feel totally incompetent among designers.
  • Speaking to user groups, and maybe even a conference. I will have to free up my schedule for this, but the goal is attainable, and speaking to people about the things you are working on and know about isn’t that hard.
  • Reading more. My ballpark plan is to read 54 books in the next year, so basically one per week. And I plan to write reports on the site about them. This could also serve as a nice passive income generator because most books I read are from Amazon, and you can earn a pretty sum of money in the Amazon affiliate program.
  • Spend the whole summer at the coast. I always loved the sea, the air there (living 5 kilometers from an old refinery makes you appreciate the smell of fresh air), and the feeling I have always had. I do plan to work, but work less than usual, and have fun with my family at the beach, for as long as we can.

Weekly review: Week ending November 09, 2014

It’s been a couple of weeks without a (public) weekly review. And the main reason for that is, I’ve had almost nothing to report for them. Family, school, college, everything gets in the way and there is little else from regular work stuff that I have done. I’ve spent a lot more time with my son, and I’m considering opening an email account for him, or something similar, so I can send him emails, which he probably won’t read for at least 10 years more, as he is soon to be two years old. When I figure out the means, and the language I’ll be writing to him in, I’ll write up a blog post about it.

OK, enough about the excuses. On to the meaty stuff. I’ve finished one, and read another book this week. The first one is Think and Grow Rich by Napoleon Hill which was recommended on The Freelancers Show and Ruby Rogues a while ago. Two podcasts I listen to frequently, and can recommend to any Ruby/freelance developer. The freelancers show it especially good if you are a small business/consultancy owner. The book is really old, it was first published in 1937, and the things written in the book still stand today. It’s a lengthy read, and it’s basically a get rich slow book. But if you stick to it, it makes a lot of sense. And it should be read a few times, and discussed with a Master Mind group frequently. It teaches you the perils of fear, and what it can do to your ambitions, and how to focus your ambition, and to become everything you want in life.

The other book I’ve read (today, after lunch, because it’s really short) is How to Live on 24 Hours a Day by Arnold Bennett. And it teaches you how to better employ 7 more hours a week on average, because you are wasting time on meaningless things in your life. And because time is the only thing we can’t control, borrow, or save for later, I think it’s a really good read. And I’m happy to realize that I’ve been using some of the techniques in both of the mentioned books, to start doing what I do, and to still keep learning and moving forward each week.

Life does get in the way, there are family obligations, children will get sick, your car will break down, you will start loosing customers for no apparent reason, bad things happen to everyone. But you must stick through it, and just chug along, because there is light in the end of the tunnel, for those who know where they are headed, and go over all the barriers placed on the way there. And in the end, it’s all about trying to be a better person, day after day.

Weekly review: Week ending October 19, 2014

I didn’t do much beside regular work this week. I underestimated the size of Benjamin Franklin: An American Life, so I’m still reading it, and it’s great. I knew almost nothing about the US in that era, so this is a very good history lesson, and learning about the life of such great man, which Benjamin Franklin surely was. Didn’t even manage to start the other books.

I wrote more than usual, and plan to hit at it a bit more from now on. Here are the posts I wrote and published this week:

There is one more pretty large feature scheduled to go out next week, so I’ll probably be under a heavy load too. That stuff gets planned in Wunderlist, which I really love using more and more, for private and business use.

Weekly review: Week ending October 12, 2014

I’m trying to do my best in organizing myself, hence these weekly reviews I’m
planning to do more often, hopefully on a weekly basis. The posts probably
won’t be interesting to regular readers, but if you are a stalker, here is
some candy I’m throwing at ya 🙂

So without further ado, I can start with the brief overview of how my week

I have read two books in the last week, both are really good and would
recommend them. The first one: Designing Web Applications by
Nathan Barry will teach you the fundamentals of web design, how you should
think about your web application (not web site), and how you should structure
the user flow. Barry goes through great examples and gives you a very good
base to start learning about web application design, and UX design.

The other book I would recommend to everyone, and if you have read it, I think
you should re-read it on a regular basis. The book is called Thank You For
and it is by Jay Heinrichs. Heinrichs teaches us the
great art of Rhetoric, an art that
was forgotten, and is getting a small revival now. If you want to learn how to
argue better (I didn’t say fight), get what you want, while leaving the other
side also satisfied, and get vaccinated from false dogmas, whether in
advertising, politics or wherever you encounter them, go and read the book
right now. But be warned, although this skill may look like magic to some
people, it really isn’t, it’s just a better way to articulate yourself, not
get played by people trying to play you, and have a better life in the end.

As I was a bit stressed up from private issues over the last couple of weeks,
I had to ramp up work, and didn’t have much time for anything outside of the usual
“work stuff”.

Plans for next week

I have more reading planned for the next couple of weeks, my Kindle Paperwhite
is loaded with a couple new books to read:

I’ll probably be reading more about UX and design also, so if you have good
books or resources for someone starting out in that field, feel free to leave
them in the comments.
We also have a plan to migrate a part of the system to Ember.js, from the monorail
application we are using now. So that will be something thrilling to do, as I have to
figure out how to incorporate ember-cli with a our production application.