Diagnosed with open source fever, Gur is known to wake up at night mumbling javascript code. A turbo hacker with an eye for UI and a taste for beer, Gur can be found rotating his daily obsession between his surfboard, his guitar and his cat. Gur holds a B.Sc. in Computer Science and Management from Tel Aviv university. Prior to SOOMLA, Gur has worked for various web startups and online advertising companies.
Game Design, Tips and Advice

What is eCPM Decay and How to Keep Ad Revenue High

(1200x600) eCPM Decay

After weeks, months of hard work, you have finally completed your mobile game. Everything is set, the red ribbon is in place and you’re ready to release it into the wavy waters of the digital sea, hoping it succeeds, bringing you fame and fortune along the way.

You smash the ceremonial bottle of champagne against the computer you used to build the app, and you press “Publish”. Then, after a week of solid stats, this happens:

ecp decay


What happened?

Your eCPM, your effective cost per mille, or how much money you really are making from the ads served in your app, is decaying hard. What can you do about it? You can either hold your head in your hands as you gasp in despair, or you can get to work, slowing down the eCPM decay and pulling the maximum out of your products. But before I explain the various strategies you can employ, let’s first clear out a few basics, like what CPM, eCPM and other acronyms are, in the first place.

What is eCPM?

eCPM is short for Effective Cost Per Mille, and it relates to actual advertising revenue generated for those 1,000 impressions. Even though it’s a relatively new term, it has quickly established itself as industry’s universal standard of measurement and is being used to compare how well campaigns are performing side-by-side. Here’s what the eCPM equation looks like:


Image courtesy of Appflood: http://appflood.com/blog/what-is-the-definition-of-ecpm

First thing you need to do when calculating eCPM is to divide your total advertising earnings with the total number of impressions you have been given by the advertiser. The number you get is the amount of money you earn for a single impression. However, as impressions are paid out for every thousand, you have to multiply that number by 1,000.

The final number is how much you are earning on average from the campaign.

If you’re still unclear what the difference between CPM and eCPM is, here it is in a single sentence: CPM is a pricing and reach metric, while eCPM is a performance metric.

eCPM is only part of the equation

However, don’t be tempted to measure the performance of your advertising campaign solely on the eCPM. A website with millions of visitors which ends up with lower eCPM can still earn you more money than a website with less visitors, but with a higher eCPM metric. Other parameters, such as how many people visit a particular site are equally important.

What is CPM?

In the world of mobile advertising, abbreviations such as CPM, CTR and CPC are very common. They usually revolve around online ads, how much people view them and click on them, and how much money advertisers and ad networks earn from people’s actions. CPM is short for Cost Per Mille, with Mille being Latin for thousand. So in the shortest possible definition, CPM is the price of a thousand advertisement impressions. Visitors don’t need to click on the ad for the publisher to be paid. They don’t even have to *see* the ad – if they load it, it counts as an impression.

So, for example, if a website charges $5 CPM, that means an advertiser must pay $5 for every 1,000 impressions its ad receives. The CPM is used as a reach and pricing metric, and should not be confused with eCPM.

What is eCPM decay?

As you monetize your mobile app or game and your ad network of choice starts serving ads to your users/players, sooner or later you will come to realize that your eCPM is slowly (or sometimes, drastically) declining. The trend is also called eCPM decay, and is something many developers and advertisers are struggling to control.

eCPM decay: your ad network starts serving ads to your users and your eCPM is slowly drastically… Click To Tweet

Why does eCPM decay occur?

Most will agree – eCPM decay is inevitable. There are many reasons to it – sometimes the advertiser will promote low-quality creatives and provide you with a few clicks and very few installs. Sometimes, your app or game will hand out too many ad impressions, thus driving eCPM down. User behavior is also something that should be looked at, as users are more inclined during the first few views.

eCPM decay - single network vs. ad mediation

Season to be (un)jolly

Be wary of the holiday season. As I’m writing this article, we’ve basically entered the Christmas holiday season, which is that time of year when consumers are most engaged with advertisers and the content they serve. During this time, the competition becomes fierce, and mobile ads and advertisers scramble to fill target inventory during this time. In the weeks following the holidays, a significant eCPM drop is nothing unusual to experience.

If you have decided to incorporate multiple ad networks into your game to serve ads, you might also be experiencing what’s called campaign overlap, which is also often a reason for eCPM decline.


What is campaign overlap?

chartboost-interstitialIf you are using multiple ad networks, they might be serving you the same ad, a problem called campaign overlap. Many of the ad networks are working with the same advertisers and, as you might have imagined, the best performing ads could be, and often are, the same for all of them.

A network might stop itself from serving the same ad multiple times, but it is highly unlikely for networks to coordinate between themselves, meaning you will still end up with the same ad served too many times.

Adam Ben-David, VP of Supply Side Platform from Supersonic, a mobile ads company, is aware of the issue and believes the best way to tackle it is through ad mediation: “Campaign overlap and the effort to avoid it is the fundamental reason why developers use Supersonic’s mediation platform. Our ‘weighted’ optimization ensures that only the most relevant content with the highest eCPMs are served from a developer’s various ad sources, ensuring maximum ad revenue and user engagement,” he said.

He did, however, stress that sometimes repeating an ad doesn’t lead to lower engagement. Sometimes it can be quite the opposite: “Serving the same ad creative repetitively does not necessarily lead to lower engagement, perhaps the opposite, as it often takes several attempts to warm the user up before he or she engages at all.”

Slowing down eCPM decay

There is no escape from eCPM decay, that’s for certain. You can either throw your app into the digital wild and watch as it struggles for breath, or you can develop a plan and a strategy to make sure you get the maximum out of your product. Easing the effects of eCPM decay is absolutely doable and definitely something you should look into. There are a couple of things you can do in that respect: strategize on placement and timing; limit ad frequency; set up proper eCPM floors and be uncompromising in terms of minimising cost.

Slow down eCPM decay by: strategizing placement, limit ad frequency and set up proper eCPM floors. Click To Tweet

Keep in mind that these tips are not meant to be used all at once – the things you do to optimize your eCPM depend mostly on the product you have and its audience. Game genre and user engagement will have an impact on the eCPM decay. Sometimes, for example, limiting ad frequency won’t have as big of an impact as setting up proper eCPM floors. For that reason, you should think your strategy through for each individual product and set up a plan accordingly.


Think about your product: how much space does it have for an ad? Does the ad appear too often, in too many places? Is it hindering user experience? If that is the case, you can end up destroying your own produbreak prisonct, so be careful about where you place your ads. Games that offer short-length levels (a few minutes) often serve ads only after the player has finished a session, while others opt for rewarded video ads, which have proven to be extremely effective in terms of user engagement.

Limiting ad frequency

Timing is also of the utmost importance: if the ads appear at the most inconvenient moments (during the game, at the pause menu, etc.) not only will the user engagement drop, but the risk of players abandoning the app altogether rises. Pay close attention to how often the ads appear, and if you’re getting a campaign overlap.

Setting up CPM floors

When monetizing your app or mobile game, at one point you will also be asked to set up a minimum CPM, also known as the CPM floor. The CPM floor is the minimum acceptable CPM at an ad unit level. It represents the lowest possible price at which a bidder can win an impression on your app or game.

This is also a very important metric and should be treated as such. Setting up a low CPM floor, a high one, or simply trying to match it with the eCPM can all have different consequences on your monetization. A low-cost strategy might push you to later impressions, while a high one might have you ending up with significant decay beyond the second and third impression. Sometimes, matching the CPM floor with eCPM might have unwanted consequences, as you might appear too expensive for CPM advertisers. By matching these two metrics, you could cut out a lot of cleared impressions in the lower end, hurting your impressions count and revenue. So which of the three roads should you take? As with everything else, it depends on your product and your audience, but my general tip would be to be uncompromising in terms of minimising cost. In other words – avoid low-cost strategies and go for a more valuable first impression.

Avoid low-cost strategies and go for a more valuable first impression. Click To Tweet

Here’s why: opting for a low-cost strategy, you will most likely be pushed towards later impressions. Those are quite often only viewed by reward farmers – players watching ads only to gain something in return (in-game currency or something similar).

There’s no stopping eCPM decay…

…but that doesn’t mean you should let it freefall. You can use the tips written above to create a controlled, sustained fall which will maximize the monetization of your app. You can do that through proper strategy and careful planning on how the ads will be served in your product.

Proper placement and timing of the ads are crucial, as well as well-balanced CPM floors to reach those lower-paying gigs and still perform nicely. Try avoiding low-budget strategies and unique rewards obtainable only through ads, as you will most likely end up with reward farmers that are a true eCPM killer.

Feel free to share:
Game Design, Marketing

Monetization Strategy: Redesigning Your Mobile Game From Paid to F2P

The “chicken or egg” dilemma of the second decade of the 21st century is most definitely “free or paid (300x300) 5 Monetization Strategy F2Papps”. Only it took us just a few years to crack this one. The deciding factor is always revenue – can a free app support itself and its creators? The answer is simple – yes. Not only that, but free apps dominate paid apps in every aspect. In the list of 20 top grossing games for Android, they’re all free to play, with in-app purchases available.

The general conclusion is that you should (in most cases, anyway) go for creating freemium games (free to download, with in-app purchases), as much as you can. But what do you do when you already have a fully built, completed game, selling on an app store?

play storeEspecially if the game isn’t selling as well as you’d want it to, you probably considered (in multiple occasions) switching to the free-to-play model. However, doing that transition is like a game of Jenga – one wrong move and you might end up scraping up the pieces of your work from the floor.

That doesn’t mean you shouldn’t do it – it just means you need to be extra careful and plan all your steps ahead, to make sure the transition is smooth and no one ends up feeling played. No pun intended. In this article we’ll break down some of the main issues of the paid-to-F2P model, and show a few general tips you should consider if you’re thinking about crossing that road.

Problem #1: Redesigning to fit the free-to-play model

Simply stripping the game of its price tag won’t suffice – you’ll have to do a lot more. Not only will you have to implement ads to make sure the game pays its upkeep – you’ll also need to work on creating an in-game currency and most likely pay a large client refactoring penalty to enable server-authoritative driven data.

A free-to-play game features many elements often overlooked when you’re creating a paid game.  The core game loop must be tied to real-world consumer habits.  Each level or session should include innate forms for earning resources and spending them regularly as part of the game progression.  

The game design should introduce stress points and barriers that can only be surmounted with sufficient virtual resources collected and spent. On top of that, F2P games usually include an authoritative server to manage aspects such as cross-device synchronization, social leaderboards, global leaderboards, balance backup or messaging campaigns.  

Sometimes redesigning a game to fit the F2P shoes might prove more expensive than creating a new one from scratch. This requires careful consideration.

Problem #2: User loyalty and free mobile games

Source: SuperData Research

Source: SuperData Research

This one is a no-brainer, really. Only a tiny portion of people who download a free-to-play game will stick around for longer than a week. Heck, some will move on after only a few hours. With paid games that’s somewhat different, as people who pay for things often feel they’re at a loss, and will play through it, at least for the sake of “returning the investment”.

Problem #3: Payers and F2P players don’t often mix in mobile games

You will need to also think about how to keep the old, paying players still with the game, and how to make sure the new ones stay around for much longer than they originally intended. Not only that, but you also need to keep in mind that payers, and those who’d rather opt for a F2P title, behave differently in-game.

Paying users and #F2P players don’t often mix well in #gamedev, this guide shows you how to combine them. Click To Tweet


There are many strategies which you can use to successfully transfer your game to a free-to-play model without too much hassle, and this is by no means a tutorial, or the only useful example. The truth is, your strategy will always depend on multiple factors I can’t know from this perspective: what kind of games you’re creating, how many players you have, what’s the demographic of your audience, etc.

Here we can only focus on the basics, the things which will most likely work in any occasion. Consider it a general outline of a strategy you need to create.

Don’t forget to communicate

Your first priority must be to communicate with your players. Explain your decision to move from a paid to a free-to-play model, and make sure you explain how they will benefit from it. Communication must be frequent, detailed and informal, while focusing on the players who paid for the premium version. Placing yourself on the same level as your players and bringing a “human” element to the conversation will help you ease the transformation.  Use all marketing resources at hand here:

  • Email: send personalized messages to all users you can contact via email, which is still considered the best marketing channel
  • Use in-game messaging and push notifications to inform your users of the transition
  • Announce the change on your blog and website
  • Start discussions in your forum to involve your community of dedicated players

Premium users must see a benefit

If your paid users don’t see the benefit from the game switching to a F2P model, it just might backfire on you. You could see the overall rating on the app store plummet, and your page might get flooded with bad reviews, which could seriously damage your reputation and hurt your business. People don’t want to think about “why did I have to pay if he can play for free?”, so make sure the paying players get some sort of compensation.

One of the ways you can do it is to award those players with an equivalent in the future in-game currency. This basically means you should redesign your game to feature in-app purchases, subscriptions and ads. For advertising, rewarded video ads have proven to be a winning approach. Giving boosts, power-ups and whatever it is that you planned on selling as IAP to players who’d paid for the game could calm the imminent storm down.  Planning this ahead with analytics platforms that help segment your different users will prove useful to implement this strategy.

Rewarded video ads reward people who view them

Rewarded video ads reward people who view them. Credit: Supersonic

Another thing you should also consider is not to show ads to users who already paid for the game. This somewhat complements the idea to award the players with in-game currency, as that currency can often be used to disable ads. However, paying users don’t seem to care much if they’re shown video ads, as long as they’re shown in the right time and in the right place. Even paying users are being receptive to them, as long as they’re awarded afterwards.

“I also really like having ad-funded options like watching a video to earn extra currency, as that gives me an opportunity to improve my playing experience without always having to open up my wallet,” says Gamasutra’s Rob Weber. “In fact, I often find that the ad-funded options to earn currency enhance my gameplay, as I can advance in the game more quickly than I otherwise could, which generally causes me to purchase items more frequently than I  typically would.  Rewarding me for my attention is a positive bonus that I welcome that makes me feel good about paying because I don’t feel forced to pay to play.”

When transitioning from #premium to #f2p #games, remember to nurture your existing payers! Click To Tweet

Transition slowly

Just hitting the “FREE” button and completely wiping off the paid game model is not something I’d recommend. Instead, you should try and transition slowly, through a prolonged period of time (think three to six months), where the prices will be slowly reduced, while doing free promos and introducing F2P players to the game. By the time you get closer to the free model, you’ll have a significant majority who’s already used to it.

Notable examples of games that successfully switched

Asphalt 8: Airborne

asphaltGameloft’s racer is one of the examples how to do things properly. The slow transition from premium to freemium ensured the game would not lose its original, paying users, and keep the new ones coming, as well. The game, first launched back in August 2013, cost $0.99, but was available for free, in certain occasions. One of such occasions was a limited-time special offer in September, and afterwards it was offered as The Free App of the Week in the App Store.

After that, the game turned completely free – but only after Gameloft released the first content upgrade for it. So not only did it transition slowly, but it also used the expansion as an opportunity to push the new approach through.

Star Wars: The Old Republic

SWTOR_SoR_SS10_1600x9002Another notable example is the EA/BioWare MMO. It too, took its time and transitioned slowly. As we can see from this example, in July 2012 Polygon announced the game will transition to F2P in November. Even then, in early July, the game already offered the first 15 levels for free.

The game’s developers also increased the frequency of content updates in the transitioning period, offering paying users more value through special in-game items.

Gangstar Vegas

ganstarThis game has seen a significant jump in IAP and revenue after transitioning to the F2P model, but it took its time to get there. The game gradually decreased its price, while at the same time adding new content and doing free promos.

There are many things you can improve in your paid mobile game, if it isn’t performing well. That being said, switching to a free-to-play model might not be the easiest, simplest or fastest solution, but it is one that has the biggest potential of turning the tides in your favour.  

You will have to examine your game in great detail, and forge a powerful strategy before you start transitioning into F2P. Brace yourself for some important overhauling, a lot of communication and a few unsatisfied customers.

Consider Paidmium

The paidmium model (also known as Paymium) combines the paying model with in-app purchases. It is still not mainstream and is considered a fairly bold, emerging strategy. It is usually used to unlock a special in-game feature, or to include a subscription model where your players pay for extra content. Just make sure you don’t force your players to pay in order to progress through the game, as that will most likely make them quite unsatisfied.

Food for thought bonus: Do you keep two versions in the shop or not?

Here’s something you could also think about: having both games in the app store, but in a way that they complement each other. The general idea about having two games is to offer the free one to everyone, and then upsell the paid one to high-engagement players.

Let us know what you think the best strategy is in the comments below.

Feel free to share:
Marketing, Open Source, Plugins

Setting Up a SOOMLA Integration Page

SOOMLA IntegrationsA few months ago we launched our integrations section in the SOOMLA Knowledge Base.  So far, we’ve received some significant code sample contributions from the likes of Supersonic, TUNE, GameAnalytics, Fyber, AdColony, Unity Ads and a few more.  Since our knowledge base website is open sourced on Github, we’d like to offer more companies to submit their integration code samples.  This blog post will describe how to set up such a dedicated, branded page for your platform / service.

Getting Started

  • Fork the SOOMLA knowledge base to your Github account and then clone it locally.
  • Get the knowledge base running locally by following the guidelines in the Github repo.  Our knowledge base website uses Docpad, a Node.js based static website generator.  Documents are written with Markdown for ease.
  • Once you’ve got it running, switch to the samples branch and restart the local server by running docpad run again.

Create Your Platform Page

  • Integration pages are all located under src/documents/samples.  You will see that some samples have both a file and a folder with their name.  That’s because they’ve separated their code samples into separate files which is the right way to go.  Let’s use Fyber for example, you can observe the file on Github: https://github.com/soomla/knowledge-base/blob/samples/src/documents/samples/fyber.html.md.eco.
  • Make a copy of fyber.html.md.eco in the same folder and replace “fyber” with your platform’s name.
  • Create a sibling folder to the fyber folder with your platform’s name.
  • Note that file name conventions are all lowercase here.
  • Note that the file has the .html.md.eco suffix since it goes through Docpad’s pre-processing pipeline in reverse suffix order.  The document is first parsed as an eco template (to allow partial inclusions), then as a Markdown file (for code formatting) and finally lands as an HTML file.
  • Locate the page’s metadata at the top.  An example metadata section looks like this:
layout: "sample"
image: "supersonic_logo"
title: "Supersonic"
text: "Show rewarded video / offer wall to earn coins"
position: 10
relates: ["giftgaming", "fyber", "unity_ads"]
collection: 'samples'
navicon: "nav-icon-supersonic.png"
backlink: "http://www.supersonic.com/"
theme: 'samples'
  • Change these fields: title, image (keep the _logo suffix), text, and backlink.  Specifically in the text attribute, list the use case of using your platform with SOOMLA

Page Content

A page’s content should include:

  • A descriptive paragraph at the beginning explaining a bit about the platform.  Why is it unique? How does it help developers? What is the relationship with SOOMLA’s open source SDK / data platform?
  • Code samples divided to different technologies in different tabs.  See other pages for the tab implementation.  Make sure to place the code samples in the folder you created in the first steps and include it with code similar like this: <%- @include('./fyber/fyber_example.cs') %>.
  • A “Getting Started” section with several simple steps of how to get up and running quickly.  Include links to downloads, sign up pages, resouces, tutorials etc.
  • All code and explanations should be concise and focused on the use case. There is no need to create elaborate classes with tons of platform specific code. Keep only what’s necessary, and have a look at other samples to see how they do it.

Submitting The Page

  • Submit a pull request on Github to the samples branch on SOOMLA’s repo.
  • Send us 2 key images with a transparent background to marketing@soom.la:
  1. A small 100×100 icon – only the logo without labels
  2. A larger icon that shows both the company icon and label.

That’s it.  If you need any further help you can also reach me personally at gur@soom.la.  Happy Coding 🙂

Feel free to share:
Announcement, Unity

Windows Phone Store is here!

The wait is finally over!  We’re excited to release the first version of SOOMLA Store for Windows Phone 8, now available on Github.  For those of you who’ve already used SOOMLA, this new plugin will be a walk in the park.  Keeping consistent with the other platforms we support, WP8 utilizes our rich economy model, event system, encrypted on-device storage, user balance management and Windows Store billing all baked in.  And for those of you who are new to SOOMLA, have a look at our Github repo’s README while we’re diligently working on WP8 documentation for our knowledge base.

SOOMLA Store WP8 provides a “Test Mode” for your IAPs. You will be able to check the purchase flow before publishing, making the tests easier and increasing the quality of your app. It also runs on the simulator (as it support x86 build), is compatible with WP8.1 and is W10 ready.

unity-wp8To cater Unity devs, we’ve also included Windows Phone 8 support in Unity.  All you need to do is select WP8 as your build target.  You can also use the simulation checkboxes during testing.

Windows Phone is emerging as an attractive platform to be in. While device distribution is still significantly lower than iPhones and Android devices, the audience of Windows Phone is a loyal one.  The Windows Phone Store hit more than 500,000 apps last year which is an impressive growth rate and actually beats the growth percentage of the App Store which was launched several years before.

We’d like to pay our respect to the guys at Shinypix studio for helping us make Windows Phone another platform supported by the SOOMLA framework.  Their dedication and work on this project is the true epitome of open source technology.

To get started, head over to the Github repo: https://github.com/soomla/wp-store

Check out these slides for more details:


Feel free to share:
Announcement, Open Source, Unity

Announcing Android Receipt Validation

We’re happy to announce that the SOOMLA Store SDK now supports receipt validation for Android.  This latest development, which was much awaited by our developer community, is another layer in our secure in-app purchase stack which supports our commitment to prevent IAP fraud.  The validation uses our dedicated complimentary server. Don’t sweat it if you don’t know how to set up a server, we’ll pick up the tab on that one.

This latest feature has also been integrated into our Unity and Cocos2d-x plugins to ensure that developers using game engines can benefit from it as well.  In Unity, using Android receipt validation is as easy as ticking a checkbox.  You need to also configure a few things with Google and provide your OAuth credentials. This is explained in-depth in our knowledge base.

Developers using GROW analytics gain automatic access to our fraud protection analytics. Our analytics integration does not use custom based events and is able to filter out fraud to give you more accurate reporting.

View Now

Receipt validation, also known as server side verification, is a best practice for developers who are employing in-app purchases in their game and who isn’t today, riunity-android-receipt-validationght? For those of you who aren’t familiar with receipt validation, the general concept is to double check a transaction with a third party server which in turn validates it with Google Play’s servers.  The reasoning for do this is that malicious users could potentially “crack” their devices’ IAP by installing a piece of software that emulates the purchase process. These crackers usually hijack purchase requests and direct them to fraudulent servers that return a response similar to the one returned by Google Play even though the transaction is never really committed. The solution to this scenario is to validate the receipt that’s returned at the end of the purchase with a dedicated server that you trust, which will validate the receipt on your behalf with Google Play. Since it’s your dedicated server (or in this case, SOOMLA’s dedicated server) it’s much harder to crack the link between that server and Google Play. This process is very similar to receipt validation in iOS.

Check out these slides for more details:


Feel free to share:
Announcement, Open Source

Announcing SOOMLA Integrations!

SOOMLA Integrations

We’re happy to announce a new section of the SOOMLA knowledge base: integrations. In this section, we showcase how SOOMLA can be integrated with other third-party vendors – including SDKs you’re likely to already be using for advertising, analytics, attribution and game servers.


We’ve created integration samples with six SDK providers so far including GameUp, GameAnalytics, OneSignal, Supersonic, TUNE and Unity Ads. By year end, we are planning on having over 20 SDK providers contribute code samples, so developers can learn how to improve their games. One area we are specifically committed to unlocking is cross-game data. For example, developers will be able to block ads from users who paid in other games.

Integration Logos (1)

During the course of the last few months, we’ve received more and more requests from developers asking if and how the SOOMLA open source framework operates with other SDKs. The truth is that being a meta-game framework that handles all aspects of IAP, virtual economies, social and level design makes SOOMLA very practical for harmonious integration with third parties. Our simple API and event-driven architecture make it perfect for interweaving with other solutions. Some examples are:

  • Reward users with coins when they complete an offer from an offer wall.
  •  Offer users free coins in exchange for watching video ads.
  •  Reporting SOOMLA events and meta-data to analytics services
  •  Collect game progression and social engagement info to an attribution provider in order to identify which marketing channels account for your best users.
  •  Deliver push notifications to users based on their purchase history.
  •  Keep track of scores and records with a leaderboard server.

We’re inviting all SOOMLA developers to use our integration code samples and give us feedback. We’d also like to point out that the knowledge base is open source and available on Github – we encourage anyone who has integrated more third party providers to send pull requests with your code samples.

Feel free to share:
Tips and Advice

Software engineers’ resume torment and how to avoid it

For years now I’ve been in a position where I could employ people. At my current job (Soomla), as well as a few previous ones, I have had the honour (and the pleasure) of interviewing and employing people – and even though that means taking the time I’d usually spend coding, I have found great joy in talking to other engineers.interview featured image

Based on this first-hand experience I understand that many software engineers have close to zero clue how to write a CV and don’t even fully understand the purpose of one in the first place.

This obviously reflects my personal experience from the Israeli tech scene – your experience elsewhere in the world (Silicon Valley or London, for example) might differ completely.

I don’t know why this is so, but I’m guessing you either haven’t been taught how to write a CV, or you have poor soft skills and are generally incompetent in writing a stunning CV. You may have never seen other CVs, so it’s hard for you to distinguish a lousy one from a great one, or you can make a good CV, but you’re simply not good enough to make your CV stand out from the masses.

Worst case scenario (and tragically – a very frequent one) – you have no clue why you need a CV in the first place.

Why you need a CV

The whole point of the CV is for you to get invited for an interview – that’s it. If your CV lands you a phone call or an interview invitation, you did well. If you send a dozen of applications and don’t get a single call back, you need to up your CV game.

Getting invited for an interview is your chance to shine. First impressions don’t get second chances, and your CV is your first impression. That is something you must always keep in mind when writing your resume. Also, keep in mind that all of that must be done with words only.

After reading dozens of resumes, I find it odd how people simply can’t get it right. That’s why I decided to lay down a couple of tips on what to do and what to avoid when writing a CV.

What to do:

Cover letter / Letter of intent

You can either start your resume with a cover letter, or attach it as a separate document. In it you should write why you decided to apply to that particular company, and show the employer what kind of position you’re looking for. It’s important because it shows character, and as you will see below – basically everything revolves around character.

Describe your previous jobs in great detail and specifics

The only way for the reader of your CV to understand what experienced you truly have is if you are specific in your description. Don’t fear you’ll bore your potential employer by going into details on what you did before. Being too vague about it is what bores people, as it is hard for them to understand what you did and they can’t relate to it. Ditch the diplomatic language and hit the topic straight on the head.  Note that when I say details I don’t mean going into extreme length, but rather focusing on exactly what you did on the job.

"You listed 'honesty' as a skill in your resume. I don't think that's a skill. - "I don't care what you think".

“You listed ‘honesty’ as a skill in your resume. I don’t think that’s a skill. – “I don’t care what you think”.

For example: Developed a large scale project as part of a client-server platform while incorporating high load database interaction.  Participated in the lifecycle of the product from inception to launch. This is disastrous as it tells the employer nothing about you, the project you worked on and the company you worked for. Remember: Character.

Instead, go for something like this: Worked on the company’s advertising portal as a web application engineer in a team of 4.  Built several web-apps from scratch using a Ruby-on-Rails + MySQL + Redis + EC2 stack, while scaling one of them to 50MM users.

Give examples

Whatever you do, people like to see you do it. If you’re a coder, that makes your job that much easier, as you can show people your code in action. Whatever you did, programmed a website or an app – show it. Make sure you add your Github account, as well.

Don’t hide your social media

Any decent employer will Google you anyway, so you should make sure they have something to look at when they’re there. Beef up your Facebook, Twitter, LinkedIn profiles. Keep them updated, nice and clean.


Remember: Character. Nobody likes working with a bookworm who can’t take a joke or crack one in the office. You’re not drones and you’re not slaves. If you don’t show character you’re doomed, and what better way to show character than to present the things you do in your free time. That can be anything from playing an instrument to hiking, to whatever, it really doesn’t matter – as long as you do something besides work.

Compare CVs

Search for “software engineer resumes” and casually see what other people’s CVs look like. Also, have a friend look at your CV and give you some helpful feedback. If you have a CEO among friends, that’s even better.

CV Graphic Design

It’s very easy nowadays to get your CV designed properly.  All you need to do is give your CV to a freelance designer to give it some touch.  This can be done for as cheap as 5 dollars with the help of online marketplaces like Fiverr.  Consider throwing in a small thumbnail image of yourself.  Remember, you’re not designing a museum, just giving your CV a touch of color and novelty with a professional hand’s help.  Totally worth it.

What not to do:


War and Peace. Have you read it? Most likely not, it’s 1,456 pages long. Nobody likes a wall of text. Keep your CV within a single page. If the CV needs adjusting for a specific position, don’t be afraid to craft one especially for that application. Keep only the relevant info and ditch the rest.

Seven years in Tibet

Nobody cares what you did in primary school, or how you volunteered fifteen years ago in a local supermarket. You should only list activities that are directly linked to the position you’re applying for and in reversed chronological order. I want to know what you did three months ago, not ten years ago.

Keep it clean

Seeing Word Art makes me want to vomit. Seriously, if you’re applying makeup to your CV, you’re doing everything wrong. Keep it clean, minimalistic and concise. Don’t use tables, and for the love of God, don’t use a bordered table with rows per each work place.

Sometimes, employers go through tons of CVs every day, it gets tiring very fast. Before they even know it, they’re not reading CVs, they’re simply scanning through them. Put those eyes at comfort. The employer isn’t always aware of this, but I can definitely testify that when I get a nicely laid out CV, I give that candidate some extra points without even noticing.

Avoid mentioning general skills

Like I said earlier, keep it short and sweet. Use only relevant information. Show character. Writing that you know JSON and XML will only ring the bull*** alarm in my head. Everyone works with these formats today, and there’s absolutely nothing special about knowing them. It’s like saying you know how to use Gmail.

And that’s basically it. From what I’ve learned, people who have a good CV usually do well in interviews too. Also, make sure you stick to what you wrote in your CV. If you claim to know Java, you better know Java, otherwise you’ll be looking at the door fast.

Employers won’t ask you random questions – their questions will revolve around what you wrote in your resume and what they found on your online accounts.

And don’t forget – show character!

Feel free to share:
Startup Tips, Tips and Advice

7 Tips For Your First Marketing Call

The first time you get on a marketing call with any prospect, competitor or potential business partner might be somewhat intimidating for some people.  I recently hBlog-Post-Meme-First-Marketing-Callad a first such call and found that it required certain preparations to increase my confidence.  I’m not referring to sales calls or to cold-calling, but to a pre-scheduled call with another party that you want to learn about.  If it’s your first call on the job, or your first encounter with a new party, here are some tips that will help you steer your way through the call successfully:

Plan Your Goals

Or, in other words, start from the end.  What do you want to accomplish from this call?  What, in your opinion, would be deemed a successful call, and what would be considered a mediocre result?  What assessments or learnings would you like to come out of the call with?  What key numbers or statistics would you like to know from the other side?  If you ask yourself these questions beforehand, you’ll have a better idea of what you want to talk about and where to lead the discussion.

Set a Discussion Framework

Usually when you get on a call with another marketing/biz-dev person and you’re past the hellos and intros, you want to take the lead and layout in several points the main things you’d like to discuss.  Imagine this as a short table of contents – just like you’d expect to have a TOC for long articles in Wikipedia.  This sets a framework for both sides, a mini agreement if you may, of the call’s agenda.  It clears the smoke and helps the other side get a clear idea of what to expect from the call, and it also puts the reigns in your hands for initiating the framework.  Another valuable effect of setting the discussion framework is that it nonverbally emphasizes that this call has a time boundary.  The person you’re talking to is just as busy as you, and neither of you want to get caught in an endless conversation.  Here’s a rather simple example –

“What I’d like us to do today is to discuss your company’s product – X.  I suggest you start by presenting yourself and <your company>, I’ll follow and tell about <our company>.  Then we can discuss what plans you guys have for X during 2015, and we can talk about some mutual opportunities there.  I’ll elaborate about our new initiative Y and how it’s relevant for your company, and we can wrap up by talking about some ideas for reciprocal content publishing.”

Present Yourself and Your Company

Since we’re in a first-time contact with the other party, it’s only curtious and fair to the other party’s satisfaction that you present yourself and your company.  This isn’t exactly an elevator pitch, you do have more than 30 seconds, but don’t make it too long.  I’ve learned that people (including myself) have an easier time digesting numbers and names rather than understanding exactly what your product does and what technologies you use.  So assuming that your company and the other party are operating in the same industry and share the same “lingua franca,” there’s no real need in to dive into details.  Here are some bullets I usually use for presenting:

  • SOOMLA was founded in 2012.
  • We’re an open source company – all of our code is freely available on Github.
  • We have 500 multi-game studios and more than 4000 live games using our open source framework.
  • We’ve raised $1.4M till date and are raising another round these days.
  • Some notable publishers using our technology are Disney, Sega, Gumi, Chillingo and Kabam.
  • We’re a team of 7 strong and growing.

Let The Other Side Talk

This is actually basics of human psychology more than it is marketing.  People like to talk.  People especially like to talk about themselves and their work.  You should be generous and give the other person significant time to talk about themselves in order to build trust and to let them feel comfortable in the discussion.  As the conversation develops, you can support this by asking more “door-opening” questions to new subjects the other side is eager to talk about.  An interesting thing that happens many times is that the person you’re talking to will disclose more information than what you thought would be accessible to. This is great because new learnings are being achieved serendipitously.

Ask Open-Ended Questions

Consider that one of your goals from a marketing oriented call is information discovery.  If you’ve planned the call’s goals, then you should know which key learnings you’d like to uncover, and this should drive what questions you ask and how.  When you pose open ended questions, you’re empowering the other side to choose how they want to answer your question.  What this technique does is usually gets the person you’re talking with to answer with much more detailed responses than asked, which can open new “threads” to the conversation.  An open question also avoids falling into the selection bias trap.  What I mean is that you don’t offer the other side both the question and the possible answers.  What you really want to learn about is the answers you didn’t even think of.  An example of an open-ended question could be:

“So tell me, what are your goals for project X in 2015?”

Offer Shared Initiatives

Eventually, you’d like to take action with the other party in a way that creates value for both sides.  Many of these initiatives can be from content marketing.  Some things that come to mind are guest blog posts, shared articles and hosted webinars that show how to use both companies’ products together.

Keep Things Cool

People will remember you for the best if you were nice to them.  Make sure to be polite and friendly during the call.  Consider preparing some icebreakers before the call as well.  Check up on the person you’re calling in social media, learn where he or she is from and what they like to do.  It’s always useful to be able to spark up some small talk about any common interests when you first get on the call.  Having backpacked in a lot of countries, I personally find that praising peoples’ hometown or country and sharing my experience there a nice icebreaker.

Feel free to share:
Announcement, Open Source

Gamegear.io – SDK directory for mobile game developers

gamegear-logo-bigFor the past few months, I’ve found myself looking up companies from the mobile gaming space quite frequently. We also ask each new team member to study the competitive landscape and the leading companies of the mobile gaming industry. While this is a good exercise, it can be quite difficult to keep track of all the different vendors and providers that have SDKs for mobile game developers. That’s when we realized that there’s no simple directory that lists all of these companies, and if we’re continuously learning about the market, heck, why not quickly build something and put it up for the rest of the mobile game-dev community to enjoy as well.

Today I’m happy to announce that we’ve launched Gamegear.io: the first ever mobile SDK directory for mobile game developers. And, keeping with our core values, it is a collaborative website that is hosted on Github.  This means that anyone can contribute new or updated content to the website.  We encourage you all to have a look and help us keep Gamegear.io live and kicking.  Check out the repo and feel free to star or fork it.

We’d also appreciate your feedback on what other features you’d like to see added to Gamegear:

Feel free to share:
Tips and Advice, Unity

Top 10 Unity Social SDKs

(1200x600) Top 10 Unity Social

More and more remarkable social networks for games are rising, offering a great variety of features to help developers maximize the revenue of their game by increasing retention, engagement and virality. Yet, most of us only know about Facebook.
To make it easier, we have created a list reviewing 10 Unity SDKs and their features:


Platforms: iOS, Android, Web Built-in Facebook Connect: Yes
Plug-ins Support: All Example Game: Candy Crush Saga
Known Model: Free Offers Monetization: Using FB ad network
Key Features: Facebook connect, share, invite, requests White Labeled: Yes

Download Facebook Unity SDK


Platforms: iOS, Android Built-in Facebook Connect: Yes
Plug-ins Support: Unity, Cocos2d-x, LibGdx, ANE, GameMaker Example Game: Safari Party
Known Model: Free (ads) Offers Monetization: Select developers
Key Features: Facebook connect , friend invitation via Twitter / Whatsapp / iMessage / Hangout and more, chat & messages, sync / async challenges, stream, multiplayer, adding other players as friends, leaderboards, search White Labeled: No

Download Nextpeer Unity SDK


Platforms: iOS, Android Built-in Facebook Connect: No
Plug-ins Support: Unity, Cocos2d-x, LibGdx, Corona, Marmalade, GameMaker Example Game: Fruit Ninja Free
Known Model: Free Offers Monetization: No
Key Features:
Achievements, leaderboards, real-time multiplayer, turn based multiplayer
White Labeled: No

Download Google play Unity SDK

Platforms: iOS, Android Built-in Facebook Connect: Yes
Plug-ins Support: Unity, Cocos2d-x, ANE Example Game: The Crossing Dead
Known Model: Free (ads) Offers Monetization: Unity ads
Key Features: Video sharing, following players, discussions White Labeled: No

Download Everyplay Unity SDK

Soomla Logo - Blue

Platforms: iOS , Android , Windows Phone Built-in Facebook Connect: Yes
Plug-ins Support: Unity and Cocos2d-x Example Game: Guess the Character
Known Model: Free Offers Monetization:
Select Developers
Key Features: Connect, share status, like, upload image, get friends, get feed, invite. Unified API across Facebook, Twitter, and Google+. Integrations with Game Center and Google Play Game Services coming soon. White Labeled: No

Download SOOMLA Unity SDK

kamcord logo

Platforms: iOS, Android Built-in Facebook Connect: Yes
Plug-ins Support: Unity, Cocos2d-x, Unreal Example Game: My Talking Tom
Known Model: Free Offers Monetization: No
Key Features: Achievements, leaderboards, real-time multiplayer, turn based multiplayer White Labeled: No

Download Kamcord Unity SDK

Apple Game Center logo

Platforms: iOS Built-in Facebook Connect: No
Plug-ins Support: All Example Game: Fruit Ninja Free
Known Model: Free Offers Monetization: No
Key Features: Achievements, leaderboards, real-time multiplayer, turn based multiplayer White Labeled: No

Download Apple Unity SDK

GetSocial logo

Platforms: iOS, Android, Web Built-in Facebook Connect: Yes
Plug-ins Support: Unity Example Game: N/A
Known Model: Paid Offers Monetization: No
Key Features: Friend invite, share, chat, leaderboard White Labeled: Yes

Download GetSocial Unity SDK


Platforms: iOS, Android Built-in Facebook Connect: Yes
Plug-ins Support: Unity Example Game: Pixelated – The Pixel Color Puzzle
Known Model: Paid Offers Monetization: No
Key Features: Share, invite, web dashboard White Labeled: Yes

Download Socialize Unity SDK


Platforms: iOS, Android Built-in Facebook Connect: No
Plug-ins Support: All Example Game: N/A
Known Model: Free Offers Monetization: No
Key Features: Share, invite followers White Labeled: Yes

Download Twitter Unity SDK

Each SDK offers something different and depending on what social features you want will determine which SDK is the right one for your game.

Feel free to share: