2018 (video)

So I meant to post this video once 2019 rolled in, but let me tell you.. the app that I used to compile the video really had a hard time deciding if my phone had enough space available. So that was an obstacle. And then.. between traveling and work, I totally dropped the ball on this. Anyways, it's here now, edited and music-ified, and I feel really grateful when I watch this video and reflect:

Last year was a big year for me. It was a year of a lot of meaningful exploration.

I “went back to school” to start a Computer Science club with some amazing people. I learned about economics, politics, distributed systems, and making smart investments while jumping down the blockchain rabbit hole. I traveled through 6 countries (one of which I’ve visited 6 times now, and it’s not the USA or China). I put myself through over 50 job interviews, ran a 200-mile relay with 11 friends, and caught a 40-pound lingcod by the Farallon Islands. It was a fun time.

I think I’ve always been a great explorer, because I enjoy putting myself out there in uncomfortable situations and seeing how I can make the best of it. But I honestly think that I wouldn’t be where I am today without all the amazing people who have stuck around to love me, challenge me, and enjoy life with me. Many of those people made it into this 1-second daily compilation, but there are also a lot who aren’t featured. A warm thank you to all of you.

2019 is already a fourth of its way out the door, but I’ve been working on a new theme for myself. It’s not enough to be an explorer. I need to be a builder. I have time and energy, and I need to see what kinds of useful things I can create for the people I love. I’m blessed to have the opportunities that I have today, and I hope that I can make the most out of them.

“The planet is dying. The sun is exploding. The universe is cooling. Nothing is going to matter. The further back you pull the more that truth will endure. But when you zoom in on Earth, when you zoom in on a family, when you zoom into a human brain, and a childhood and human experience, you see that all these things matter. We have this fleeting chance to participate in an illusion called I love my girlfriend and I love my dog. How is that not better?” — Dan Harmon

how to do life

I think one way to think about my life is that there are two parts to me.

The “animal” side and the “conscious” side, for lack of better terminology.

The “animal” side is instinctual. It feels things, it gets angry, it cries, it enjoys a funny movie on a chill Friday evening with friends. It needs to eat, to have sex, to feel loved. It’s the more useful side, from a biological perspective. The animal side keeps me alive and responsive.

The “conscious” side understands things. It breaks the world up into building blocks so that I can manipulate everything around me. It adds 1+1 to get 2. It remembers the food I ate a couple nights ago that caused me to spend an hour on the toilet in pain, and then reminds me to not eat it again, even though I’m looking at it now and the animal side of me is telling me that I looooove fried chicken. The “conscious” side can reflect on itself to find mistakes, and then to improve on them.

For me, the “animal” side is the side that inspires me to meet people, go running, experience new things, write raps, make love. The "conscious" side plots out how I can get promoted, figures out software engineering puzzles daily, and organizes my time so that I can get things done.

And the key to my life is that both parts go hand in hand. Whenever I unite these two parts of me, I get the best results. Planning a party for 200 people, writing blog posts that resonate with my audiences and inspire them to start new careers, compromising and building a deeply meaningful relationship with Catherine… the list goes on.

It's when I do what feels right and then use my brain to scale it, that works the best.

8 months of Software Engineering in San Francisco


Comp Features team showing off Samara holiday swag. (Me, Zach, Ian, Casey)

8 months of Software Engineering in San Francisco

For all of you who read about my first month at my new job, here’s a surprise: I’ve just passed my 8-month mark! I wanted to put together a reflection for myself and also update those who are curious what it’s been like to live and work in San Francisco as a software engineer at a growth-stage tech company. Work has been a huge grind, but at the end of the day, life is good. I’m grateful because I’ve been able to balance my time so I am maximizing my learning and my contributions to my team, while still spending time with friends and family.

So what have I been up to? Building things with Samsara!

What is Samsara?

We are a company building a platform for connected sensors. Think Alexa or Google Home, except instead of a little box sitting next to my bed that I can use to turn the lights on with my voice, it’s hundreds of thousands of similarly-sized boxes plugged into vehicles and factory production lines to help the world run more smoothly. From GPS, accelerometer, and thermometer to computer vision, microphones, infrared, and vibration sensors — you name it. We pack these sensors into portable boxes and then build a data platform on top. As a result, our customers can measure and record real-world data and even issue commands so that whatever they’ve been creating or moving around the world, they can do it faster, cheaper, and just better all-around.

This is one of our “boxes” — a VG34, short for vehicle gateway. It records GPS, engine diagnostics, accelerometer, and other data, and is about the same size as a large cellphone. It takes 2 minutes to set up in basically any vehicle.

Way cooler than Alexa. Although to be fair — Alexa helps me play jazz playlists at dinner parties and that’s something our Samsara devices don’t do… yet…

My team

Ever since I started last July, I’ve been working on an awesome team: Compliance.

As a whole, Compliance at Samsara is responsible for building tools to help our fleet customers meet government regulations, particularly the ELD Mandate. This mandate was set up to help keep drivers safe on the road, and basically defines how long drivers can work for and under what situations certain exceptions can be made. Companies that fail to stay compliant may be fined or lose their right to operate.

At Samsara, we split our compliance work into two teams. Compliance Foundations builds systems to record compliance-related sensor data in a scalable and accurate way. Compliance Features (the team I’m on) works on features to retrieve and perform calculations on the stored data so that our customers can easily prove that they’re compliant.

Samsara’s Electronic Logging Device (ELD) Compliance Solution

We also have other product-engineering groups as well as infrastructure teams. I work a lot with other teams in the Core Fleet vertical, and I work a bit with the infrastructure teams, but it’s rare for me to work with engineers from the other product-engineering verticals. So far, this engineering org structure has worked well for us because we can keep our teams small and focused.

Everyone on my team sits close to each other so it’s easy to have impromptu meetings when we need to gain some context on a project that we overlap on:

Our all-knowing Compliance Features PM, Jonté, clarifying some customer needs for an upcoming project.

But we also know how to relax and have fun when we need a break:

We hiked to Alamere Falls during a team outing. (Ian was napping on a log.)

Customer Focus

In terms of the work I do, if you’re not a truck driver, a fleet manager, or a FMCSA regulator, it might be hard to empathize with my team’s products from the user’s perspective. That’s how I felt when I started. But one of the awesome things I love about Samsara is that it’s really easy to get some face time with actual customers. We have a great design team and product operations team that organizes visits to actual truck yards so that we can meet with the owners of these companies and listen to their feedback. I took advantage of one of these opportunities to visit a customer up in Stockton recently, and I was able to see how valuable my work was to them.

’Twas a long drive up to Stockton. Sujay was the other engineer who came on the trip. (Not pictured: Haley, Corbin, Jenn)
Two refrigerated truck units with Samsara’s AG24s and EM21 temperature sensors installed.

For this customer visit, I learned a lot by just asking fleet managers how they operate throughout the day, and how they leverage Samsara’s platform to perform important tasks. We validated a number of pain points that we had theories about, and we even solved some of their problems on the spot by teaching them about new features. Overall, a very fun and valuable experience.

Interesting Engineering Work

Engineering-wise, the compliance team builds and maintains features surrounding some interesting data structures and architecture.

For example, there’s a state-machine system we call the “Rules Engine” that we use to model all the rules that the government has set for Electronic Logging Device (ELD) users, so that we can help drivers stay compliant. Zach and Casey have continuously iterated on the Rules Engine to provide violation information to our customers across hundreds of thousands of devices. The Compliance Foundations team spun up a new micro service to handle events recorded by the ELD and the Features team has added new algorithms and features to that service over time. Ian has worked on many front-end features and re-designs in order to make our UI as intuitive and painless as possible. I’ve also built out some new API endpoints for exporting compliance data, ultimately contributing to Samsara’s developer ecosystem.

All of these projects are built using our tech stack of Golang on the backend and Typescript on the frontend. We deploy new features based on a feature-flagged approach and track metrics on Datadog and AWS Cloudwatch.

Lessons Learned

Giving Estimates

Over the past few months, one of the best lessons I’ve learned about being a good software engineer is on how to give better estimates. Starting the job, I would give really rough estimates that would often be too aggressive because 1) I didn’t scope out the relevant code sites enough, and 2) I made assumptions on how many hours per week I’d actually get to code and think about coding.

To address better scoping as an organization, the engineering team has recently started to adopt a more structured Request for Comments (RFC) implementation spec document. We’d all use this doc when starting a new project so that different stakeholders could provide design input in the early stages of the project.

We like to use Dropbox Paper for most of our implementation specification documents.

In terms of time-bounding my actual rate of work, I’ve started using “engineering weeks”, as defined by 2–3 days per week of actual coding time. Tuesdays are full of team and product-related meetings, while Mondays and Fridays are often occupied with candidate interviews and other interruptions. We try to keep Wednesdays and Thursdays as no-meeting days, but inevitably some extra engagements get sprinkled in throughout the week, and so we arrive at the 2–3 days of actual coding work per week. At first when Zach, my engineering team lead, taught me to estimate this way, it sounded a little strange that only about half of my week was spent on actual coding, but after experiencing the true flow of a project, it started to make a lot of sense. The meeting time that we don’t count as “coding” time contributes a lot to the success of a project by making sure that it’s designed well and that we’re not doing throwaway work.

The Power of Clean, Reusable Code

One of the favorite things I worked on was creating an internal library in Typescript that provides a variety of tested functions to make it easy to work with time range data structures. We emphasize commenting and documenting our code, so each of these library functions has comments to describe how to properly invoke each function. I had to take a couple days worth of detour from my project at the time to create this library, but it’s since saved a good amount of time for other people on the team, which is awesome. I’m looking forward to creating more reusable and useful tools like this for my team to help us scale!

Share Work Interests With Your Manager

First of all, you have to think about and formulate your interests so that you even have something to share, but once you do, talking about them with your manager will help you progress in your career. I’m thankful for the great managers at Samsara who are helping keep the team focused so that we can deliver quickly on key features, but also allowing each individual the opportunity to work on things that interest them.

Caught my awesome manager Derrek off-guard with this candid pic.

For example, after working on an API project, I realized I really wanted to work more on the future of Samsara’s developer ecosystem. My manager, Derrek, talked through ideas with me and has been a great sounding board for identifying high-impact work that I can take on in this direction.


More pics

All of these pictures were taken during social gatherings at Samsara. Some of them were fun networking events, others were self-organized club hang outs, and the last picture was taken during one of our quarterly hackathons.

Samsara gingerbread house competition.
Casey versus Zach in 3D tic tac toe.
Board game social night!
Samsara finishes the startup escape room.
Advith’s experimental sports club enjoying some good old-fashioned dodgeball.
Jigsaw puzzles to keep us occupied while we wait for deploys.
Our first-ever Super Smash Bros Ultimate Tournament.
Sushi-making networking event, hosted in our cafeteria :)
The 3:00pm daily Plank club.
The engineering team enjoying American Truck Simulator in our new training center.

Taking a step back

  • Samsara is adding 200,000 new devices to the platform every year.
  • We now have 5,000+ customers worldwide.
  • We’re collecting 100 billion sensor data points every year.
  • The company’s valuation has tripled to $3.6 billion since I’ve joined.
  • We’re expanding our offices in San Jose, Atlanta, and the UK.

What’s next?

  • I’ll be moving to Atlanta for a few months to help hire and onboard new engineers!
  • The compliance features team is growing! (Hi Nathan.)
  • I’m helping lay groundwork to help our new app marketplace flourish in the future :)

Last but not least, shoutout to my roommates, my homies, and my amazing girlfriend for keeping life outside of work fun, healthy, and beautiful.

Homemade dumplings for Chinese New Year!

******************************************************************

If you’re looking for a software engineering job (and even if you’re not interested in Samsara specifically), hit me up because I’d love to help you with studying tips, interviewing tips, and networking!

Feel free to connect with me on LinkedIn.

*****************************************************************

Special thanks Advith, Alex, Zach, Casey, Derrek, Ryan, Priscilla, Sarah, Sujay, and Elisha for helping with edits!


Assets and Liabilities

There's some quote out there that says the things you do in your free time are the things that will either set you free or enslave you.

This is a powerful idea. For me, in order to live a long and meaningful life, I need to manage my resources well. Resources include abstract things like time and energy, but may also include more concrete things like money, collectible trading cards, and bananas.

Resources are managed by balancing two things:

1) Assets - things that help you gain more resources
2) Liabilities - things that cost you to lose resources

Assets help me earn more resources, i.e. financial investments, and rental properties. Liabilities cause me to lose resources, i.e. mortgage payments and unhealthy relationships.

So what are the biggest assets and liabilities in my life?

Time is my most valuable asset. With enough time, I can do anything. Absorb knowledge, assemble teams, enjoy life, reproduce, leave a legacy. In fact, I can actually turn this asset into other assets. Life experience, career capital, valuable relationships.

On the flip side, wasting time is my biggest liability. Watching TV, browsing Reddit, hesitating. Doing things I don't want to do, just because they're easier to do than the things I actually want to do. Procrastinating.

If you want people to like you...

You just have to do two things:

1) Be the best human being you can possibly be, and
2) express genuine interest in other people.

I've seen my dad putting these two points into action over the years, especially at dinner parties or on family vacations. Take tonight for example. We were strolling through some night market streets, and my dad goes up every other booth -- with no intention of buying anything -- and starts asking about the products, the seller's background, and other random things. Soon, he's laughing or teasing everyone around the booth, and then we either have a discount on the product or a smile on our faces. It's a win-win.

Self-reflection

Self-reflection is an important part of my normal routine. Everyone has their own medium of reflection, and for me it's journaling.

I want to share an overview of my year:

2018 spanned across 200 college-ruled pages. Flipping through these pages, I can see that I've traveled, experienced, and achieved a bit more than I would've expected at the beginning of the year -- mostly because I hadn't set any direction for myself that early on.

Travels

  • Cancun
  • Berkeley, CA
  • Japan
  • San Francisco, CA
  • Italy, France
  • Los Angeles, CA
  • China

Experiences

Achievements

I want to highlight: This year wouldn't have been nearly as awesome as it was without some key people influencing my life.

My brother, Alvin, and my parents, have supplied me with infinite amounts of love. My old bosses/mentors, Bhavin, Melanie, and Zack, all taught me more about what it's like to grow up and do useful work in the real world. Codeology, full of youthful, smart, and motivated students inspiring me to be a better role model. Matt, my bromigo, never failing to remind me about staying true to myself and having a good time in life. Steven and Jason, The Hodlers. Jade and Andre both independently called me out for being a bad friend to them, which really helped me reflect on what kind of person I've been shaping myself into. Asumi with the clutch mock interview that landed me 5 jobs. The list goes on and on... And of course, I've saved the best for last. Catherine, has been my dearest, my biggest supporter, and my partner-in-crime for the past 3 years. Without her, I wouldn't have been able to keep my head screwed on straight. She does frustrate me at times, but those times are rare, and ultimately, she inspires me to be a better person than I could've ever been on my own.

Overall, this year was full of exploration and quality family time. I think the next few years will be full of hard-work and career progression. One thing I've learned is that I love surrounding myself with amazing people, and I love to help spread that love.

I'm looking forward to continuing my explorations, consolidating all my learnings, and finding a satisfying long-term life path.