Saturday, November 29, 2014

Toptal hasn't worked out for me (yet)

Let me tell you a story about how I got a great job... but not really.

It all started in July 2014, when I stumbled upon Toptal. In a nutshell, it's a premium freelancing portal which connects programmers with software projects. The big difference from other similar sites is that they don't admit just anyone. They have a 4-step recruitment process for developers and claim that only 3% of the people interviewed get admitted to work with them.

Disappointed by my previous experiences with freelancing portals, I decided to give Toptal a shot. I was hoping that they were able to address the biggest problems with finding contract work, i.e. people spamming offers without even reading the project's description, cheap coders from Asia breaking the market by working for $2/hour, and bad projects' descriptions not letting you assess the amount of work properly. This way my interview process started.


As I mentioned before, it consisted of 4 steps and took me more than a month to complete (partly because I went on vacation in the meantime). First, they give you a Codility test to solve. Then, if you do well enough, there's a technical interview during which they ask you about your work experience and test your English fluency as well as video and sound quality (you must be able to communicate with future clients without problems). After that comes another coding session - this time it's done live with a Toptal recruiter watching you write via shared screen. You have to have a microphone on as well to make sure that someone is not helping you with the solution. The final part is a mini 2-week project that you have to make. I can't reveal all the details, but it's basically a web/mobile app (you can pick whichever suits you better) that lets users log in and store some data in the cloud using asynchronous calls and REST. I used Parse for the backend and I have to say that it's a great tool. I chose it over Firebase which has been bought by Google recently and is probably a good alternative.

After my mini project had been accepted, I finally got admitted to the portal. I signed a contract and set my availability to 20h/week, because I was hoping to work on my own apps at the same time. I found a couple interesting projects, for which I immediately applied. They were pretty well described and seemed to be offered by people who knew what they were doing.

After several days and no reply whatsoever I began to worry. I noticed that full time projects were greyed out for me, because of my availability settings, so I changed it to 40h/week and applied for more jobs that I could possibly do. A couple of days later - still no answer.

Imagine my surprise, when finally someone from Toptal messaged me on Skype and asked me directly about two projects (some older ones that I hadn't applied for). I happily answered that I was ready to do anything they wanted me to.

Unfortunately, after the Skype conversation I didn't get any follow-up messages or project invites. Did they forget about me? Or maybe the process of connecting tasks with coders was so time-consuming that they didn't have enough man power to handle it. I'll probably never know.

All in all, having just moved to another country and not having too much savings, I was forced to look for a normal job, which I found (but that's a separate story). I also had to reduce my Toptal availability to 10h/week, so my chances of receiving a serious project are rather small now. Anyway, I'll keep trying and we'll see how it goes.

Tuesday, November 11, 2014

Fruit Worm Bubble

I promised you to reveal some details about the game I'm working on. Well, here they are.

It's called Fruit Worm Bubble (but you might have guessed that already) and it's a bubble shooting game. I'm not writing it from scratch, but rather finishing up the details left over by the previous developer. I agreed to do it because I really wanted to try libGDX and more serious game development in general. I have to say I've been having a blast so far, even though some of my expectations didn't really work out that well. But we'll get to that later...

To give you a better idea of the game, I should mention some of its features:

  • very nice graphics
  • two game modes - story and arcade
  • five distinct bonuses helping you beat the game
  • in-game store which allows you to buy additional items
  • customization options available after beating all levels

For people who like visual stuff - just take a look at the artwork to get a better grasp of what I'm talking about.

What I like about Fruit Worm Bubble is its playability. I rarely download similar games and if I do, I get bored with them rather fast. This time, however, I have to say that I was catching myself playing for much longer than it was necessary to just test the new things that I had added. The gameplay is very dynamic and addictive. The nice backgrounds, animations, and well-matched music help with the general impression as well.

Unfortunately, there are also elements I don't like so much. The biggest one is probably loading screens. They appear almost every time you move between views and they stay visible until you tap the screen.
I also had some problems understanding at first what the bonuses were for but I guess it might be part of the design.
Finally, I was under the impression that both story and arcade modes were quite similar to each other and should have been made more distinct.
All in all, the game is still quite fun and I'm pretty sure that future releases (possibly done by me as well) will get rid of the nuisances.

As to my unfulfilled expectations, I was hoping to learn more of libGDX, when as a matter of fact, I'm using mostly custom classes created by the previous developer. Does it mean that the library itself was lacking them? I'm not sure, but I'm inclined to think that at least some of the code is trying to reinvent the wheel.

What I did learn was the project's general structure and some game development stuff I hadn't had a chance to use before - tweening, advanced texture packing, resource loading/unloading mechanisms, porting to different platforms, etc. In fact, the ability to compile and run the game on my PC was a great thing that I didn't value enough before. Not only did the game launch waaay faster, but also it let me set custom window sizes and take screenshots more easily. As far as I know, they used the desktop version to record in-game videos as well.

To sum up, you can expect Fruit Worm Bubble to be published in December or January. I'll surely brag about it some more, so you don't have to worry about missing the big event. The game will have banner and interstitial ads in it, as well as take advantage of in-app purchases. I'm not sure if using those two monetizing techniques together is such a great idea, but we'll find out soon enough. To be honest, I'm really curious how well the game will do. The idea isn't new, neither is the gameplay very complicated... If only I had someone helping me with the graphics, I could surely create something like this from scratch (not necessarily of the same genre)... Perhaps it's time to start a new project :P