A Summer in San Francisco

ATL -> SFO

neil sethi

--

I never thought I’d end up in San Francisco, but through an interesting series of events, I was lucky to land an awesome internship in the Bay Area, where I met a lot of amazing people, both old and new.

I’ve decided to reflect back broadly on what I learned about life, people, and programming principles. Here’s what I found:

1. Don’t be afraid to ask for things.

There were a number of times I found myself stumped in the face of a coding roadblock. At first, I was too worried about seeming incompetent to ask questions. In nearly any organization, it’s okay to ask for help. Even when you’re on bottom of the ladder, it’s not worth assuming that you are going to receive flak for asking a question. There may be cases in which the solution to a roadblock is relatively simple, but we’re all human. Most environments will recognize that and not hold things against you.

In my experience, I found that asking various people in the high-growth organization I was working in gave me a good excuse to get to know more people there. In some cases, I was even able to form wonderful friendships or find mentorship in such individuals, which can yield invaluable benefits for anyone.

2. Seek balance.

I’m not the type of programmer who likes to take breaks. I’ve typically had the habit of working on a problem until I start making mistakes or I burn out — it’s fairly avoidable though. In general, the problems I had tackled prior to this summer had been one-shot puzzles or programs with fairly divisible components.

Once, I was tasked with a larger project that contained various specifications that were not easily achievable in a short amount of time, I had to learn to find balance in both my day and my approach to problem solving. Part of this was taking time to reacquaint myself with the environment — taking a “true five” minutes to talk with someone about their weekend, or playing a game of foosball.

The other (and what I found more useful) approach was to write (a little bit). A bit of reflection or musing on the larger purpose of the project I was tasked with was something I found to be refreshing and motivating.

Outside of taking breaks, achieving balance also requires a decent degree of discipline. On one hand, it means more clearly separating work and home life. Some people are able to handle working all the time in between their “domestic responsibilities” decently well. However, as a young professional with a smaller amount of such “responsibilities” I found it much tougher to stop working. At some point, I realized that coming home only to do more work was creating a certain level of stress that made it tougher for me to fall asleep. Shifting to a more balanced lifestyle meant devoting some of my time to relaxation when I would come home for work, as well as exercising.

I can only speak to the results these changes had on me, and I can say that the quality of my sleep (which I evaluated through how tired I felt following a given night) improved. My need for a caffeine boost in the morning diminished appreciably, and I felt like I had a better attitude towards the progress I was making on my project. I found that deliberate efforts to balance my life helped me find a happy medium between satisfaction with my current progress and motivation to try harder the next day.

In the future, I hope to collect some data on these adjustments in my life. I will inevitably encounter some changes in my life that cause my daily schedule to go out of whack, so keeping track of the before and after might be helpful!

3. However hard you think you are working is irrelevant. Work smarter.

This point was flushed out to me by different people several times during the summer. It’s also a commonly stressed point in leadership psychology. It could be true in the context of a small startup having the audacity to tackle a big problem that some large competitor was already trying to solve (think iCloud and Dropbox). It could also be true in the context of competitive environments in college — there will inevitably be people (or organizations) that could be working harder and be putting in more hours than yours, but that doesn’t mean you’ve already lost! At some point, making intelligent choices about the future and working SMARTER can make the bigger difference.

The challenge is figuring out the most intelligent approach and sticking with it. Embracing a certain degree of uncertainty and having faith in one’s ability to iterate can make a world of difference.

These concepts appear often in the context of setting high-level mission statements, but I think they are just as relevant (and more immediately helpful) with respect to personal goal setting.

I can only speak from the somewhat limited perspective of a college student, but embracing patience is incredibly useful. We all have goals — some that are ridiculous, some easily achievable, and some in between — but progress is often piecemeal. I found this to be true at my internship, where there were some limitations to how much I could accomplish earlier on due to a lack of knowledge or sheer exhaustion, but also to be true during cycles of seemingly meaningless routine during the school year.

While in the moment, it’s often easier to be short sighted (read: myopia) and difficult to connect routine tasks to a larger goal, they typically do matter a ton. But before it starts seeming like I’m pushing hard on one perspective, studies show that too much farsightedness isn’t all that great either. Remember, balance!

Phrased differently, what one does on a day-to-day basis matters more than any episodic 6-hour coding spree. Like adopting a diet plan, learning a new language, building Rome, or generally any major change can’t happen all in one day.

4. Having values involves trade offs.

Zuck famously said that one of Facebook’s values is “move fast and break things“. While I don’t think he meant to imply it’s good to break things, I do think it expresses an active choice of fast iteration and innovation over perfection. It is a philosophical choice by an organisation about the daily process.

Unlike the common view of value statements expressed as “be honest” or “don’t be an asshole”, I’ve gotten the impression that the value statement is not objectively right; it involves trade-offs. In this case, Facebook might contrast with a company that seeks to write perfectly designed, beautiful, flawless code with the hope of never having to iterate over it in the future. Okay, maybe that’s a bit extreme, but you get the idea.

Both philosophies are valid for different people. Things like “be honest” to me, both personally and organizationally, seem less like value statements and more like “things you should always do”.

Overall, I think I learned quite a lot the past few months — both in the context of programming and the bigger picture.

--

--

neil sethi

product @Dropbox, ex-product engineering @HubLogix and cs/english alum @EmoryUniversity