162 karma · joined March 28, 2007
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.
The OP's cluster is a 16-node hs1.xlarge cluster (has 3 spindles per node). There's actually a more powerful node-type hs1.8xlarge which has 24 spindles on each node. More info: http://aws.amazon.com/redshift/pricing/
So it's not fair to compare Redshift performance to your Vertica cluster unless the hardware is similar.
PHP vs Ruby is not going to make a big difference. What matters is how you good you are.
Listen to your parents and go to college. If you love working with computers so much, a Computer Science degree will be fun. There's a lot more stuff to learn in CS than merely becoming an expert RubyonRails programmer. Do your web development stuff while you're studying and if you do become the next Zuckerberg, drop out then!
My answers to your questions:
1. Where to start?
All major tech companies at this point would be willing to sponsor H-1Bs for promising candidates. Very early-stage startups will be hesitant to sponsor them (it's expensive both in terms of money and time). So try interviewing with companies like Amazon, Google, Facebook, Yahoo, Microsoft, LinkedIn.
2. Am I being realistic?
Well I can't speak to your CS skills but considering that you claim to have an advanced degree from a top school in USA, I don't see why you would have problems interviewing and getting a job.
3. Other advice
For the past couple of years (since the financial crisis), the no. of H-1B applicants have reduced drastically and hence there are fewer applicants than the per-year H-1B cap. This is great news - all you've to do is meet the visa requirements, get a job offer from a good company, and let the company sponsor your visa, and you're done. This wasn't the situation a few years back when there used to be a flood of applications within hours after the application process was opened (usually on Apr 1 of every year).
But you still have a small issue - applications open in April and the earliest you can travel to USA is in Oct of that year. So you've to think about the timing issues and see if your employer is willing to wait for you for that long. Generally this is not a problem with big companies since they're always hiring and they can always fit you in. It all depends on how good a candidate you are and how desperate the company is for you really.
If it was just a side-effect of holiday season, it should happen every year. Also it's likely something like this would maybe cause deterioration of service but not complete disruption for almost the entire user base.
Btw the salesman is not intentionally trying to be slimy. It's simply a disconnect in his way of thinking and yours. You must understand this guy probably takes the Mumbai metro to get to work every day and yes, the metro trains which have no doors, and those trains where people hang out of the doors clinging on to whatever they can find. So yeah, the salesman probably feels like anti-lock braking systems are not that important in the grand scheme of things in lieu of what happens around him everyday.
Btw go to America and suggest an i10 to someone. They'll laugh their ass off. To them anything that's not sturdy and large is not safe on their roads. At the end of the day, it's all just economics and what each society perceives is vital. Most Indians are first-time buyers for whom buying a car itself is an achievement. Things will change slowly as we become much more sophisticated buyers and income levels rise.
Monthly expenses - S$1600
* Rent - S$900 (this will get you a room in a nice high-rise condominium with swimming pool/gym but you've to share the flat with 2 other flatmates).
* Broadband - S$70
* Mobile + Unlimited 3G plan - S$40-50
* Food - S$400-500 (this will get you good tasty meals at hawker food stalls; not swanky restaurant dinners w/ alcohol).
* Transportation - S$100-150 for public transport (forget about owning a car in Singapore, it's too expensive and unnecessary).
Monthly wages for programmers - S$3000-S$9000 (this range is wide because it heavily depends on your work exp and your employer).Misc facts about SG
* Taxes are lower compared to other developed nations.
* Singapore is generally pro-immigration although they're trying to slow it down now.
* English-speaking country so makes things easier compared to Taiwan/HK/etc.
USD 1 = SGD 1.30 (as of today)
1) Start working on interesting opensource projects. Get your code up on GitHub.
2) Try Google Summer of Code (GSoC) - prepare well in advance for this, become friends with the project leads on IRC, ask them for interesting projects to propose, and show initiative.
1) Write GRE, apply to some good American CS grad schools, finish the Masters degree and start working for your dream startup in Silicon Valley or any of the top software shops. This will also help you with getting a work visa (having American Masters is an advantage).
2) Alternatively if you would like to stay and work in India for a while, there are some great places to work within India. You can work for top-tier global companies like Intel, HP Labs, Google, Yahoo, Adobe, NetApp. I'm not too much into the Indian startup scene but there are some interesting early-stage internet startups like Flipkart. I used to work with the Hadoop team in Yahoo Bangalore (90% of the map-reduce team is in Bangalore). Usually these MNCs have the same kind of work culture (for the most part at least) in India as their American campuses. You don't have to engage in Visual Studio/Eclipse masturbation if you work in one of these places.
Re: certifications - if you want to work for the likes of Google, they don't care at all about certs. Since you're a first year student, I would instead recommend you try to get an internship at one of these places. Getting a job offer with the same company after an internship is pretty easy.