mallipeddi
Joined 19 years ago
Joined 19 years ago
1) How big can all the colocated data for a single primary key get before they don't fit within a split? Can I implement a GMail-like product where all the data for a single user resides within one split?
2) Is there a way to turn off external consistency and fall back to serializability? In return you get better write latencies. This is similar to what CockroachDB provides?
Also the other thing that's screwed up about this is you pay taxes when you exercise the options at the normal income tax rate. But when you want to apply the tax deduction in the event of a loss, you're only allowed to do it on 'capital gains' for an unlimited amount and a max of $3000 on normal income. In fact it might be preferable to deduct it against normal income and keep rolling it over and just pay normal capital gains taxes (which is much lower than your income tax rate typically).
Is your tax deduction = #S * (EV - SP)?
I've worked at some of the companies you mentioned and I regularly do technical interviews for internships. Here are some tips:
- Try to get a referral. This is by far the easiest way to stand out if you are not from some of the top colleges the company is actively targeting (top tier firms go on campus recruiting trips to the best schools in US and they get most of their candidates from that pool). Explore your network - do you know anyone that went to your school and now works at one of these companies? Ping them.
- Start applying early. Usually the company decides upfront how many internships they're going to offer that year. So if you apply late, your changes of getting in are lower - they've very few slots left and they can be very selective. Go on LinkedIn and look for recruiters from the company who handle University Recruiting specifically. Ping them and ask them about internships and their recruiting schedule.
- Try applying to companies in Europe like someone else suggested.
Also don't worry too much if you don't get into your dream internship now - it's not the end of the world. I have been in a similar boat - I went to school in Singapore and I got rejected by every single company in your list for internships (my school is one of the top 3 schools in Asia but that still didn't help). Instead I ended up interning at some local startups. 6 years later things have changed - I've worked for some of the companies on your list and every company that has rejected me in the past is now trying to actively recruit me. So don't get disappointed - keep learning, contribute to open source projects, apply to Google Summer of Code, keep participating in competitive programming contests and be the best you can be.
This just leaves the other smaller players (DigitalOcean, Joyent, Rackspace, etc) who are mostly offering something akin to EC2 and then partnering with other vendors to offer the missing pieces on top (frankly what other choice do they have? They can't get into a race with Amazon/Google on who can build the most no. of services - they will never win that race).
In practice, Cassandra gets around this issue by implementing a custom CRDT for counters. But CRDTs don't exist for everything and in general it's not trivial to get things right. I'm not arguing Cassandra is bad, but it's a misconception that you can tune the consistency levels and somehow get Cassandra to behave like a strongly consistent store.