Background
It’s been 3 months since I quit my job at the Patent Office. I’ve been programming almost every day since I quit, because this is what I’m interested in.
My first creation
So here’s my first creation that’s ready enough for release. WoOtmatch is basically a Facebook app that matches up Facebook friends that are interested in each other. I thought of this a while ago around 2008 in college, but didn’t have the know how to execute it. I told one of my friends about it who works at LikeALittle for his opinion and he said I should just make it, so I did. I have no idea if an app like this already exists. It doesn’t matter too much, because this was more for learning how to develop Facebook app’s just for the fun/heck of it. If it doesn’t exist, and there is a demand for this, then that would warrant me working more on the project.
How it works
A facebook user adds people they like to a list (must be a Facebook friend), and ranks them in the order in which they would want to date them. Currently, the app is setup to check for matches once a week (cron job) and does so by
1) gathering all matches
2) calculating the strength of the match based on how two people in each match ranked each other
3) sorting that list by strength
4) in the order of best match score, notifying matches who their match is and wishing them luck or optionally a personalized message (set before hand) . It’s not perfect, but I think it makes some sense, and am willing to hear out other suggestions.
Is it useful?
I think this is where people might start to argue. I think that some people would like this and use this. Its value is subtle, but I think that value does exist. I talked to one friend (a guy) who said he would definitely not use it because it’s just not how he would want to start dating someone. I can definitely see why it can be tacky from a guy’s perspective to be using this app, but it still has its merits and advantages. Another friend of mine (a girl) really liked the concept of the app, and said she was excited about it (I hope she wasn’t just being nice). I’ve told some other people about it, and its reception was highly variable. The other issue is that its effectiveness in matching people will only scale with the number of people using it in a close-knit social network (If I like person A, B and C but they don’t have the app, the app is pointless).
How I built it
This was done in Django using Fandjango to help the app integrate with Facebook’s API. I decided to use a lot more AJAX than I usually use. This cuts down on bandwidth and perceived load time. I also used a lot of open source Javascript to do neat things like autocomplete, character count, tooltips, watermarking and drag and drop table row sorting. This project took me 2 weeks because I changed some of my Django models to be more correct and a lot of time was spent just on thinking about how I wanted it to work.
(more technical bit here, skip if you want)
For example, at first matching was performed every time someone loaded the first page of the app if they had anyone on their “like list” (inefficient because in reality, matches can only be possible if a person is added to the “like list”). Then I changed the code so that matching occurred only when a new “like” was added to their list, which was better, but yielded other issues. For example, what if a pair (person A and B) got matched and just a few days later, person C ranks person A on his/her list at a rank high enough to outscore the first match’s score. Then it’s like two people (A and C) who like each other more strongly missed out because of the way the matching is performed. My current solution is to check for matches globally (e.g. the entire database of users at once) once a week on Monday morning. That way some people can wake up on a Monday with A VERY EXCITING EMAIL!
Things I’m starting to realize
I was not a comp sci major so there are times when I feel behind in terms of understanding how to make my code more efficient, but I’ve also realized that sometimes it’s more important that the code works than for it to be optimized. And, from a financial point of view, optimization is premature and won’t be as beneficial (at this stage) as great marketing. What I’m trying to say is, if you have a product/service that works, your long term success will probably be more dependent on your ability to market the product/service than your ability to optimize it. No one will know about your creation if you don’t market it well, right?
Marketing and monetizing
Now marketing is something I’m not yet proficient at. It is definitely on my list of priorities, and probably should be near the top in order for me to move along. That said, I’m not exactly sure what to do in this case. I’ve put out a few Facebook status updates regarding the app and a bunch of friends have it now. I’m not sure if they’re using it for real but it’s a start and I’m thankful. Any tips on how to market this app better would be greatly appreciated.
Another concern of course is monetization. I honestly as of now don’t care whether this app is monetized. I think if there’s demand for it, it would be highly satisfying knowing that I made something people are using to start a relationship. But, if it can be monetized without destroying the concept and turning away users, I would of course be open to that as I am currently unemployed and will be soon looking for work.
The job situation
So I’m currently living off of savings, which is tough, but well worth it for this learning experience. I like the spontaneity of it all. But reality will sink in once I run out of money, so I have to start looking for jobs soon. My lease is up in August and I have to figure out where I’m going and where I’m working, unless I can somehow get income off my own projects within that time frame. I think joining a startup would be the best option here. I want the fast-paced environment where I can learn tons of stuff. But I also don’t want to be just a programmer. I want to get better at marketing and just selling things I create. What do you think? What kind of role/job should I be looking for in my situation? Thanks for any advice or comments.
Where to improve as a job applicant?
Is there any specific area you think I could improve to be a better applicant in the startup/tech scene? I know this largely depends on what role I’m playing, but still, based on what you see in the app (UI, javascript, concept, etc.) or this blog post, any advice is appreciated.
Today’s HN Meetup in D.C.
This will be my first one and I look forward to meeting fellow HNers. I hope I meet some people working on interesting projects to give me inspiration or even an opportunity to collaborate.