Real Artists Ship

The title of this comes from a story about Steve Jobs and the original Macintosh team. Highly suggested reading if you haven’t heard about it already. Here’s the link to the story on And here’s the link to Walter Isaacson’s full biography of Steve Jobs, which is absolutely fabulous.

I was reminded of this while listening to the latest episode of Akimbo. Seth recommends that one blog every day to get in the habit of shipping something, of showing up and doing the work of having something to say.

For me, shipping has been one of my greatest weaknesses, perhaps THE greatest. “Paralysis by analysis” is the perfect term for it. I get so caught up in making sure I do the absolute best thing that I often end up doing nothing at all.

This summer, I intend to actively combat that. One of the strategies will be to ship a blog post every day. I’ll try to make it useful, so not a “today, I did xyz…”-type of post. Along the same lines of Seth’s blog, though obviously not of the same quality. Subject matter will be extremely scattered, whatever I’m thinking of each day.

Lessons from Workday CEO Aneel Bhusri

While at Workday this summer, I had the pleasure of attending a fireside chat featuring the company’s co-founder and CEO, Aneel Bhusri. Below are my annotated notes.

  • An MBA is not that valuable unless it is from a big name school where the network makes it worthwhile.
  • Mentors are everything.
  • No one has any idea how the markets will play out.
  • For choosing a place to work, culture is more important than the product.
  • Social media has had both good and bad impact, Workday makes businesses better and people more productive.
  • [Aneel] would work at Amazon, Jeff Bezos is “brilliant”.
  • Always ask: how can you make society better?
  • Workday has 30% of Fortune 500, Oracle/SAP 7%, rest undecided
  • Questions matter: best to ask great questions and then shut up and listen.
  • Questions to ask when choosing a first job:
    • Where are the best mentors?
    • What size company do I work best in? What is my risk tolerance?
    • What do they do that is defensible?
    • Do I like their tech stack?
  • Startups/SV are in a bubble now, super overfunded.
  • Workday moving from SaaS -> PaaS -> DaaS a la Amazon and Salesforce
    • Want startups to be able to form in the Workday ecosystem
    • $1B revenue from platform predicted (timeframe?)
  • Take care of your customers and employees: “Best place to work” correlates with stock price.
  • Your best salespeople are your existing clients.
  • Great employees are the lead domino.
    • Leads to taking care of customers and building a great product
  • Employees join companies and leave managers.
  • Workday’s moat: tying together the plan, execute, analyze cycle into one solution.
  • AI and ML are just tools, you need to focus on the problem first.
  • Best use of ML right now still has humans in the loop for decision making.
  • Better writer equals better communicator equals better leader/manager
    • Workday adopted Amazon’s practice of writing reports for meetings.
  • Founder led companies are generally more innovative than professional-CEO led companies.
  • Recruiting is always the hardest part.
  • Need to stay ahead of technology disruptions (how?)
  • On being a great leader:
    • Optimism
    • Work within your own personal leadership style
    • Learn to manage different types of people (salespeople vs engineers)
  • Learn as much as you can from great mentors.
  • Need to define and incentivize your core values if you want people to follow them
  • The hardest thing is letting people go who are talented, but don’t fit the core values.

I’m 20

Inspired by Scott H Young‘s series of posts on his birthday (latest one here), I’m going to write an update on what has happened in my life in the last year. Twenty years old seems to be as good a starting point as any, and it should be interesting to read these later to see how my life and views have changed.

For now, I’ll follow the same format as Scott: I’ll go over what has happened in my life this last year, plans for the future, and how my views on life have changed.

My Life Last Year

In one word: humbling. And if I could add another: rewarding.

In the past year, I failed two classes, dropped many more, failed at a side project, left another unfinished, had the resign from a solid opportunity due to burnout, and largely failed in my role as CEO of the Inventor’s Guild.

But. Also in the past year, I started training jiu-jitsu, which led to gains in my health and fitness, obtained a position at a Big-4 company, made leaps of progress in my personal life, and perhaps most importantly, become a better person.

I am not as good as I think I am. But I am getting better.

My Plans for Next Year

While I think that a year is too long a time frame to set any useful goals, I do think that having themes or areas of focus can be helpful.

Prioritize and Execute

Be more deliberate about what I am choosing to get done. Don’t say yes to everything that comes my way. Evaluate if it aligns with my existing priorities and if it is something that I can put 100% effort into. Be more realistic about my work capacity and don’t take on too much. Act in order of priority at all times. Do not procrastinate uselessly. Block out time on my calendar to do the most important things and when the time comes, DO THEM.

Think Big, Act Small

Recognize that life is long and that it is better to create behavior change slowly and effectively rather than quickly and ineffectively. Focus on ONE THING at a time until it is a habit. Then and only then move on to something else.

Self Compassion

Be nicer to myself. Improve my self talk. Know that no matter what happens, I am enough. I am not my job, nor my achievements, nor my thoughts or emotions.

Long Term Plans for the Future

I continue to believe that entrepreneurship is the highest leverage activity available for those who want to make a difference. In the past year, I do think that I have become more realistic regarding the difficulty of entrepreneurship and as a result, in the future, need to be more deliberate about developing the skills needed and if an opportunity does come my way, to evaluate if I have the skills to execute.

Starting to train BJJ gave me a purpose for my physical training and nutrition. I will continue to train BJJ as much as I can and as much as possible stick with my training and eating programs.

I want to invest more in both the relationships that I currently have as well as make an effort to creating new relationships, both personal and professional.

Changes in Outlook

This past year I’ve started to recognize the necessity of long term thinking. Having not lived for that long, it is hard to imagine what things will be like in 2x, 3x, even 4x the time that I’ve experienced so far. As I get older, I expect that this will come naturally, but for now I need to consciously include it in my thought processes.

I’ve also put more of an emphasis on people and fostering more and deeper relationships. This was probably due to the amazing people that have entered my life in the past year. Since realizing this, my happiness has increased markedly and I only expect that to continue.

After burning out, I guess it is inevitable to not recognize the importance of mental health. I need to always be wary of how I am feeling about what I am currently doing, where I am going, and my life in general. And to take breaks and vacations when necessary to be able to recover and come back ready to go.

This was a short post that I’m not sure will be of use to anyone else, but it should be interesting to be able to look at it years from now.

Takeaways from Jane Street’s Electronic Trading Challenge

Last weekend, I had the pleasure of attending Jane Street’s Electronic Trading Challenge. Two fellow interns and I formed a team to compete in a simulated market to see whose bot could generate the most money. We took third place in the first part of the competition, but didn’t do so hot in the second part. Unfortunately, there were only prizes for the first place team in the second part, so we didn’t win anything :(. Regardless, I had an awesome time and it was fun to learn about something that I’d previously had very little exposure to.

You can see our code here:

Competition Setup

It’s a 10 hour competition split into two parts: the first being nine hours, running continuously; the second being the last one hour where everyones’ points reset back to zero.

There is a simulated market containing seven securities available to trade: GOOG, AAPL, MSFT, NOKIA, BOND, NOKADR, and XLK. GOOG, AAPL, MSFT, and NOKIA each had fair values that were random and unknown. BOND’s fair value was known to be 100, NOKADR was an ADR of NOKIA, and XLK was an ETF of the four first securities. The price of each security on the market was random around it’s underlying fair value. The ADR and ETF had the same fair value of the sum of it’s underlying securities, but were much less liquid.

For five minutes, you and another bot trade against each other in this simulated market to see who can walk away with the most money.

What We Did

First, we traded BOND whenever the ask was below 100 or the bid was above 100. This gave us some profit to start, but not much. We then moved onto parallel development of three other strategies: ADR pair trading, mean reversion, and fair value prediction.

The NOK* ADR pair had the same underlying value, so when their prices would diverge, we traded both in the direction of the other. Like trading BOND, this was fast and easy to implement, but didn’t give us that much profit.

Mean reversion was the main thing I worked on, but ultimately could not get it to be profitable enough to deploy. This is because the price of the securities was stochastic and therefore not predictable with mean reversion. Unfortunately, I didn’t reflect on this during the competition, so lots of time was wasted implementing and testing this.

Fair value prediction was our main money-maker but was also very finicky. We would use an exponential moving average to try and predict the fair values of the first four securities, then trade them in the direction towards this fair value. There was lots of tuning done with the exact way that we calculated the prediction and the high computation involved led our both to be quite slow.

Because we got such an early start in getting something to work, we jumped to second place and stayed there for the majority of the competition until we were moved to third by the team that would ultimately take first in both the first and second parts. Our performance in the second part was lackluster at best: we finished in the middle of the pack (15/30). I hypothesize that this was because our bot was slower than most and thus couldn’t keep up with the trading speeds of the other final bots. However this doesn’t explain how we did so well in the first part. I attribute this to us getting a large head start on everyone at first and to randomness. Unfortunately, we’ll never know the exact reasons.

What the Best Team Did

One team absolutely dominated everyone else in the second portion of the competition: they scored over one hundred thousand points where the next best team was at thirty thousand with most in the under ten thousand range. Afterwards, I asked them what their strategy was and they graciously shared with me:

Like us, they started with only trading BOND to get something going as quick as possible, then moved onto NOK* ADR pair trading. Our strategies differed in that they didn’t simply average the two symbols, they weighted the more liquid one higher.

They made the majority of their money with a strategy that we tried to implement, but ultimately ran out of time to: ETF arbitrage. Whenever the price of the ETF and the sum of it’s underlying securities would diverge, they would trade the ETF in the direction of the difference. They hedged this trade 5:1 and could control the frequency of trading by adjusting the threshold by which a trade was made.

Three other things that they did that gave them an edge:

  1. Coded everything in C++, which made them faster than whoever they were trading against (almost everyone else used Python or Java).
  2. Limited the orders on the book to only two, canceling any orders that were made based on old information.
  3. Kept track of what was in their portfolio at all times, letting them execute some optimizations based on the holding limits.

Other Takeaways

One thing we did well was to setup our codebase so that everyone could easily develop and test strategies independent of one another. The strategies used on each test or deployment were specified on the command line, so no additional code changes were needed besides adding the file containing the subclass were needed.

What we didn’t do such a good job of was our actual deployment system onto the server. We would push code to git and then pull it on the server. This was perhaps the worst way to do it. It caused lots of unnecessary commits and made us get lazy with our version control, leading to multiple problems later on. In addition, we had separate folders for each person’s working code on the server, but they were not named very distinctly. There were times when someone would accidentally overwrite something in someone else’s folder, causing issues with lost code and developer time due to confusing errors.

Overall, the event was extremely well run and I highly recommend that anyone attend it if they can. I will definitely be applying for Jane Street’s summer internship as I’d like to get a better sense of the work that they do as well as the tech behind it.

Update (2017-09-06): Jane Street rejected me for a summer internship :(.

Speaker Notes from Internapalooza 2017

Last Tuesday, I had the pleasure of being able to attend Internapalooza, a large gathering of interns in the Bay Area. While definitely not a flawless event (see my recommendations at the bottom, it was definitely worth checking out!
It started out with a Q&A with one of my favorite influencers, Naval Ravikant, followed by Dropbox CEO Drew Houston. In the middle were some not-so-great speakers, but there was a strong finish with a Q&A with Andrew Ng. My notes from the three named speakers above are below followed by some of my recommendations for the event.

Speaker Notes

Naval Ravikant:

  • What you work on is more important than how you work on it
  • Don’t let anyone control you, don’t try to live up to anyone else’s expectations, don’t be afraid to change your mind
  • Deep understanding of the basics will take you farther than just the specifics of just one thing
  • Be the hero of your own movie
  • Reframe setbacks as growth opportunities

Drew Houston:

  • Ask for responsibility, take initiative
  • Compound your learning
    • Learn to learn
    • Always find opportunities for learning
    • Ask people to book recommendations, things to learn
    • Take the path that optimizes for learning
    • Throw yourself into the deep end
    • Run towards the discomfort
  • Networking pays off in ways you can’t expect

Andrew Ng:

  • Follow good mentors
  • Be wary of joining a company that won’t tell you your team/boss until after you sign
  • Read papers and try to replicate state of the art results
  • Have a significant project
  • AI is the new electricity, every industry will be changed
  • Healthcare, education most promising/underhyped
  • Transfer learning interesting, GANs, RL as well
  • Most economic value in supervised learning
  • Large companies have advantage for larger verticals (search, etc) bc of larger datasets
  • More specific verticals super viable for startups, can form data accumulation loop
  • Go to San Francisco or Beijing
  • Don’t necessarily need advanced degree, company experience fine as long as you learn, increasingly more based on what you can do
  • Be a lifelong learner


There are three things I would change to improve Internapalooza (besides removing the ‘a’ in the middle of the name).

Make it a premium event. Because it was free, I don’t think most attendees gave the speakers the respect they deserved. If it was paid, there would have been a smaller but much more engaged audience. I felt that there were far too many people there for the space anyways. At times it was hard to even walk around without pushing your way through. In addition, it would have been nice to have food there since the event occurred during dinner time. I understand that this was not possible because of financial reasons, and this is yet another reason to sell paid tickets.

Having company booths there felt like an afterthought. It seemed to have been pitched to us as a career fair-type event, but resumes were not allowed and the experience from booth to booth was very inconsistent. Some were taking names, some were just there to provide information, and some were demoing their tech. It’s as if companies were not told what to expect as well.

The speakers who were sandwiched in between the keynotes seemed not to have prepared very much for it. As a result, their presentations were boring at best. At one point, a speaker started to pitch us his startup as if we were a crowd of VCs. Know your audience!

Although, overall, it was definitely worth going to just for the three speakers I took notes for and I look forward to seeing what it becomes in the future.

Random Observations on San Francisco

I’ve just finished moving into my apartment for the summer in San Francisco where I’m working as an SDE intern for Workday.

Here are a few things I’ve noticed about SF so far:

  • The homeless problem was not exaggerated. It really is bad.
  • Uber is amazing. New York needs to step aside and let capitalism do it’s job.
  • Free same-day and 1-day delivery from Amazon Prime is amazing too.
  • It’s not as warm as I thought. I failed to bring my other pairs of jeans and sweatpants, so I’ll have to
  • Target, Trader Joe’s, Costco, gyms, grocery stores–everything is so close!
  • So much good BJJ: I’ll be training at Ralph Gracie’s academy and 10th Planet’s SF satellite.
  • Everyone honks all the time. Why?
  • Vegan heaven. The two top rated restaurants around me are both vegan and there’s a vegetarian grocery store very close by.

Keep in mind that this is also the first time that I’ve lived in a major city since I’ve had personal agency.

I’m going to try and write a lot more often since it’s the summer now, so stay tuned for more!

Linux Kernel Project Update: End of Semester Wrap-up

It’s been a fun summer to work on this project and I want to thank everyone in Microsoft and RCOS that helped to support us!

My main takeaway is that OS dev is really hard and that after this project, I don’t really want to touch it again. I did, however, learn an incredible amount about a variety of things in the kernel including how drivers work, how devices communicate, SPI interfaces, and much more.

I agree with Max that Arch Linux may have been a poor choice to start with. During the summer, I’ll continue working on this to both add additional functionality and to document the install process on other flavors of Linux.

I’m glad that we were able to work with external contributors (cb22, roadrunner2, and more) to get the keyboard and trackpad working as that really sets the stage for further work. There are still quite a few things left that aren’t working: suspend/resume, speakers, bluetooth, and webcam, with the first being miles more important than the rest.

Here are all of the loops that we have left to close:


  • How do we eliminate the need to recompile the kernel when fiddling with DSDT?
  • What are the side effects of disable LPSS? Can we rework something in LPSS so that it doesn’t hijack the keyboard output?
  • What are the steps to getting patches added to the upstream kernel? What do we need to change to get it accepted?


  • Where in the keyboard drivers is rollover handled? Why is it not correctly dealing with our keyboard?
  • How is keyboard backlighting handled on other laptops in the kernel? Is there any major difference in the hardware (besides SPI) between our keyboard and others?


  • What are those custom op-codes doing? Are they even relevant?
  • Is LPSS being disabled effecting suspend?
  • Could it be that suspend is working, but there is a problem with resume?


  • At what level of the audio stack is communication to the speaker breaking down?

For now, I’ll be focusing on suspend/resume and Max will be working to get our work so far merged upstream.

Again, thank you to everyone who helped us along the way!