Looking to work 80%* from home on your own hours, lots of variety of projects, with really smart people? We’re hiring a fantastic software developer to join our growing team! Do you have the “right stuff”? If you think so, try to answer the questions below. Then send us your answers and your resume and we’ll have a look.
We’re looking for people who are:
- smart, self-motivated, and get things done
- already experienced with C, C++, Java, pointers, object and object-relational patterns (MVC helps!)
- ready to learn iOS, android, etc (we’ll help!)
As for us, we’re flexible and constantly learning and improving so that we can make great software. We want to make the best possible apps that we can, especially if they have interesting technology & algorithms. We’ve made apps like Kik Chat, Monolith Loop, a real-time driving aid, and an awesome personal health app for a major US company that we can’t identify. And we all work from home 80%* of the time!
How to Apply
Just answer any 2 of the 4 questions below and send in the answers along with your resume. It’s that easy!
And the questions are:
1. (Pointers) Have some C code that produces an integer result. It requires a few changes to make it compile. What will the result will be, and why?
int * foo = 1769; int result = &10[foo];
2. (Database design) Make an entity-relationship diagram for a small subset of the Facebook database. In particular, include in your diagram:
- User
- Photo (including who is tagged in the photo)
- Wall Post
Focus on the relationships/associations between these three objects, and only include one or two of the most important static fields (like a person’s name). Make sure to indicate the cardinality of a relationship e.g. one-to-one/one-to-many/etc.
To get an idea of what we’re looking for see: http://en.wikipedia.org/wiki/Entity-relationship_model. Here’s a tool you can use to draw it online: Gliffy. Then just send us a screenshot. Or feel free to use ASCII art or draw on a piece of paper and photograph/scan, as long as it’s very clear.
3. (Objects) Here’s a little C++ program that has a few errors. Correct them and send in a version that compiles and runs properly. Bonus marks if you get the “in joke”.
//// File: futurama.cpp ////
#include <iostream>
class Drinker {
public: Drinker(); void drink( int potency ); int _numberOfDrinksSoFar;
private: virtual int cantDrinkAnyMoreThan() = 0;
}; Drinker::Drinker() { _numberOfDrinksSoFar = 0; }
class Robot : public Drinker { int cantDrinkAnyMoreThan() { return INT_MAX; } };
class Human : public Drinker {
};
void Drinker::drink( int potency ) {
_numberOfDrinksSoFar += potency;
if( _numberOfDrinksSoFar > cantDrinkAnyMoreThan() ) { std::cout << "I'm all done." << endl; }
}
int main (int argc, char * const argv[]) {
int beer = 5, coffee = 3;
Human fry; Robot * bender;
for( int i=0; i<6283; i++ ) { bender.drink(beer); }
for( int i=0; i<100; i++ ) { fry.drink(coffee); }
std::cout << "Bender: " << bender->_numberOfDrinksSoFar << " Fry: " << fry._numberOfDrinksSoFar << std::endl;
fry.drink(1);
return 1;
}
4. (Algorithms) Here is some hopefully-understandable pseudocode:
array1 = ["aa", "ab", "ac", ..., "ai", "aj", "ba", "bb", "bc", ..., "bi", "bj", ..., "ja", "jb", "jc", ..., "ji", "jj"] duplicate = array1[random()] array1.insert(duplicate) randomize_order(array1)
Come up with an algorithm that will efficiently find the duplicate entry. Pseudocode is fine.
Any questions? Send your response to jobs+co-mi at the URL of this site. We look forward to seeing your answers, and don’t forget to have fun!
* actually more





