It’s been a long time since I published anything here. It’s not that I’ve written nothing meanwhile, I’m just rather selective about what I’ll publish. While skimming my unpublished posts folder on Google Docs I found and article I wrote when Samsung Galaxy S3 first came out about my initial thoughts. I was using S2 back then and found the new S3 format simply ridiculous. 4.2 inches was the one and true best size for phone screens in my opinion back then and the post was spiced with jokes usually made of Hummer owners.

I stuck to the option til about 1.5 months ago when I first laid my hands on Samsung Galaxy Note 2, Samsungs 5.5” flagship smartphone. We were simply getting something to eat with my co-founder at supermarket closest to our office. Samsung had set up a stall with Galaxy Note 2s and hot girls presenting them. That’s a combination one can’t just walk by so we stayed there and took a look. Both of us had heard something about the device I was interested in the actual multitasking with 2 windows, my co-founder was intrigued by the 1024 levels of pressure sensitivity.

We spent about 20 minutes at the stall. The girls were really nice, but the thing I was in love with in the end was Note 2. 20 minutes was all it took to make my S2 look small as an iPhone (that concludes the mandatory joke on iPhones in every Android related blog post). So as a Christmas bonus we got Note 2s for everyone in Aplefly.

I’ve been using it for close to a month now and I can bring out only one negative thing. You will look ridiculous talking to it. You’ll look like there is a satellite dish attached to the side of your head. Other than that, it’s the best piece of technology I’ve laid my hands on, besides who uses a smartphone to make calls anyway?

First of all, it’s fast. Boy it’s fast4 cores at 1.6 GhZ and 2 gigs of ram make it almost as powerful as my computer few years back. It sure allows smooth switching between apps and great gaming experience even when playing with HD settings.

Next thing worth mentioning is the stylus. A nice thing while taking notes no doubt but other than that I considered it rather worthless addon. I was wrong again. As the screen detects the proximity of stylus even before actual touch it opens the mobile web to mouseover events. Something that could never work with regular touch screens.

Enough about specs and features, there are thousands of articles and YouTube videos covering that. The real question is not about the specs but about how is it to use on daily basis?

The thirst thing people notice about Note 2 is it’s size. And almost exclusively the first comment they make is about it not fitting into regular pocket. This is just wrong it does fit into normal pockets just fine. I admit it can be a bit tricky to get it out in a car seat, but you should be using a hands free while driving anyway.

From features point of view I’ve begun using handwritten notes during meeting. Not on paper of course, but in the Note using the stylus. It’s really comfortable and let’s you avoid the awkward moment of silence while typing in the information client just told you on iPad. Only it won’t be silence really as the only sound in the room will be the annoying letterpress sound iPad makes. It’s better than regular paper-notes because I can’t lose them and I can easily share them with rest of the team.

Second thing is that I’ve been using my iPad a lot less recently (and I don’t just mean during the meetings). 4.2” screen of my old S2 was not large enough to read longer texts or even browse web comfortably I used to do all that on iPad. Now I read all my emails on my phone. Note has demoted my iPad to e-book reader status. That’s practically all I do on it besides development.

Gaming experience is way better on bigger screen. I try out many games as it’s practically mandatory as an indie developer, but now I enjoy it quite a bit more.

Do I recommend switching your small phone for phablet? Absolutely.…


Garage48s are hackathon events in Europe and Africa where teams have to take an idea to prototype in mere 48 hours. They are pretty addicting, I’ve personally participated 6 so far. With that many events I’ve learned a bit how to make maximum of the 48 hours as a developer, which I’d like to share with you. Even though the following tips are based on Garage48 events I’m sure they also apply for other similar hackathons like Startupbootcamp.

Before the event

Version control

Go through different version control systems like Git and Mercurial (Jokes will be on you if you choose to use SVN 🙂 ). Make sure you have them installed and have all the tools needed to for effective use (proper diff- and merge tool for example.). I for one like graphical user interfaces for both Git and Mercurial, thereby MacHG and GitHub for Mac are my friends.

Also go through a basic documentation, especially if you haven’t used one of them in some time. At last Garage48 in Tallinn I found myself knee deep in Git even though I use Mercurial daily.


Hosting and server configuration

Chances are, that you have to set up everything necessary to run the prototype on live server yourself. No matter what technology you prefer, go through the process of setting up everything on blank debian installation before the event. This is really important as it’s stupid to lose several of your precious 48 hours on googling Apache configurations.

Choosing the team

Think through your intentions for the event. Are you looking to actually go for a startup company (like Campalyst or Qminder did) or just a fun experience? If you are not planning to stick with the team after 48 hours, don’t go for business-ambitions ideas. Rather take something you really can deliver in 2 days. Chances are, you’ll have much more fun in the process.

During the event

You can switch teams

If you feel that the team or project you chose is really not right for you it’s better to change the team than just walk away disappointed. At first Riga event our team was merger of 2 similar ideas. On Saturday morning we got a message on Facebook from one developer and one designer (who were together..) saying they don’t actually like the idea and they are leaving (If you two are reading this, your shame shall be eternal!) We went on to win the event with Planify. Some other team is always happy to have another sprintf(“%s developer”,”Your favourite technology”).

If possible, take the easy way out

Make things as easy as possible for yourself. If you are building a simple LAMP application, you might be better off hosting your application on virtual server (GoDaddy/Hostgator for example) rather than an instance you have to configure (seriously, every minute spent on configuring platforms is a minute wasted, unless you really have to).

If you have to choose between platforms, go for simplicity over speed or features. Qminder wrote their first prototype in PHP and later ported it to their technology of choice Java. If you go on with the project, you will eventually scrap all the code written during the event anyway. The more features you can include in your prototype the better. You will probably only manage to implement only a fraction of what one would consider MVP, don’t make things harder for yourself.

Who writes the code chooses the platform

And that’s it. Unless project manager and marketer(s) join in and substantially contribute to the code base, you can completely ignore their demands on the technology of choice. If you and fellow developers like PHP your project will be written in PHP, not Ruby on Rails or Java. If you have Android competence, yet the original author of the idea wants iPhone application you will be delivering the Android application. Simple as that.

Their competence in another technology might be an advantage later on if you decide to turn your prototype into a startup, but at first, you have to deliver a prototype. That takes me to next point.

Garage48 is the best learning experience

If your team is competent in another platform, take it as a change to pick their brains. Swallow your ego and take a chance to experiment with a new technology. Even though you will be less productive, you will get more out of the event. Your teammates will be happy to help you out. There is no better way to learn a new language than being obligated to deliver a prototype using it in 48 hours!

Get at least 4 hours of sleep a night

I’ve gone through one event with 48 hours straight hacking and networking (read: a lot of rum). It wasn’t worth it. You’ll be much much more productive if you have had some sleep at night. For me, the absolute minimum is 4 hours. If the event is not in your hometown, take a hotel room. Sleeping on the floor at the venue is almost equivalent to no sleep.

Don’t leave deployment on live server to last minute

It can be irritating to find out that rails won’t compile on live server for one reason or another. It’s devastating if it happens 30 minutes before the final event. Something always goes wrong while publishing the app, be ready to make last minute changes on live server if necessary.

At very first Garage48, we actually got our 100% working prototype live only after we had demonstrated it! It didn’t matter because people probably didn’t even notice it and we actually won. Just be ready to put out the last-minute fires.

And most importantly have fun. Stress will get you nowhere.…


The story of my first business begins in 9. grade, year before high school. I found out that one of Estonian leading universities had a program for high schoolers to take real university courses online. Even though I didn’t exactly qualify by age I still decided to go for “Programming Basics” and “Programming in Java”.

If you are aware how WebCT platform works, feel free to skip the following paragraph. If not, the courses were organized by weeks (I think “week” in this case lasted for 2 or 3 real-world weeks). Every week we would get new materials, exercises and an assignment we had to submit by the end of it, plus the equivalent of the final thesis.

The beginner course was a complete disappointment, I clearly had a better grasp of C++ (and Estonian) than the lecturer, which was one of the reasons I decided not to go to university years later. Java course was rather interesting, however. I hadn’t done any serious Java development before and it got me started. As I obviously had researched extra material by the first week, the entire course seemed way too easy since second, but I didn’t mind. The lecturer and other participants were awesome. That spark an idea. idea that took about half a year from the end of the course to hatch. The level of the provided university courses was low, the entire process was way too long and the environment barely usable. I knew I could do better. Hence, at the age of 16, a law-student friend of mine and another guy from the Java Course incorporated what could be translated as “Online training group Ltd”. The law student was an adult and had to take the only seat on the board of directors as I couldn’t being underage. I still had the majority of the company though.

The third partner was also underage and couldn’t get his parents to sign the consent to become a partner. So I held his share for the time being. Neither did we have the money for it, but we managed to get a loan how we got there is worth an article of its own.

We started off with a simple goal to teach programming to others like us. At the time, it was nearly impossible to learn any development in our native language without attending university. To get into the “inner circle” you had to go through several layers of trolls in internet forums and IRC, we decided to provide the safe entry point. As we were targeting people our age we decided to keep the price low. Way too low.

We quickly built our training platform and started off with few courses. Things were going pretty well, we recruited other people (who we mostly knew from the internet and were also our age) to teach platforms they knew. Our design wasn’t the best but a friend of mine had recently started a web development company. With the earnings from our first few courses we bought a whole new design from him and decided to build version 2 of the platform.

Training is a field where you need to be licensed. That was a bit problematic as we were just a few teenagers. Luckily the law-student-co-founder discovered we don’t need a license until we provide 120 hours of training a year. As all our courses were online, we could decide how long one lasts in real time” As you might guess we never crossed the 120-hour limit.

That’s when things started going wrong. First of all, we had a choice of either going on with the same model or switching to information product based approach. Instead of having training groups we would simply have packages of videos/text/tests and assignments. We decided to stay with the original idea. In long run, that sealed the doom of the company. From there one, most of the development was done by the other “technical co-founder” (we obviously didn’t use such terms nor considered us a startup. I’m sure I didn’t even know the term startup). More precisely whenever he got an idea he just added it to the system without consulting anyone else. In time the platform grew to be a horrible mess from a backend point of view.

When a young ambitious designer joined us he completely remade the site. However, the code-base was unreadable. We, later on, called it “hieroglyphic code” as random letters were used as variable names and the author failed to answer any questions I had. I’m pretty sure he couldn’t read the code himself.

At one point I just gave up and decided to write the entire system from scratch dumping all his code. I strictly forbid him to ever touch the source code again. From that point on we didn’t get along anymore and didn’t speak for a long time. That wasn’t the only reason of cause. He wanted to keep on just giving almost-free courses in “hipster-like” environment, I wanted to build a business. He didn’t even ask for his share in the company when he got 18. In the sake of honesty, he later asked for a share of the courses which used his materials.

By that time we had noticed that our initial target group was wrong. There were some young people taking our courses, but majority where companies and even universities training their IT departments. Almost all participants were way older than us. We didn’t draw any conclusions from that and moved on with our initial plan.

The problem was the initial approach had proven to be flawed. It required too much commitment and engagement for trainers point of view, for relatively low return (we paid our trainers 40% commission from net profits of the course). But we were sure the technology was to be blamed. The administration interface was rather uncomfortable, it took some time to grade all the works and set up the materials for the new course). New system fixed all that.

So on the third year of operation, we upgraded our platform again, instead of upgrading the flawed business model. As you can guess, the problems didn’t go anywhere. Trainers constantly forgot to update materials/answer questions/grade assignments. Even I grew tired of printing countless diplomas for graduates and sending them out almost every week. Some of the courses cost less than 20 euros, so we had loads of clients yet we hadn’t made any substantial profit.

Things got so bad that I couldn’t motivate myself nor the trainers to go on with the courses anymore (despite the contracts). Once I had to refund 2 courses because the trainers didn’t bother to add new material I knew enough is enough. We just stopped and in the end, took the platform offline. What we were doing was just not motivating for our trainers nor for me.

Our trainers got so little at the end of the courses it didn’t keep them coming back daily. If one had actually been teaching 40+ courses at a time (which would have taken less than 8 hours a day) he could have made above industry average salary. The problem was, no one taught more than 3 courses at a time.

Most importantly, what did I learn from my first 3-year business venture?

1) Just do it. Even though we failed I don’t regret the try. I got the taste of entrepreneurship at 16, at 19 I was already experienced in fields of contracts, accounting etc. We didn’t go bankrupt, we just stopped the operations while actually having some money in the bank account. After another quickly failed venture, I started my consulting/software development company Elkest Solutions which pays the bills ever since.

2) Hire an accountant even if you think you can’t afford one. I’m never ever planning to do any accounting myself. I’d rather be mauled by a bear than do another fiscal year report ever again.

3) Don’t be afraid to pivot. I could be polishing my Porsche right now instead of writing that post if we had dared to make the move.

4) If your product/service is worth it, don’t be afraid to charge for it accordingly. Had we raised our prices over time, we might have developed into something much bigger.

5) Be very careful with who you go into business with. That’s something you’ll hear repeated time after time but won’t understand until you’ve experienced it.

6) Technology won’t solve all your problems.

7) You are never too young/old for anything. Our clients included several universities and public companies who were satisfied with the courses mostly taught by 16-19-year-olds.

8) I personally learned to deal with customers and complaints. I can now keep calm talking to any client (which was a challenge at 17), even if I have to explain to him how to type URL into an address bar.…


When I click an article I usually read the first paragraph, perhaps two. If it looks interesting I mark it to ReadItLater Pocket. If I like the post I will check out others as well. If they are as good I will subscribe to the blog using Google Reader.

Why don’t I just read the entire article in the first place? I just skim the top of hacker news or /r/programming for something of interest if I have few minutes of free time.

I read the articles I’ve marked whenever I have a free moment. Usually, that’s during bus rides from and to the office. That gives me about 235 minutes to read stuff I’ve either marked or come to me from blogs I’ve subscribed to every day. The important thing is, I’m only aware of the title and the content of the article.

Few days ago I stumbled upon a blog post about different kinds of software trials. It was a great read. Half way through the article I recognized the context; it sounded a lot like what a guy I know is doing. I opened the page in safari and it was their blog. I didn’t know that having read the entire article! I think that’s a great opportunity lost. I am a potential customer and you’ve written a piece of content I’m interested in, that’s a huge step towards my wallet. However it stops there unless you provide even the most basic call to action. For example “check out our services”.

Google Reader, Pocket, Instapaper and others have turned articles into a single feed, which is great for me as a reader. However it sucks for corporate bloggers as I won’t see your sites layout. I won’t see your header or logo. All I’m interested in is the article at hand, it’s up to you to deliver information about yourself or the product to me without ruining the post. Simple naming your startup and linking to it once or twice in the blog post will go great way to converting a random passer-by to customer.…


This post is based on a talk I gave at Audio-Visual round table at Baltic Film and Media School last week. Though not the exact transcript of the talk, these are the basic ideas with the slides my co-founder Jaanus Sakkis from Aplefly created for it.

Games & Movies


When talking about games, gaming and their connection to film industry we have to start by defining the state of the gaming industry and its development.



The story of modern gaming probably begins with “Pong” released in 1972. Even though it wasn’t the first videogame made it was the one to take gaming to masses. It even caused the very first lawsuit in video games history!

Pong was obviously nothing like modern video games and had no resemblance to movies. However from there on things started evolving fast. The first sign of what was coming was PacMan, the yellow ball munching pills while being chased by ghosts. It was the first game to feature a distinct character and a basic backstory (he was based on a horror story parents from Japan used to make their kids eat their vegetables).



Soon game franchises followed, Super Mario being the best-known one. These games didn’t just feature a character but also a storyline. I admit Super Mario is not the best example of the storyline in games. Strange monsters called Koopas attack the Mushroom Kingdom turning everyone into bricks and to make things perfect nick the princess. From there on an overweight Italian Plumber takes on the task of saving her killing half the population of Mushroom Kingdom (remember, every brick you break in the game used to be a citizen).

The way Mario looks was defined by technical constraints imposed by the Nintendo Entertainment System (NES). He was wearing a hat because animating hair would have been too difficult. He has a mustache to hide his mouth. Drawing it would again have been too difficult at the time.



Time passed and technology progressed. Games became 3 dimensional and at this point have become close to having photo-real graphics. So have the game storylines and narratives.



That’s where games and movies meet. I don’t mean games being made based on a movie or vice versa. I mean that both games and movies are mediums to tell a story using audio-visual materials, just games also have an additional element of gameplay mechanics to consider.

But why should anyone in movie business even consider games? There are two reasons. First one being:



70 billion dollars is the expected value of the global game market for 2013. Why not take a piece of the pie?

Second reason is that games are very much like movies your end goal is to leave the consumer with an emotion. If you are good at making films there’s a high chance you’ll be rather good game designer also. Of cause, you won’t probably be programming it and you won’t be drawing/animating the graphics.

However, the great part is that the barrier of entry for games is rather low. A team of 3 people can create a game that sells thousands upon thousands of copies. A local example is Teleglitch, a game made by exactly 3 people. One to do the coding, one for graphics and one to handle the storyline and narratives.

Games are easy to distribute, you no longer need to sell physical copies of the game.  With various Android app stores, iTunes app store and many other marketplaces, selling a game have never been easier.

I suggest all filmmakers research games as a potential to expand the scope of your current and future projects.…


Almost everyone agrees that writing is good for you and you should do it more often. I had almost a 6-month gap in active blogging. That is if you can even call my blogging style active; I usually write less than 1 article a week. Anyhow, I hope to avoid future gaps like the one from August 21, 2012, to January 23, 2013.

Why did I stop writing? I can think of two reasons. First of them was that it was a really busy time for me and I simply failed to allocate time for it. This is a lousy excuse though, a modern man can always find time to write at least one post a week. Heck, it doesn’t take more than 230 minutes a week. First 30 minutes to write up the draft and second one to improve it. I usually like to go through more than 2 iterations of each article. I’ve found out I can piss off the way larger crowd with polished posts spiced with bad jokes.

Secondly, I didn’t set any goals for the site. It’s my personal blog my home on the interweb. I never treated it as a business tool nor am I planning to. I don’t sell anything through my blog nor write anything in hope of getting hired. It might have a small personal brand development value, but that’s it; nothing measurable.

Not setting measurable goals was probably the biggest mistake. The best way to address the issue would to simply approach it as business set goals and divide them into smaller milestones. The problem with this approach is that it would require more commitment to blogging than I’m willing to put out. So I’m setting one simple 2013 goal for this blog reach an average of 100 daily organic visits for a month.

So how could I do it? The one and only solution are : Blog more (Ok, I guess SEO could help but that’s completely against my principles of this being my personal space on the Internet). At the moment this blog gets 30-60 organic visits a day so the goal doesn’t seem that unreasonable.…