Introducing the Yammer Panel


The feature I worked on as an intern last summer was announced to the public! The release from Microsoft is here!! Essentially, I developed a wrapper around the Yammer Embed that prepared the page, gathered information about the document, and finally made the call to actually render the feed.

In and of itself, only 300 lines of JavaScript (including a lot of comments and whitespace), maybe 150 lines of CSS, and approximately 70 lines of backend C#.

In the first checkin I touched over 100 files, over half of which were related to internationalization and the build system.

It’s crazy to me that it took so long to build the feature (when I built a compiler with 2k lines of code in a few days, and there was a day I wrote 900 (later refactored to like 500) lines at Qualcomm)…..


Things to do in Seattle

Here is my list of some of the things I want to do/see when I return to Seattle:

  1. Hike Mount Rainier
  2. Go clubbing at least 2x (I will be 21 this summer!)
  3. Go to a Seattle Sounders game
  4. Go to Vancouver (not exactly in Seattle)
  5. Pinball Museum
  6. Bike the Burke-Gilman Trail
  7. IMAX Dome
  8. Cap Hill Block Party
  9. Paradiso
  10. Go to one of the comedy clubs
  11. Jackson Park Minigolf
  12. Skyview
  13. Winery and/or Brewery Tours
  14. Walking and/or Ghost Tour
  15. Original Starbux

Millionaire Next Door: Jack Gsantner

I came across this article from about a maned named Jack Gsantner, who was a small-town billing clerk who managed to build an economic engine and keep it a secret from everyone in town. This case is interesting to me as it is a great example of so-called “stealth wealth”, as Jack Gsantner always drove around in an old car, drank cheap beer, and stocked up on toilet paper in bulk.

In total he had $5.28 million of assets. He could have had $17,600 (pre-tax) deposited into his checking account per month and not run out of money, even under a depression-like scenario. He was, apparently, very frugal and did not spend much of it, drawing criticism from some of the comments.

Craig Smith: “‘How to be rich and not enjoy it’ – By Jack Gsantner”

Nancy Jacobs: “This is sad. His wife deserved better than her remains in a jar and probably rarely having a new dress in 55 years.”

If they were able to afford everything they wanted (they were), then who are you to judge that they aren’t living life enough (a.k.a. spending enough) or that they are deprived. Perhaps they were using their surplus making anonymous donations around the community as an investment in the future. The gem of the article, which really prompted me to cover it, was this:

But Kyes, a retired airline sales representative, said he’ll never forget his cousin. He spent $120,000 of the roughly $325,000 he inherited to buy a speedy new luxury car: a glacier-white Audi A8.

Wowza. Briefly viewing some estimates of salaries for airline sales reps, it appears a generous estimate for what this guy pulls down is they earn around $40k a year. His portion of the inheritance could have provided him with around $13k a year of income.

Instead he spent over 2/3 of it on a shiny brand new car. Using a low rate of depreciation from money-zine, over 8 years he will pay  $76k in depreciation. His car would cost me $150/month more than my current car in insurance, or $1.8k a year x 8 years = ~$15k insurance. He also lost out on over $71,000 of gains he could have made on the invested money. That’s about $20,000 per year of expenses over 8 years.

For a holistic estimate, MotorTrend estimates the following cumulative expenses over 5 years:

$4.5 – maintenance
$1.8 – repairs
$16.3 – fuel
$82.8 – depreciation
$19 – insurance
$25k a year total

Presumably he invests the other $200k making 4% withdrawals of $8k a year. Of the 8k, 25% is going to increased insurance for the car.  15% goes to maintenance and repairs. 20% goes to taxes. That leaves him with a pitiful $200 a month net allowance from his inheritance.

Plus his perceived enjoyment of the car.

If he is already set for retirement, fine. If he had saved $4k/year (10% of his salary) for 45 years and made 6% annually after-tax, he could have around $850k, which produces maybe $34k of income. (I’m going to go out on a limb and say I doubt it). He could have increased his monthly income by 38% or more.

Instead he bought a depreciating asset (a car that does the same damn thing every other car does) that will cost him much of the inheritance.

Maybe its worth it to him. You have to decide for yourself, but you should know the true costs.


The “Basic Income” Trust Fund

I’ve been toying around with the idea of setting up small trust funds for my potential future grandchildren. My objective is to provide them with a base-level amount of support, not to make them filthy rich. The trust would require a university degree and a part-time job for anyone receiving money. I would target about half the median income, roughly $2,000 per month.

Running an analysis on cFireSim we find that we would need $560,000 invested in at least 75% equities to have a 90% chance of success over a 30 year period. This drops to around 75% chance of not exhausting the trust over a 50 year period.

So, we need a little more than half a million for each beneficiary of the trust. Assuming that you have 3 kids who have 3 grand-kids, you would need to support 9 people or so. 9 x $560k = $5,040,000. Not exactly chump change. The good news is that we have the power of compounding and plenty of time.

Assume that you are 20 years old and have kids at age 30. They have kids at age 30, and your grandchildren must be 20 before they receive distributions. That’s a waiting/accumulation period of 60 years.

If you earned the market average 6% after inflation (9.7% growth – 3.5% inflation ~= 6%), you would need a lump sum of $152,784 today to meet your target. Not exactly chump change, but much more reasonable. Again using cFireSim, we can estimate that at an 80/20 allocation, we would need to put away $1,000 per month for 60 years . In the best case historically you end up with $9.5 million in the trust while the worst case is around $3 million.

While saving $1,000 a month isn’t easy to do, especially on top of saving for your self, it can be incorporated into your other retirement plans. Your assets at retirement, life insurance payout, any future inheritance, or your Roth IRA could all be combined together to make this a very workable plan.

Go run some numbers for yourself. Perhaps this scenario is too aggressive. Nonetheless, the idea is an interesting one.


A Review of my University of Texas Academic Career

After having completed the requirements for the Bachelor of Computer Science at the University of Texas, I feel it is a ripe time to do a quick review of the classes I took for my degree.

Freshman Year

CS 315, “Algorithms and Data Structures”: This class was the second of the required “entry-level” courses at UT. I found the class adequately covered data structures  and equipped one well for an interview. I took advantage of using Lisp, which first introduced me to functional programming. We worked on an interpreter which could take a set of functions and known variables, and solve the entire system if possible. Additionally, you also end up implementing Dijkstra’s, A*, and other path-finding algorithms. However, I didn’t find the lectures very interesting.

CS 313K, “Logic, Sets, and Functions”: This was the introductory logic course. The first part of the course is very easy and covers boolean logic. The second part covers sets and proofs. I got a little behind in the class since it was my freshman year and found induction proofs to be difficult at first, and I didn’t enjoy them. However, they prove extremely useful when planning and implementing recursive algorithms. Set logic is also very useful and can be easily implemented in languages with set notation (Haskell, Python, etc).

CS 378, “Autonomous Vehicles in Traffic”: This class was and was one of the Freshman Research Initiative courses offered at UT. Basically, we learned about Marvin, the University’s autonomous car. You get rudimentary C++ knowledge and implement a road-detection using OpenCV. The class was pretty easy in my opinion, and you were exposed to various frameworks such as ROS and OpenCV. It’s worth taking if you haven’t been exposed to anything I mentioned above.

CS 336, “Analysis of Programs”: This class built upon CS 313K, focusing on induction proofs and dynamic programming. The class was a bit tougher but not impossible. The lectures were fairly good, but I personally don’t find the logic types of classes to be extremely engaging. Again, a decent class covering a good section of theory.

CS 439, “Computer Organization and Architecture”: This was the first of the “Systems” classes at UT. You are thrown into working with C quite early and focus on how the processor works. The first assignments are essentially optimizations using bit manipulation, but this class had one of my favorite labs, the “Bomb Lab.” In this particular assignment, one had to enter a series of code phrases into an executable provided by the instructor. The catch: every time you entered an incorrect code, the bomb “exploded” and you lost points. You had to disassemble the program and read through the Assembly to find the correct input. One of the most useful classes at UTCS.

Sophomore Year

CS 344M, “Autonomous Multi-agent Systems”: This was a research oriented class which dealt with managing multiple agents in a distributed system. I still have the textbook, as it has lots of interesting material ranging from consensus-building to efficiency to individual decision making. We read some fascinating research each week and wrote responses, I’ll list some of these publications at a later date. The final project is actually building a virtual soccer team of independent, but collaborating agents to compete in the “RoboCup.” Interesting stuff.

CS 439, “Principles of Computer Systems”: Also referred to as Operating Systems, this class is one of the most challenging in the entire curriculum. However, in my opinion it is also the most valuable. We build off 429 concepts and learn about the low level implementation of algorithms. First we implement semaphores, mutexes, locks, and multi-process scheduling in a teaching OS called Pintos. Then you move on to implementing system calls, memory management and paging, and finally a file-system. My team met for almost 4 hours every day to work on the project. It was hard as crap, but I learned more in this class than any other.

CS 345, “Programming Languages”: I took this class with Professor Cook, who first introduced us to Haskell before going into detail about scoping, environments, and expression evaluation. You end up implementing a JavaScript interpreter in Haskell (how cool!). This was also one of my favorite classes.

CS 378, “Algorithms and Complexity”: I took this class with Prof. Zukerman and did not like it that much. I felt the lectures were straight out of the book, and the tests had nothing to do with the lectures. I got a 68% in the class and it was rounded up to a B+ (!). Haha. Beware this class, I believe it is renamed CS 331. We basically covered the same stuff as in the other logic classes and I remain unimpressed by the reason I was required to take it (namely, graduation requirement changes).

Junior Year

CS 371M, “Mobile Computing”: This is an interesting “app” development course taught by Mike Scott. You cover the libraries and implementation methods for working on an Android system. You get out what you put into this class, so I would advise implementing a slightly more difficult project idea, since you will learn more. I built an app for meeting people near you studying. I implemented Facebook authentication, a backend server in CakePHP, an adapter for integrating data between the device and the server, and implemented push authentication. I thought it was a good course, and would recommend.

CS 350F, “Operating Systems”: I just finished this class… A bit of a letdown. We covered a subset of 439 and in less detail. The professor and lectures were a bit unorganized. I found the class to be kind of pointless since there wasn’t anything new for me to learn. Wouldn’t recommend.

CS 375, “Compilers”: Yes, Prof. Novak’s lectures are quite dry, but I still enjoyed writing a compiler. I couldn’t really tell if this was a tough course, or if I just have terrible senioritis… You only have to work like 2-3 solid days for each of the 5 major assignments, and in the end you have a Pascal->Assembly compiler. Pretty sweet. I would recommend this to stretch your programming and debugging ability, as well as your patience.

CS 373, “Software Engineering”: One of the most practical, pragmatic courses offered at UT, taught by Prof. Downing. In this class you work with Python, Django, and SQL to build a web application in a larger (6 person) team setting. This is a valuable class, especially for anyone who hasn’t worked on such a project before. Prof. Downing is very good and clearly cares about his students, which is an added bonus.


Returning to Microsoft

I will be returning to Microsoft this summer as an intern. Last year I worked on the Yammer team in MOD (Microsoft Office Division), but I am not sure which team I will be on this time. I requested working on the same time, however the only guarantee I could get was that I would stay in Office Division.

I am going to take some time to recap some of what I did last summer over several posts. Back in the middle of May 2013, I hopped in a car and drove 2,300 miles from Austin, TX to Seattle. I stopped for two nights in Farmington, New Mexico and La Grange, Oregon, two quite little towns. Driving alone was somewhat boring, but allowed me time to think and relax. It was fascinating watching the Geography change from Central Texas Hills to West Texas/New Mexico hills, then through the Moab desert into pretty Salt Lake City. Just as you get outside of Salt Lake City, you near Idaho, and you start slowly climbing these small, rolling hills. That then changed to flatland, which I drove through until near La Grande, whereupon rocky mountains appeared again. You actually go back to flatland, then deserty East Washington, until you have to climb in elevation massively to finally descend into Seattle. It was extraordinary experiencing the sheer size of the country. Especially given that the particular area I was traversing is one of the least dense in the US.

This time around I’ll document the trip up with photos.


Why You Should Have a Roth IRA

Whenever my peers tell me that they are interested in getting started in investing, I almost immediately ask them if they have a Roth IRA. Once I explain that the Roth is an Individual Retirement Account, their usual response is something like, “why would I open a retirement account? I hardly have any savings anyway, and I can’t afford to put my savings out of reach in case of an emergency..” While it is absolutely true that you should have about 6 months of expenses held in an interest bearing account (or highly liquid T-bills) before you start investing, you can still open a Roth IRA and use it as a much more powerful savings account.

First, we need to cover some of the basics regarding the Roth IRA. A Roth  is designed for long-term investing for retirement, and thus is given a generous tax treatment from the government. Essentially, you are not taxed on any interest, dividends, distributions, or capital gains in the account each year. This is a huge deal! The frictional effect of taxes on long term gains is astounding (especially if you are buying a blue-chip dividend stock and are reinvesting the difference). As an example, assume you purchase a stock that pays a $4 dividend (which increases at a 3.5% rate of inflation), reinvested the dividends, and the stock stays fairly valued at a 3% dividend yield, in both a taxable and non-taxable account. All things equal, your annual effective rate of return over 15 years in the taxable account would be 5.8% versus 6.6% in the non-taxable Roth IRA. That doesn’t sound like much, but it means you would be 20% richer after 15 years! Again, non-negligible. For this reason, many advisers suggest investing in high-yield dividend stocks and normal bonds in a non-taxable account — while making more speculative capital gains plays or non-dividend stocks in taxable accounts (assuming both are fully funded – obviously a non-taxable account is always better for returns).

The tradeoff here is that, unlike a 401k plan, you don’t receive any sort of tax break for contributing money to the account. So each dollar that is in the account has already had taxes paid on it once — but then compounds tax free. There is all sorts of calculators to determine what the exact return differences are based on your tax bracket and situation, but that isn’t the point of this article.


Can I get my money out?

One of the common misconceptions around is that you “can’t get your money out” of a Roth IRA – which couldn’t be further from the truth. In fact, you can withdraw any or all of the principal at any given time. Any dollar that you contributed can be removed at any time, without penalty or taxes! The penalties & taxes come in when you try to withdraw gains from the account before the age of 60 — I believe those gains are counted as income on your tax return, and you are subject to a 10% fee. This isn’t as big of a deal as you may think.. If you have an emergency in the first few years and need to take out cash, you likely won’t have much gains anyway — and the opportunity cost of removing these funds would be exceptionally high. If you had bought AAPL in 2001 at around $8 and sold it at $700, thus striking it rich, you would have several options… You could withdraw the funds early and paying the taxes and 10% fee, withdraw some of the money to purchase a house (among several other legitimate un-penalized withdrawals), or just stop saving for retirement entirely and let the balance compound.

Basically, you can contribute up to $5,500 in the Roth IRA this year and be able to withdraw that principal on demand at any time, tax and penalty free. This, along with the preferred tax treatment, makes the Roth IRA a great place to start for a burgeoning investor.

Other Benefits

Another great benefit of the Roth IRA is that there is no Required Minimum Distribution during your lifetime – meaning that you are not required to withdraw money each year after the age of 70 (like you are with a 401k plan). When you die, the account can be assigned to a beneficiary (who pays a reduced estate tax on the amount) and has a choice of taking distributions their whole life This makes the account invaluable as an estate-building tool, especially for higher-income households.

For example, assume that the Roth IRA were to continue to raise it’s contribution limit of $5,000 at an inflation rate of 3.5% indefinitely. At start of each year, you max out the contribution and invest in a variety of stocks, earning a long-term return of 10% (6.5% after inflation). Continue doing this from age 20 to age 85, and the ending account balance would be $4,349,950 in today’s dollars (or, get this, $40,701,187 nominally). The beneficiary would be required to distribute the account balance divided by their remaining life expectancy. For example, if you gifted this account to a 30 year old, he would be required to take a minimum distribution of $83,014.33 in today’s dollars. Not a bad haul! Even better, you could set up a trust fund, naming your great-grandchildren as the beneficiaries. Over the course of the life of your oldest grandchild, RMD would be taken from the account to be placed into the trust to compound and be dispersed. For example, if you did this with a 1 year old child, and took the RMD, and placed it in a trust fund earning 8% until they were 30, you would have about $7.1 million 2013 dollars in the trust, and $17.9 million 2013 in the Roth to keep distributing to the trust.

Not to get too much into this, but if you had been distributing 4% from the trust while doing this process starting at age 18 and going until the oldest beneficiary was 60, you would have a combined $123 million today’s dollars in the trust and Roth, and have distributed over $37.6 million to your inheritors.

The point being that the Roth can theoretically be used to compound your wealth, while keeping the money in your pocket, rather than Uncle Sam’s.

What are the requirements?

Well, first off there are income limits dictating who can contribute to a Roth. Next, you can only contribute a maximum of $5,500 this year. Also, you must have had earned income during the year (which you paid taxes on), and you can’t contribute more than this number.

How do I get one?

It is really easy to open one of these at a discount broker like Charles Schwab, TD Ameritrade, or Vanguard. Just go to their websites, look for the Roth IRA and open an account. I highly, highly recommend college students opening an account, since they have the most time to leverage the astounding benefits of compounding.. Usually these places have minimum contributions (around $500 or so), so make sure to have enough cash on hand before you contribute. Since it is not a particularly nice process to withdraw from the Roth, try not to deposit so much that you will need to be depositing & withdrawing all year.


Successful Conversion!

Alright, so I was successfully able to convert this site to WordPress. In the upcoming weeks I will be transitioning the old content here, and adding new content. So, let me lay out a little of what this site is going to be about. First, there is going to be all sorts of nice pages detailing some of the Computer Science projects that I have worked on.

Secondly I will be discussing investing and finance, as a sort of way to organize and collect my thoughts and gained knowledge. As an investor, I will tend to try to take a long-term fundamentals-driven value investing approach. Therefore, we will be discussing businesses on this site – rather than just which stocks are “hot”. This kind of content will likely be similar to – an investing blog that I really enjoy. Of course, in order to get the capital to start investing, I’ll post updates on the process of earning and responsibly allocating capital. Hopefully these posts will help me develop my frugality muscle (this is another great blog that I’ll also try to emulate). We will discuss what is going in global economics, politics, and government. Heck, I may even critique an news article..

Thirdly, and this closely ties in with the other topics, I’ll discuss some of my philosophical views, explore historical questions & muse over future problems and the fate of the world. Likely, these posts will deal with the latest technologies, as they are the ones that have historically tended to stress our moral and social structures. And I am a software developer, so there will be some posts about the software lifecycle, programming, and the life of a coder.

I hope you stick around as I keep writing posts over the course of the semester. 


AP Credits Are The Best Scholarship Around

In high school I was lucky enough to already know what I wanted to major in at university, and I was pretty sure about what university I would end up going to. I was also fortunate enough to go to a school with a lot of AP Credit, which made this much easier, but it is still very possible at many high schools… Of course, as the future-obsessed, Judging-type I am, I entirely planned out my high school schedule to maximize the amount of credit I could earn towards my college degree. My thought was: If I am going to have to take these classes already, why the hell should I take them again? Just so happens that I was able to bring in 64 degree-applicable credit hours (out of 128 needed for my degree). This has given me leeway to take interesting classes, a lightened load, double minors, and still graduate a year early. But that is not the interesting part of AP classes; today we are going to look at the economic advantages of AP credit for an average student..


Yes, you have to do a bit more work than the person next to you. But in today’s world you have to work harder and better than the person next to you in order to succeed. You won’t be rich if you don’t work hard. Period. Unless you win the lotto, but then you wouldn’t be reading this blog. Say you or your child or cousin is a high school Junior that chooses to work a bit harder than everyone else and signs up for the following AP classes:

Junior Year

  • English Language and Composition AP (>=3)
  • United States History AP (>=4)
  • Psychology AP (>=4)

Senior Year

  • English Literature and Composition AP (>=4)
  • Physics B AP (or Biology or Chemistry) (>=3)
  • Calculus AB AP (>=3)
  • Macroeconomics AP (>=4)
  • United States Government AP (>=3)

Each year you paid attention in class, studied, did test preparation, bought an AP Study book (which you read and practiced with), and took the AP tests you needed in May. You tried hard, got a little bit lucky on the grading, and made the minimum required scores for, say, the University of Texas to take your credit (those minimums are in the parenthesis).

Had you successfully followed this regimen, you would graduate high school with 32 hours at the University. Since these hours should all be applicable to (most) degrees (which is why you pick them based on your planned degree, duh), you would basically have just saved yourself a year of college.

No Tuition Paid Senior Year

This means you would have saved yourself 1x year of tuition, books, late-night energy drinks, and beer.. Since you probably borrowed against student loans to pay for this, the interest that you would have paid is also gone. So the $20,000 of expenses you would have incurred, which would have cost you about $200/month on a 3%, 10-year loan. So now instead of going to pay interest, your money gets to compound. Each month you take the $200 you would have spent on college loans and put it into a Roth IRA.

Extra Year Working

With the extra time you have in college you could work a part-time job (covering expenses), or you could graduate early. Say you had chosen to graduate a year early and start working. Let’s pretend you make the median household income with your degree ($54,000), and you lead a Mustachian lifestyle, spending only $20,000 that year. After taxes, you would be able to save around $25,000 that year, which you contributed to your 401k and Roth IRA.


If you could earn a 6.5% real rate of return with both the money you would have paid to student loans and the extra money you made from graduating early, you would have $460,000 in real dollars sitting in the retirement accounts by the age of 60. You could reasonably spend $18,405/year (4%) using this money from age 60 on.

The small amount of work you put in when you were 16 paid you off nearly a half a million real dollars by the time you were 60. Using the extra cash saved from not paying tuition and being able to work 1 year earlier, you were able to generate enough income in retirement to keep you out of absolute poverty. Most people don’t think about the massive opportunity costs of their decisions when they are young, and the ones who do are usually handsomely rewarded.


Only Save For Retirement For 6 Years

If you are planning on retiring much earlier than the typical person, who retires at around 60-70 years old, one thing that you have to do is plan exactly how you will access my money in retirement. My plan is to split up savings into two “buckets” – Old Money and Young Money. The idea is that my retirement accounts will be funded exactly to the point where they will provide me with enough traditional retirement income. In order to take advantage of the time value of money, these contributions only occur at the absolute start of my career, between 21-27 years of age.

Try to max out the 401k and Roth IRA when you start working. Right now the IRA contribution limit it $5,500 and the 401k limit is $17,500+Match (say, $3,000). Maxing out both of these accounts would come to a total contribution of $26,000.

Assuming 3.5% inflation, and a 6.5% after-inflation rate of return (this is the 100 year annualized market return and inflation value), after 6 years of contributions I should have approximately $227,000 in the accounts ($180,000 after inflation). Assuming that I stop making any contributions at age 27, and the accounts can grow at the same rate of return until I reach traditional retirement at age 60, the accounts would be worth nearly $5 million nominally. In today’s dollars, it would be worth nearly $1,400,000 and it would produce about $56,000 in annual income before tax.

That seems like a great deal doesn’t it? All you would have to do is max out the accounts for just 6 years, allow compounding to do the rest, and be able to enjoy the median household income every year once you reach 60.

In practice, however, the opportunity cost of taking money out of these tax advantaged accounts is relatively high, and you might be inclined to not take withdrawals until age 65 or even later. In our scenario, those extra 5 years of compounding could create nearly $500,000 in real extra wealth, which would allow someone to spend $75,000 annually in traditional retirement.

The Other Way Around

In reality, what one should do is work backwards using some initial targets in order to determine what their savings level needs to be. For example, if your goal was to have $100,000 in annual passive income from your retirement accounts by the age of 65, you would do the following calculations:

$100,000 in Annual Passive Income

/ 4% = $2,500,000 in today’s $ needed

* (1.035^45) = $11,800,000 in 2058 dollars needed (inflation)

/ (1.1^35) = $420,000 needed to be invested by age 30

pmt(10%, 10, 0, $420,000) = $26,000 needs to be saved annually for 10 years.