Blog | Admin | Archives | Random | Recent | Thanks
    • A grand entrance. Ready for a fantastic night! #albakchan
    • #albakchan the main event
    • Commute
    • Meat, bread, and succotash.

My Videos Quick Link on Facebook

I’ve got 99 problems

My Effective Tax Rate

I just got my W-2 for last year, which, when combined with Turbotax or similar, allows me to calculate my income tax rate.

The direct, visible tax rate I’m paying — including federal and state taxes — is about 33.4%.

By any honest measurement, this is far below what I am actually causing to make its way into the government’s coffers. First, my Social Security tax and Medicare taxes are matched by Facebook — 6.2% and 1.45%. I never see this money in my “income”, but Facebook views it as a cost to employing me, so this is exactly equivalent to me paying all of these taxes as a slightly elevated pay rate.

Then there is the VPDI, “voluntarily paid disability insurance”, which, like most government schemes, isn’t really voluntary at all. I can choose to participate in my company’s plan, or I can pay the state — my choice! I of course chose to not pay the state, but essentially this is also a tax (since I wouldn’t carry disability insurance otherwise), albeit one that I get a service out of (of course, some people would claim this of all my paid taxes).

When these are taken into account, my income is taxed at more like a 38.1% rate.

And then, I buy things. I bought a car and paid sales tax on that. Every time I go to the store, I pay sales tax there. Where I live in Palo Alto, the sales tax rate is 9.25%. That’s right, everything I buy, I give another almost 10% to the government. Taking into account the approximate sales tax I paid, using some rough but not unreasonable estimates I made using data from my Mint.com records (I used reasonable assumptions, such as all gas, dining, and entertainment was purchased in state; shopping was half online; travel was mostly reimbursed and not counted, etc), my tax rate goes up to 39.6%.

We’re at nearly 40%, and that’s just the stuff that’s easy to figure out. I pay more for my housing because of property taxes. I pay all sorts of government taxes when I travel (occasionally they are enumerated and they often add 40% to the base rate).  I’m sure there’s a lot I’m missing too. How much do all of these things add to my total tax burden? I figure it’s almost impossible to tell. And that’s not unintentional.

I have a friend who recently calculated his income tax rate, and it came to about 1/8th of mine because he and his wife (one of whom is currently collecting unemployment benefits) are paying two mortgages. Viewing the unemployment payments as a reverse tax, their effective tax rate is well below 0%.

So the guy who made all the “right” decisions — studying hard and busting my butt to be worth a decent income; working through school to avoid student loans; not buying a house circa 2006 because I did the numbers and decided I couldn’t afford it; saving on my own for retirement — now pays at least 40% of his income to taxes, while others who bought the house, financed the car, and take the revolving door job — get net reimbursed with that money.

God bless America.

New Years Resolutions 2011

A bit late, but last year I didn’t do this as all, so I wanted to make sure I did them this year.

This is a post that will be updated a few times before I’m done, but here goes the first few:

  • Do at least one triathlon this year
  • Play tennis every week
  • Count my blessings but never be satisfied

Where is the missing library supposed to live?

For about a month, I was living with a constant stream of warnings whenever I ran a common command at work. While it didn’t make me less productive, since it didn’t affect any functionality I needed, it annoyed me and it bothered me that I didn’t know how to fix it the right way. The error I was getting was a warning about a dynamic library not able to be loaded even though the library existed on the system. Furthermore, when I ran `ldd` on the binary, the dynamic library wasn’t listed.

A quick hack was to find the library and set LD_LIBRARY_PATH to override the normal include paths. However, this didn’t work for automated scripts run from cron without some wrapper to set up the environment, and it felt very hacky anyway. What I wanted to do is find where the system was looking for the library that it couldn’t find so I could put the library in the right place (or at least set up a symlink).

Today, I decided to figure it out, and through some searching I came across this treasure trove that exactly explained the problem and the solution.  Basically, the issue is that linux binaries (including libraries) have an rpath where they look for their shared objects. Setting LD_LIBRARY_PATH overrides this, but as I said, it’s a hack. To figure out the rpath, simply run:

readelf -d <path/to/binary> | grep RPATH

You can run this on any executable or library, so even if a library includes another library, you can just follow the path down until you find where the system is looking for the missing library and fix the problem.

Faceversary

Today marks one full year that I’ve been working at Facebook. It has been the most consuming, thrilling, and educational work experience I could imagine.

Looking back at what I’ve already done — from hacking on MySQL to presenting at a conference to a packed house; from taking ownership of core modules to helping decide the direction of Facebook’s infrastructure; from pushing code to 300 then 400 and now over 500 million active users to debugging site issues at an unprecedented scale… every experience has helped me grow as a person and an engineer.

Facebook surrounded me with some of the brightest people in the world to work on some of the most interesting technical challenges anywhere, while providing the support to make it possible and the autonomy to make it my own. I could not have asked for a better job.

Here’s looking forward to what I’ll be able to accomplish in my next year.

Sufficiently Momentous

Now it is sunny.