Monthly Archives: March 2014

How to apply for a job at Foolproof Labs

If you know us well, you will know that there are, amongst many things, two things high on the list of things we love:

  1. Great UX
  2. No bullshit

We’ve recently been hiring a lot of people which has involved ploughing through blank emails with resumes attached, or sometimes a blank email with ¬†a covering letter and resume attached as well as ploughing through resumes with lots of irrelevant information e.g. Mother’s maiden name, Religion, a copy/paste from the web for the “My goal” section.

This is a fairly slow and painful way for us to go about the process and it seems “ripe for disruption” as they say in the Startup community, which is the same as saying: “There’s a better way to do that.” (We’d love to go through the whole Design Thinking process for this but let’s save that for another day.)

From today onwards, we’d like to experiment with a different way of hiring people, as follows:

  1. To apply for a job at Foolproof Labs and to have a chance of getting an interview, send us an email stating:
    1. Why you’re so amazing that we should hire you
    2. Why you think you’re fit for the job being offered
    3. What amazing things you’ve done/worked on/want to work on/have ideas for etc
    4. What are you passionate about and/or what you want to learn

If you can answer those well, we’ll give you a call ūüôā

Look forward to hearing from you!



How to track scroll percentage, scroll depth with Mixpanel Analytics

Want to be able to track when a user has scrolled a certain amount down the page?

Well, thanks to¬† it’s rather easy.

I’ve just made a fork of Jquery-scrolldepth on Github here:¬†

When the user scrolls to 25, 50, 75 and 90% of the way down the page, the following javascript will be called:

mixpanel.track(labelPrefix + label);

where label is either “25%”, “50%”, “75%” or “90%” and labelPrefix is “” (empty string) by default.

How to implement:

1. Make sure jQuery is included on your page
2. Make sure the scroll depth script is in included on your page
3. Make sure the Mixpanel tracking script is in the <head> tag
4. Call this function to initialise the tracking script:

$(function() {

5. That’s it! If you want to pass a label prefix, change the line above to:

 $.scrollDepth({labelPrefix:"myPrefix "});

How learning Dota can be applied to learning programming


strategical map

When we play Dota or Dota 2 we always wait for the creeps on either Dire or Radiant side of the map, well let’s relate this on my college life. When I was still in College as an IT Student, when a new technology on development came up and out for use some of my friends tend to say “Professors will teach us about that when we get to the next semester maybe”, with that mentality a lot of students are about to make the biggest mistake of their college years if they are about to pursue their career as a programmer or a developer, if you will be doing that there’s no difference between you and “juan tamad” who just waited for the fruit to fall from the tree rather than climbing the tree and getting the fruit.

juan tamad

Students now a days already have access to fast internet connections depending
on what ISP you subscribed to, so why wait for your professors to teach you a new language
which you can learn at home? When you graduate, probably most of the things that they taught
you in your college days might be obsolete and that will be a pain in the ass because you have to rush your self learning new stuff to find a job as a fresh graduate when that is something you could have done in your college years.

I know some of the players of either Dota 2 or Dota already used the hero named “Axe”, the common
strategy for the users of Axe is that before the start of the game or the release of¬†the creeps, they go on the opponents side near the blind spot and wait for the first release of the opponent’s creeps and kill all of them before they reach center of the map so that axe becomes fatty before his opponents does. Yeah, I know this blog is not about teaching a new Dota strategy on how not to wait for the creeps but this is intended to grab some attention from the¬†college students who prefer to spend their precious time on playing Dota rather than studying stuff that would get them fatty for the clash against the real world.

Be an Axe who doesn’t always wait for the creeps on their comfort zone,¬†there are a lot of communities
on Facebook, Reddit, Stackoverflow etc. that could help you out when you get stuck with some problems while developing or studying new technologies for the development and always remember to “RTFM” (Read The F*cking Manual).

How to annoy a UX designer in 10 easy steps

A light-hearted look at the healthy competition in our office between the “User Experience guys (and girls)” and the “Dev guys (no girls…yet)”…..the “how to annoy a dev guy” post is coming soon ūüėõ

  1. Give them FTP access and ask them to upload their prototype to the server (“FT…what?”).
  2. Tell them their user flow doesn’t make sense but don’t give a reason.
  3. Tell them their “best-practice” feature is impossible to implement.
  4. Tell them the Axure License has expired and they need to use Powerpoint in the meantime.
  5. During the client meeting, while they’re presenting their UX audit, tell them the Account Manager told them to audit the wrong site. Continue reading

What is usability testing?

So I guess you’re wondering, what’s this “usability testing” term that people have been juggling around these days? Let’s cut to the chase:

Usability testing is watching people use a product, like a website or mobile application, then analysing their behaviour to identify opportunities for improvement. It is used to:

  1. Find out whether your product is easy to use
  2. Determine  issues/problems that you can fix
  3. Find out if the product meets users’ needs

This is what makes usability testing unique, the act of watching your users interact with your product is what sets it apart from other forms of research such as surveys, interviews, focus groups, heuristic evaluations and even expert reviews. Don’t get me wrong, all of these research methods are useful but what happens if what your user is saying turns out out to be false? Continue reading

[Probably the] Philippines’ First Unlimited Vacation Policy

At Foolproof Labs / UXMNL, we unashamedly put our employees first.  Russ and I having both spent a considerable chunk of our working life at large corporations, we know how we like to be treated as employees and we use this as a basis for company policy.

When we think about changing or implementing a new policy, our first thought is always “If we were employees, would we like this?” and we use that as our guiding compass. ¬†If the answer is “Yes”, we’ll probably try it out at least and see how it works. ¬†If the answer is “No”, we’ll think twice (or thrice) before proceeding. ¬†(Our “Free Lunch Friday” policy where we buy lunch for all of our office staff is a great example of this.)

This is the background upon which our new Vacation Policy was built. Companies usually give employees a set number of Sick Leaves and Vacation Leaves per year but this time we thought we’d try something different. Continue reading

Reset GIT repo and start from scratch

Boss asked you to commit the wrong project to a newly created GIT? How frustrating that must be!

Here’s a good solution of how to reset and start your GIT over from the beginning:¬†

How to use ! (exclamation mark) in git ftp command line

While using the brilliant git ftp just now, we came across a problem with an FTP password that had an exclamation mark in, so we were trying to run e.g.:

git ftp push --user username --passwd abcd!defg

which was returning:

-bash: !defg": event not found

because the exclamation mark character is reserved for running history commands

The solution is to enclose the password in single character quotes i.e.:

git ftp push --user username --passwd 'abcd!defg'