One door closes…

Chris just left OmniTI and so did Jon, Jeremiah departs Forrester, Andrei’s last day at digg is today, Lucas’s last day at Facebook is today…

I got to get me some of that action…

Letter of resignation

It’s been an interesting ride. When I joined Tagged, we were doing around 20 million pages/day—almost all of them coming from the viral registration flow. Today, we have virality turned off, and yet we still do over 240 million page views per day—close to a billion dynamic requests per day—as well as having been profitable for over 16 months now.

In a weird coincidence, Mark Jen is today the Director of Engineering at Tagged. Congratulations!

As for my future? Stay tuned. 🙂

I need a drink first.

Autoloading and Lazy Loading

Two and a half years ago, when first wrestling with the Tagged codebase, I asked Andrei about replacing all my PHP includes with __autoload. I was told under no uncertain terms to not do this.

I did it anyway.

It’s not that Andrei is wrong in his admonition. Far from it! For reasons that I don’t quite care to know, there are caching and lookup optimizations that APC cannot do when it has to switch context to run __autoload. But the problem in practice was two-fold:

  1. The company was bug-driven and the easiest way to eliminate an “Undefined class” error was to go into the preinclude script and include it. Voilá! problem solved at the expense of code bloat. (This bug happens often when deserializing nested objects from cache.)
  2. There are slowdowns when you use include_once where include would do, or when you don’t use the full path in your include, or when you construct your full path from symbols. How many of us do this? Heck, I’m still trying to get used to the idea of include_once and require_once. Ahh the days when I’d have to write symbols with every include file!
  3. More to the previous. If you have deep dependencies and don’t use a FrontController pattern, you’re going to have to use require_once() which will get executed multiple times. An __autoload only gets executed once.

At a certain point, optimization gives way to convenience and practicality.

For Tagged, this was that PHP would allocate 12MB/80ms to say “hello world”, 20MB/465ms to display the homepage, and 22MB/1965ms/1207ms to return my profile page

After the rewrite it takes 0.3MB/3ms to say hello world and 3.7MB/109ms to return my profile page.

Continue reading about lazy loading after the jump

Always a bigger fish

Alexa revised their ranking system again. Data is now limited to the last six months.

I thought I’d look up my website.

Tagged vs. competitors

Tagged’s traffic (in blue) vs. similar popular social networks: friendster, bebo, and orkut. I got the list of competitors from TradeVibes, excepting Facebook (too large), and Piczo.

As you can see, even in the last six months, we seem to be growing in the face of a declining social networking trend. That’s no surprise. we were the fastest growing social network in the United States last year in all categories (by percentage).

That’s good. But let’s look at the big boys.

Tagged vs. big boys

Tagged vs. the largest social networks. Technically Tagged is larger than hi5 in the U.S. (Nielsen NetRatings: 3rd in users/day, time spent/user, and ad market share). This is worldwide marketshare. Not that I can hold a grudge, hi5 was incubated out of the same offices as Tagged—long before I joined it.

Hmm, not even close (remember the graph is logarithmic). Well, at least with 19 places in the last three months, we’re still growing fast right?

Twitter comes out of nowhere.

What about Twitter? The rank for Twitter is Yesterday: #49; 7 day average: #51, 1 month average: #63, 3 month average: #93, 3 month change: -491(!)

There’s always a bigger fish. Congrats, Twitter. 🙂

Goodbyes and hellos

I just get back from Amsterdam and two of our engineers are leaving Tagged and we have a lot of job openings.

One of the departing wrote an interesting e-mail on leaving which I’ll quote below and maybe it’ll give you an idea what it’s like working here. But first, some open job reqs…

[Tagged Jobs Reqs and farewell after the jump. Read on! It’s worth it.]Continue reading

Consultants

(I am sitting in a presentation on a web framework in our office conference room given by a former employee who is now a consultant. One of my engineers asks the consultant to give an example from experience where he had to modify the framework code itself.)

R—: “Yeah, that happened to me, you know when v was greater than 1 and you are going viral… you know when you are doing a blast? We had a couple sites hit over 40 million users, sure then we had to go in to the CakePHP objects with an optimizer. I don’t know if you still have that at Tagged, but back when I worked there and blasting those times it makes sense to optimize so sure I’ve done it before.”

(One of my engineers, not me): “What company did you consult for hit 40 million users?”

R—: “Umm… (long pause)…I was speaking in hypotheticals. But certainly… v greater than one… I’m talking about the slope, when that happens and a lot of e-mails… No, we’ve worked with some sites that had… umm… (pause) more than 10 million users and that’s umm… what I was talking about, built on Cake and we’ve done that for around 10 million, so it’s certainly doable.”

(I so wanted to ask what site that was with even 10 million regs.)

[Origins after the jump.]Continue reading

The Dutch

“Please tell me you guys aren’t getting in bed with Google. I actually find myself rooting for annoying-ass Fuckerberg because of this Open Syphilis shit.”
—e-mail from a friend

I’ve had a number of people who know what I do as a day job ask me what I think about Google’s OpenSocial initiative. Maybe it’s because they know I’m so opinionated and they just want to hear me go off.

What’s strange is how few of those actually involved with the project have asked me what I thought (Answer: none of them). They know that I’m not a photographer, or a socialite, or “they guy who does Lunch 2.0” and yet they’ve been strangely silent before, during, and after the announcement. It turned out I only found out about this at all, because of people who know me only as a photographer, socialite (laugh!), and “the guy who does Lunch 2.0.”

Now I won’t go out to state my opinion about OpenSocial beyond the question: You parlayed my friendship for this? I guess you can guess what I think about OpenSocial from that.

Chalk this up to another incessant reminder of why I hate the high school antics of the Valley. Had any of them bothered to ask me about this, here is a tip I could have given them: when you make a list, there are much bigger companies in the Valley than Facebook that are going to be disappointed they weren’t invited to the party.

Slick move, ace!

I alluded to this bitterly in a previous post, but to further highlight the absurdity of the who was and wasn’t invited to the “Open”(laugh!)Social, I was talking to another friend:

“They leaked this well in advance to the ‘largest social network in Holland.’ In Holland??? Can you believe?”

D—: “Haha. I sort of like the Dutch. They sort of sound like Germans but act nicer.”

“The only thing I know about the Dutch is that they’re awfully tall.”

D—: “Maybe it’s to keep their heads above sea level.”

Ahh, trust my friends to put everything in perspective.

(After that conversation he sent me this to cheer me up.)

The open office

See our open offices with free food, beer, and t-shirts at Lunch 2.0 today!

Photos of my workstation are like photos of “What’s in my bag”—they seem to draw a voyeur-like fascination just short of a shot of a pretty girl.

Well since we recently tore down the cubes, I finally set up my workstation. You can come to Lunch 2.0 this Friday and see for yourself, but just in case you happen to be in Mexico drinking Corona’s that day:

My new open office setup

My new open office setup
North Beach, San Francisco, California

Leica M8, Cosina-Voigtländer NOKTON 35mm F1.2 Aspherical
1/16sec, iso 320, 35mm (47mm)

Click on the photo and mouseover the image for some tagging goodness.

[Inventory and open office after the jump]Continue reading

My Plaxo Spam

Now that Pulse is officially out, I decided to “spam” my Plaxo members. I don’t know if it’s really spam since these are only the people already on Plaxo and I had to add them each individually (I wish there was a bulk function.)

A peek at Plaxo Pulse

[About Plaxo and Lunch 2.0 after the jump]Continue reading

No whammies, big money

A funny rumor appeared on TechCrunch about the company I work for.

I won’t comment about the rumor. (To be honest, I’m so bad with numbers I wouldn’t be able to get the number right even if I did.) Instead I’d like to point out Comment 26:

“15M can hire the BEST engineers and product team in the bay area, word on the streets is that they already have 3 of the hottest sh*t php engineers, and a famous architect boot. I would watch out for them in the near future.”

Famous architect? Moi?

Pshawww!

P.S. Tagged is hiring. I don’t know about the others but I’m looking for some young, hot sh*t PHP engineers who don’t mind working with a “famous architect” for a profitable, growing, hot startup with tons of money. (The beauty here is you don’t work for me. I’m like the color commentator of your code.)

We’ll see who can kick out more product. As long as you kids don’t keep stealing my hearing aid, I’ll give you a run, I promise. 😀

Contact Mark Jen and Terry Chay (especially Mark, I’m just an engineer… but apparently a “hot sh*t” one. :-D).

Making it rain (a story with three "Mark"ed bills)

Tagged has a Cherry Coke promotion which pretty much works with any website out there. In honor of this, I pimped out my profile with some raining cherries—I mean once you get over all the pr0n on my profile, that I’m too lazy(?) to delete. 🙂

Mark #1

Apparently there was a reward for getting Mark hired and I was the lucky recipient of it. In a move back to our gangsta roots, Greg gave me most of it in the form of a brick of 125 $20 bills. Time to really make it rain!

Making it rain

Making it rain
Tagged, Financial District, San Francisco, California

Nikon D200, Tokina AT-X PRO 16-50mm f/2.8 DX
1/200sec @ f/2.8, iso320, 16mm (24mm)

(Best viewed large on black)

[More raining and Tagged is hiring after the jump]Continue reading