HN user

JoelPM

186 karma
Posts4
Comments75
View on HN

I also work as an engineer for an ad related company (openx) and I similarly believe we do none of the above. On the engineering side we mostly write code that gets called billions of times a day and has to provide responses in a few hundred milliseconds. It's kinda fun.

Google is definitely an advertising company, but they do it well.

I took CS-373 with Prof Erickson ten years ago. It was hard. But he was also possibly the best lecturer I had while in school.

We're OpenX, located in Pasadena, CA.

We're willing to relocate, and the internship length is flexible. The internships are paid.

We wrote an ad server and have our own ad exchange. We also wrote our own time-series datastore (Erlang and C). Most of our code is Erlang, Java, and C. We're using Cassandra, Riak, CouchDB, Hadoop, and others.

We have datacenters in the US (east/west), EU, and Japan. We handle billions of requests a day, and get a couple hundred milliseconds on each one to determine which ad is the best one to serve. A typical request will hit eight backends in that time period. If that sounds fun, you can reach me at joel at openx . com.

Yes! As an 'old' programmer with a family, I thought long and hard before leaving a stable job and joining a startup. In the end I decided that it was worth it even if I had to find a new job in two years and ended up somewhere that just 'paid the bills'.

In my limited experience, it seems like finding a good startup job in LA depends a lot on your network - e.g. you worked with so-and-so here and they're doing something new and think of you, where my perception of SF/SV is that awesome startup jobs are so plentiful you can't help but have one.

If anyone from earbits happens to be reading - would you please provide an alternative to FB for login? I don't have an FB account and I won't get one just to sign up for your service. FWIW, I've paid for my music for the last ten years and currently subscribe to Pandora and Rdio. I'm in your target market, except for the FB thing.

I like what you said, and it mirrors my experience. It comes down to what your priorities are. In my case it's family, work, then other stuff. It's a lie to believe that you can have/do it all, but it's generally true that you can have/do the things that are really important to you. I don't ride motorcycles, fly RC airplanes, or play guitar much anymore, but I'm okay with that because they were lesser priorities than the top two.

Excellent book! I'm enjoying my copy and find it a great complement to the other two.

riak_kv uses gen_fsm, so people looking for a real world use case could check out their usage: https://github.com/basho/riak_kv/blob/master/src/riak_kv_get... https://github.com/basho/riak_kv/blob/master/src/riak_kv_put...

I'm a relatively new to Erlang, but being familiar with gen_server made it pretty easy to understand the gen_fsm docs and figure out what was going on. I don't see the exclusion as a big deal.

Thanks! I thought perhaps the numbers were so low for those languages that they didn't merit inclusion, but that seems not to be the case (certainly not for Lisp).

Interesting to see that Erlang and Lisp are missing. Whenever possible I'm doing new development in Erlang (with C linked-in drivers where needed for performance).

Personally, I'm moving away from Java and languages that target the JVM. I find that Erlang lets me express solutions more concisely and the Erlang emulator/vm has many of the tools needed for massively scalable, distributed, fault-tolerant systems built-in.

This is a problem with the downloadable version, which is written for the LAMP stack and grew over something like 10 years as an open-source effort. Not surprisingly, YMMV (as with all OS software).

The hosted version (called OnRamp) would be the place to start - it's free, performs better (it's not all PHP), and gives you easy market integration (which the original comment was referring to). OpenX may or may not be what you're looking for, but at least you can test the waters without any initial investment other than creating an account and setting up a few tags.

(Disclaimer: I work for OpenX.)

I launched a service to production last week that uses riak_core to distribute load/storage to 8 nodes. Documentation is a little sparse, but I was impressed by how easy it was to take my single-node service and distribute it using riak_core. Definitely recommended.

Interesting, you're defining "worth" as "the difficulty with which something is obtained." I agree, it is a neat thought exercise.

I was defining worth as "the value that something confers" which may (or may not) be tied to the difficulty with which it was obtained, but requires you to define value, which I have a hard time doing for Karma.

The other day I came across a comment on HN from one of the creators of Erlang. His karma is 31.

I just checked the profiles of the top ten people on the leader-board and while I'm sure they are great people who have really contributed a lot to HN, I would give more weight to a comment/posting from the afore-mentioned HN user with karma 31 than any of them. And, to be honest, I don't really look at people's karma so I'm not sure how you would define the worth of a karma point, let alone determine change in worth over time.

Consider it a reverse screening function. The worthwhile employers won't give much weight to what you know[1], they'll be more concerned about your ability to think and learn. I've gotten several jobs at places using a language/platform I didn't know because I proved I could think and learn what was necessary. I don't think you'd be happy at places that are busy drinking the kool-aid of one framework or language.

Edit: [1]What languages/frameworks you know.

I don't have a Facebook account (and I refuse to get one), so in the unlikely event that people like me are the sole target group of your application/website, yes - requiring FB connect will kill your startup =)

But like I said, it's unlikely.

What CLOD (continuous level of detail) algorithm did you use? The effect looks a little like the one described by Lindstrom and Pascucci in "Visualization of Large Terrains Made Easy."

Anyway, nice job. When I implemented ROAM and then Lindstrom/Pascucci's algo 8 years ago it ran like a dog on an antiquated SGI - I never would have dreamed something like this would run on the browser some day :)

Edit: Ah - never mind, I see you reference ROAM another comment. If you haven't read the paper referenced above you may enjoy it: http://www.pascucci.org/pdf-papers/vis2001.pdf

You raise valid points, so I'll elaborate on my thinking: I don't really care what binary serialization format is used (personally, I use thrift), there's no shortage of good ones available (msgpack, thrift, protobuffs, avro, etc). I think it's more important to decouple the serialization format from the transport and protocol, so that when/if you realize you need to switch you only have to replace one piece.