Эта страница на русском языке

A little about us

We're building a peer-to-peer overlay network which will change the way the Internet works. Our ultimate goal is to make a better Internet by allowing anyone to access anything from anywhere at faster speeds!

Team Hola

We believe that the finest products are developed by small teams of great programmers. We are a small group of developers and are interested in finding the best professionals in the world to join our team to develop the new generation of the Internet.

Special Benefits

Open Positions

$40,000 allocated: $29,250 won so far. Why are we doing this?
Forward this challenge and win an additional $500 - here's how!
  • A perfect solution by 31-Dec-14 gets you $500!
  • A good (but not perfect) solution: We'll send you some comments to help you to make it perfect. A perfect (2nd time) answer gets you $250.
  • Israeli residents: those who are serving in the IDF - the challenge is open only if you are now in your last year of service.
  • Look at main(): it calls various functions.
  • You are asked to implement two functions: str_cpy() and str_cat(). No need to implement str_printf() and str_free() (Jungo employees: you are required to implement them).
  • Reading main() carefully will allow to understand str_cpy() and str_cat() signature and usage.
  • The code you write needs to be "library quality"; as good as you would expect a good libc to implement such functions.
  • At the top of the page, you see 4 includes - indicating the functions that can be used to implement str_cpy() and str_cat().
  • You have 15 minutes to implement the whole solution.
  • Copy/paste your solution and send it to
  • FYI: It is possible to implement str_cpy() and str_cat() efficiently in no more than 7 lines of code per function, and in less than 5 minutes.

Good luck!
  • Answer both Challenge questions below
  • Send the answers to
  • Note: If you copy-paste code from the Internet to allow you to solve this quicker, then no problem - but make sure you understand that code so we can ask you questions on it.
  1. First Challenge: Write a tiny Notification app
    • Run an Android service that shows an icon on the notification bar.
    • But when you pull down the status bar you dont see a whole line of the app. Should work on Android 2.3 and above.
  2. Second Challenge: Write a tiny Start app
    • That has a click to start and stop an executable ('sleep 100000').
    • The UI should have a START button.
    • When clicking it should move to STARTING, and once the process is running it should move to STOP.
    • When clicking STOP it should move to STOPPING, and once stopped, it should move to START.
    • It should allow clicking on the button while STOPPING or STARTING which should behave as a request to STOP/START it (even if it's in the middle of stopping/starting).
    • Stopping the process should be with SIGTERM (not SIGKILL), which could take time to complete.
JS Client side (Browser) requirements:

A deep knowledge of:
  • JavaScript
  • jQuery
  • Differences between browsers and ES3/ES5/ES6
  • Backbone
  • Mobile devices
  • Responsive layouts
  • You may use jQuery/Node.js with plugins/libraries of your choice.
  • Submit solutions as a link to somewhere on the Internet where it can be tested and viewed (jsfiddle etc).
  • Answer both Challenge questions below
  • Send the answers to
  1. First Challenge: Async operations (jQuery and optionally Node.js):
    • Web page that clicking 'start' will perform Ajax requests one after the other (sequentially).
    • Update on the progress on screen at the end submit all results (which operation succeeded and which failed) via Ajax.
    • The requests can be user_index (0 to 100) and the response tells whether he is online or not.
    • Make the server side to return random 50/50% to be online or not.
    • The Ajax server can be written in a language of your choice, though if you know Node.js, it would be better.
  2. Second Challenge: Fix up Jeditable plugin (jQuery)
    • Fix up jeditable plugin (either externally, or by modifing its source code)
    • When clicking outside of the area, or clicking ESC, or anything that causes you to leave the field, if the text is modified, then ask the user whether you want to discard changes or continue editing.
    • In the popup of "discard changes" or "continue editing", if the user presses outside the popup box, or ESC, it will be equal as if he clicked "continue editing".
JS Server side (Node.JS) requirements:

A deep knowledge of:
  • NodeJS
  • V8
  • Lots of the various NPM packages, experience with deployment and clouds
  • Monitoring
  • Basic bash/perl scripting
  • You may use jQuery/Node.js with plugins/libraries of your choice.
  • Submit solutions as a link to somewhere on the Internet where it can be tested and viewed (jsfiddle etc).
  • Answer only one Challenge question below
  • Send the answer to
  1. Challenge A: Core JS: Improve when performance by 5x in typical use-cases
  2. Challenge B: Core JS: Make strftime as-fast-as-possible (>50x)