Subscribe via Email

Wednesday, October 2, 2019

HELL DAY: 24-hour Navy SEAL Training Challenge

Hey friends! My last post was 10 months ago (yikes!)

A lot has happened since then.

I'm living in LA right now. I got into Harvard Business School, launched a company, backpacked across Africa, and now I'm heading to Canada next week to get my graduation documents.

On one hand, I should have been blogging all of this: all these shiny accomplishments and title changes to boost my ego.

On the other hand, I realized all of these life-changing events introduced significant psychological tension I had to overcome personally. I took a few months to reflect, but I'll begin playing blog catch-up now!

To start, here's an experiment I tried with my friends Mohammed and Fahad back at the end of June.

Mohammed is my personal trainer, who played a tremendous role in helping me recover from chronic back injuries (due to injured ribs & spinal damage circa 10 yrs ago).

Fahad (left), Mohammed (Middle), Ya'boi Kyle Morris (right)
We were working out together one day, talking about how inspirational the Navy SEALs are.

I go around thinking I work hard and that I'm putting in good effort; but I was curious: could I handle even a fraction of what the Navy SEALs can do? What is my breaking point? How will I behave when I'm absolutely exhausted beyond comprehension? Knowing the answer to these things would expose a lot about myself and my leadership style under stress. It is also an effective way to make stronger friendships!

A week later we got up at midnight and started training. For 24 nonstop hours we replicated (to the best of our ability) 1 day of the Hell Week exam that all Navy Seal candidates must complete as part of their training.

We live-streamed all 24 hours of the training! Thus, as opposed to writing about it, I'll just link to the summary video.

Check out the Hell Day results here!

note: I highly Mohammed as a trainer if you want someone whose over-the-top about making sure you reach your goals. You'll see for yourself by watching the video above! Winnipeg is super blessed to have him. Check out his site @

Tuesday, January 1, 2019

A Year in Review: 2018

non-technical: suitable for any reader
Interns from Cruise Automation at Lands End Lookout
This year began with a trip down to Stanford University to present at a symposium. A month later I returned to California to begin an 8-month intern with Cruise Automation on the autonomous planning & maneuvering team in San Francisco.
While at Cruise I followed up with my research work -- traveling to Brisban Australia to present ICRA 2018 work with Carnegie Mellon University, and then Montreal to present robot magic work done a month later.

It may be apparent by now that I'm interested in developing autonomous systems. I'm also fascinated by my own agency. I spend a lot of time in my head conducting inner monologues with myself. This post is an amalgamation of such monologues spanning 2018, along with occasional photos I took at random. My apologies if this post is sporadic and a bit disorganized: welcome to my mind.

Real quick: Check out this sick photo of Alcatraz!
I'm so impressed they built a whole jail modeled after a Tony Hawk Pro Skater 4 Map!

Part 1: Defining My Reward Function

Shoutout to Ethan Min (left), for being an awesome cook.
It's great having a professional chef as a roomate! 
Transitioning from academia to an industry internship was not only exposure to a new physical environment -- I've had this experience before in  Taiwan, Germany, and Korea. This was a different transition. It required changing how I interacted with others outside of academia and solved problems in an industry setting. When required to make rapid changes to my habits and behaviours in order to keep up, I wondered: what defining characteristics of myself would remain? What are my defining characteristics?

Yeah I could define myself on a granular level by my DNA sequence; but this doesn't yield intuitive answers for the key questions I have regarding my agency: namely how I act in the world, and why.
A question of particular interest has been on my mind most of the year: What is my reward system? (i.e., what motivates me?)

Does money motivate me?
summer 2018 SOMA hackhouse crew
i like this picture out of context
Having an industry position would remove many financial burdens. Could my reward system be as simple as to be purely driven by financial gain? 

I quickly found out money didn't motivate me. Thus far in my life, rather than focusing on earning money for more expensive things, I'd find value in whatever I may reach without financial means.
 For example, I remember as a child originally wanting to be a movie director. With a weekly allowance equating to a Slurpee and some Timbits I couldn't plan on paying for prestigious acting and film classes, and so I went about making my own personal videos. This in itself can also be expensive: you need a good camera, good editing equipment, a good social network. Instead of fretting about finances, I decided to become interested in classic 1920's film: minimal sound, poor quality, black-and-white, and most importantly cheap to produce.

Having an income is convenient in that it expands my economic reach, but I don't see it as necessary for my own definition of success.

How about something more abstract...

Does recognition motivate me?
In the eyes of many computer science students, San Francisco is often seen as the lodestar of modern tech. Take a trip to a University campus and you'll find groups of students grinding through interview questions in hopes of landing a Bay Area tech internship. In Waterloo they even have a name for it: the "cali or bust mentality"-- either get a top tech job, or it's game over.
My favourite Slack intern (Alan Li), one of the bajillion UofWaterloo students in the Bay Area, yet still manages to be one of a kind.

I ended up in the Bay Area partially by accident -- after meeting recruiters from Cruise Automation at the IROS 2017 conference and interviewing because autonomous cars are hella cool. Still, I wondered if I possessed a strong subconscious desire to be recognized as successful in my life, and thus upon reaching some definition of success, I would become complacent.
This is partially true. I value being recognized for achievements and reaching my goals. Unfortunately, the person whom I seek recognition from the most -- and the person who is most demanding of me -- is none other than myself. Thus, recognition doesn't motivate me in an extrinsic sense. My energy comes from a deeply ridden fear of letting myself down.

This leads to life often barren of comfort.

Perhaps I am rewarded by comfort?

The company provides many resources that help employees (vacation time, snacks, lunch, dinner).
Why keep working so much if I am able to settle down and just live comfortably?
    This question makes me feel sick to my stomach. I don't see a point of existing if I'm not constantly     striving to reach my full potential.
One of my roomates as the president for Halloween.
Always striving for your full potential!

There were a lot of people in the Bay Area whom I looked up to, all suggesting I sleep more and try to relax as it is healthier for me. My manager mentioned sleeping more would improve my memory retention and productivity. My roommates pointed out that I'm frequently yelling while I sleep (sorry guys) and that stress may be a factor. I was taken aback by such suggestions to go easy on myself -- after all -- I didn't get this far in my life by relaxing.
Regardless, I subscribe to the notion that if I have strong beliefs, these are the beliefs I should question the most. I heeded the advice from my peers and tried to instill work-life balance and to relax.

This stint involved forcing myself to get 8 hours of sleep per night (instead of my usual 4-6), and to allocate time for leisure activities (watching movies) because this is the kind of thing I've heard people do to relax.

During the ~5 weeks I maintained this routine I felt more rested, and had less tension on my mind -- in other words, I felt relaxed.
It felt awful.
It felt as if I had introduced a regression into my behaviour.

I learned a core quality of myself: I don't psychologically let my guard down and relax -- I'm not a chill dude.

This exercise helped me realize a significant problem though: I'd rather collapse under stress than admit I need rest. Even worse, I was in a stalemate with myself as to how to resolve this dilemma.  I was consciously aware of the benefits of sleeping more and relaxing the mind, but likewise, I was also aware of what felt best for me -- the act of always being on alert, steadily progressing forward like a military unit deployed in battle.

Clearly, something had to evolve, as it simply is not rational to maintain a mindset after becoming consciously aware that a more effective and healthy mindset exists. After multiple months of careful iterative reflection, I found a solution I like to call "purposeful leisure".

In my mind, purposeful leisure is the concept of taking relaxation and making it a conscious task in order to improve overall productivity. This means instead of relaxing because you are tired or not feeling up to something, you instead schedule times (or set other criteria) for when to relax and then put more focus into doing so at those times. Thus, leisure became part of my routine, without me feeling like I'm not giving my all at any point in time. In this new framework, failing to relax is the same as giving up on a task: I don't give up.
Piecing together a reward function
At the GooglePlex (Mountain View CA)
Danielle (right, red shirt, walking),
you almost escaped showing up in my blog photos
(keyword: almost).
I have reaffirmed the notion that reward doesn't come to me through monetary means, nor explicit recognition from others. I achieve great satisfaction knowing that at any giving moment, I am giving my absolute all at what I do, even if this puts me far out of my comfort zone. In fact, I have realized that I thrived particularly in scenarios where things get intense and require perseverance.
I also learned an aspect I didn't realize about myself. I seem to thrive in an environment where I possess ownership and control of my surroundings. This isn't ownership in the physical sense; but rather psychological ownership -- the notion that the success of a task or project is directly tied to my own value as a person. In other words, when I psychologically own something, I take on full internal responsibility for the failure and setbacks of that something. When I fully believe that I am an irreplaceable and valuable component of a team I'm on, I operate at my best. The question is how to ensure wherever I go, I may establish this psychological ownership.  

Part 2: Ways to Optimize Life
After multiple years of optimizing functions, designs, code, and just systems in general, I've become very focused on how to apply similar concepts to myself. 
Pre-2018 I had a few ways to get more out of what I do. I would ask myself primarily the following...

How can I get the most out of events in my life?

I vibe well with this quote
"Life is not measured by the number of breaths we take, but by the moments that take our breath away."~Unknown

For example, if on a given Thursday I plan to do both a 5km jog and plan on having chicken wings with friends, I will run in the morning so I'm more hungry and thus can eat more chicken wings in the evening and gain more utility then. This way I've both got a workout in and can eat more in the evening. 
How can I train myself to work for longer?
Pre-2018 I had plenty of ways to get myself working longer. For example, I would get up at 5am and begin my studies at 7am regardless of circumstances. Improving diligence, discipline, and establishing habits can be powerful; but it has limitations -- you only have so much time. I hadn't realized the fact that just putting in more hours doesn't mean they are more efficient. There is ultimately a trade-off point where your maximum output is reached and now doing more hours just spreads out your work over that time -- or even worse, you get even less done.

Following 2018 there are some additional questions that I've been asking myself

How can I do more by doing less?

This question isn't asking how to not work as hard. The answer to that question is simple: just don't do anything in life. I know that option always exists, and so I'm more interested in how to get more done in the future by eliminating less impacting tasks in the present.

In 2017 I had a way of rigidly calculating my day and then working on whatever tasks I had outlined for myself to do, no matter what. This is fine if you have discipline, but sometimes priorities change mid-day, and you have to learn to do whatever is most important at that time. The thing is if you sign up for lots of favours and bloat-work (especially as a student) you may quickly find all of your high priority tasks aren't really that impacting. For example, I may have signed up to help tutor someone in a course, and then afterward volunteer at some event, meanwhile I have an exam the next day I really need to study for. Volunteer work is not objectively bad, but I had the tendency to sign myself up for too much. Since I'm the type of person who won't let others down, these obligations become a top priority and thus obscure my ability to have maximal impact in what I actually need to do (such as studying for an exam). I've been trying to get better at eliminating unimportant favours, debts, and other tasks that pile up fast. This enables me to focus on key impact things. 

My family visiting me in California (taken on the Stanford Campus)! I know it is cliche to say "I wouldn't be here if it weren't for you"; but, seriously. I have trouble managing my own life, yet my mom has managed herself and the three of us.
That's impressive. Thank you all!

What is the best way to use my time, right now?
At any given point in time, there are many things you can do, and it's important to figure out which one you can do with the minimum effort given your current state.
For example, on a given day I may have to read a book for class and finish math homework. Knowing I do math better in the morning, I focus on that in the morning and then focus on the reading later. 

The point is, don't just treat work as work. The amount of time a task takes is largely dependent on:
your energy: How well can you focus on it right now? I don't mean how much do you "feel like it" -- that just requires discipline -- but sometimes you clearly aren't in the right head-space to do something and this may cause a 1-hour task (such as writing an essay) to take 4 hours. 
location: A task such as buying shoes may only take a few minutes if you're near a store, but could take an hour if you are at home and require yourself to walk there first.
available resources: If you have a task involving editing a video, this likely requires your laptop or desktop nearby, and so it isn't even possible to do while you're on a bus. 

As an example, this blog post (part two) was written in one hour during my flight home from San Francisco, typed using my phone. I had scheduled to work on it in the morning; since I'm often best at writing then, but alas at 3pm, the time I'm usually most tired, I got hit with a rush of creativity and I just started summarising my thoughts in a notepad. This definitely took less hours to do than if I tried to force it on myself in the morning. Still, I've gotten all my desired tasks done today. 
At the SF Zoo. "Let's go to the Africa exhibit last. I can see Giraffes in my backyard."
~Nyabuti (roomate, friend, skater, data scientist, probably like 50 other things I don't know about)

The ultimate optimization: Automation

In my opinion, this is the ultimate perfection, the epitome of efficiency is completion but under pure nonhuman delegation.
Prior to 2018 my brain operated on the premise that if I was capable of making something fully automated, I would drop everything I'm doing and automate it. I had been rather obsessed with automating everything I could in my life -- from robots in the AAlab to short startup scripts on my computer -- but until 2018 I had never considered this diagram.

What I didn't take into account was the amount of time spent automating vs the actual time gained from automating such a task. 
For example, I spent about 3 hours during my internship writing a script to automatically open all of my workstation tools so I could begin working. This saved me about 5 minutes of manual labour each time; however since I only had to do this about 20 times during my internship, I've effectively spent 3 hours of work to reduce 20*5 = 100 minutes of labour. This means 80 minutes of time was wasted. 

The point is, look at how much time you'll actually save by automating something before you automate it. More importantly, look at how much time the world will save by you automating something. 

A neat example
Consider the task of walking to your local movie store, picking up a movie, and walking home to watch it let's exclude any time deliberating on which movie to watch).

To be extremely conservative let's assume the following
Time to complete this task: ~30 minutes (walking to/from the store including time at a checkout waiting in line)
People doing this task: ~10 million (assume only 10 million people rent movies)
look look! a robot that can make tea!!! 
Frequency: assume a person rents 2 separate times per year

In one given year, this would mean approximately 30 minutes * 10 million people * 2 movies per year = 600 million minutes are spent yearly on this travel time.

That's over 1141 human years worth of time

If you can build a system that automates this short task of picking up a movie to watch, you've indirectly saved literally hundreds of millions of minutes of time yearly even across just a small population. 
That's why traditional movie vendors like Blockbusters were replaced by companies like Netflix. 

Conclusion for 2018
Visited Carnegie Mellon in November!
RISS alum (2017/2018)
This post seemed like a decoupled jumble between what motivates me and me ranting about automation. This mimics the disparate nature of these topics as I pondered them throughout 2018, until I've realized that they encompass the same thing. 

My passion for artificial intelligence and automation embodies my reward system. In order to automate something, I must take full psychological ownership of the task and the challenges to fully understand its inner workings. By automating a task I'm able to effectively solve the problem and to create value for society. This is what motivates me.

Putting it all together: My core mission
My goal is to build a future where all things that are unsafe, unfulfilling and arduous can -- at the user's discretion -- be handled by an autonomous system. I want to empower humans to find what gives them purpose, and live fulfilling lives in a world demanding their intellect and passion rather than inhumane labour.

This is a complex goal to reach, and it will take my lifetime; however nearly every waking moment in my day is focused on this goal in some respect.
As of 2018 I've been able to more formally summarise what motivates me, and why, thus helping me better understand what I need to do in the future. 

Instead of saying what I will do, I'm going to just do it and reflect later on how it pans out.
Reach out to me if you'd like to help.

Onward to the future! Onward to 2019!

Two of my closest friends from home (Emmett (middle), Keith (right)), waiting for me at the airport!

Friday, December 14, 2018

What I Didn't Learn During University (Lessons from Interning in Silicon Valley)

non-technical: suitable for any reader

When one removes themselves from their comfort zone and settles down in a new environment, suddenly inefficiencies become glaringly apparent. It is kind of like when you spend too much time at a beach on a sunny day-- sure you feel comfortable and that you're at your best -- until you step into a hot shower later and realize through intense pain that you are burnt. 
University for me is the equivalent of a sunny beach, and I had developed sunburn (inefficiencies in some areas I didn’t realize). Entering industry was like stepping into a warm shower which has burned me in some places but ultimately made me more aware of my weak spots.

Let the following anecdote from my internship set the tone.

The time is some day within some month (I think it was like, June?), it is a couple of months into my internship. I've been given the chance to give a brief presentation of my solution for a problem facing the autonomous vehicle system we're building (note that I am on a team that handles maneuver and path planning).
I was hyped. University made me well prepared for this moment. I reached into my back pocket and whipped out 3 years of undergraduate algorithms, architectures, and design principles and composed a 2-page document with an elaborate outline of exactly how we could solve the problem.

The document was pristine, elegant, focused, and one week later it was ready to present.

I booked a meeting room, invited my colleagues, and took a stance at the whiteboard. 
We meet again, whiteboard. Except at this time I am not at your mercy as an interview candidate, but instead, I am presenting my intellectual capacity on your barren slate.
I firmly grasped the nearest EXPOTM  whiteboard marker and took firm stance -- as if I were the last remaining samurai of the Meiji restoration --  wielding my sword. 
I started pitching.
I'd planned to start my talk by outlining the key algorithm we'd use, a system diagram I created, and lastly show it working on a couple of examples.
The problem is I never got that far... 

After a couple of minutes of introducing the algorithms and definitions I'd created for the problem one of my colleagues interjected:
"So, what problem are you solving?"

I stopped where I was, a bit shook

My colleague inquired...
"Ok, walk through what your solution is going to do here."

My colleague sketches out a scenario on the board

I politely exclaimed that "I'm going to get there, I'm just explaining the underlying architecture first and why it will work."

My colleague retorted...
"Prove to me it will work here, please"

If I were a samurai, this would have felt like I was staring down the barrel of a Murata rifle right about now.

I began trying to walk through the example. "You see, since we are using [ALGORITHM] we can leverage the fact that..."

My colleague interrupts again...
"Let's talk about that after, I just want to see exactly what your solution will do here."

absolutely s h o o k

I tried to regain stance, of course he has questions... after all, I haven't finished presenting my ideas, of course! I had to keep my ego down and sell this solution to them. I had to prove that I was a good engineer. 
I tried to dumb down my solution and explain it in high-level terms and began running through the example, quickly realizing what was an engineer's worst nightmare during a presentation.
an edge case. 

My solution didn't work on this example. 

I'm a fool, I told myself. 
Another engineer commented..
"I see where you're going with this, what if we also consider using [alternative approach] instead?"

That was a brilliant idea. 
Why didn't I think of it? 
Speaking of introspective questions, I had a few others at the time: Why was I wasting a room of engineers time with a design that amounted to 2 pages of cryptic jargon? Why did I spend a week writing these hieroglyphics in the first place?

...Why did I get accepted into this job? 

So the situation probably wasn't that brutal (my colleagues at Cruise are really supportive!); but that's how it felt. I felt the burn and realized quickly I was in over my head among highly skilled engineers at a competitive company in one of the most competitive industries centered in the tech hub of the world. It was time to adapt or perish.

My objective in this blog post is to outline some of the things I didn’t realize through University, that are strictly required to do well in Industry and have an impact in the tech world. Conveniently, these things are also beneficial in University, so in the end, I feel I’ve undergone a positive feedback loop.
I’ll run through some of the key things I’ve realized in a countdown of significance.

Simplicity in Communication and Design

Sometimes you’ll cross paths with an executive and have a question. You have to quickly communicate the key question and result. Unlike in a University essay where you are often required to hit certain topics to get marks and some arbitrary minimum word count, or in a blog post (like this one) where I have the leisure to ramble all I want, in industry you have to decide quickly: what is important? What isn’t important?  How do you present your information effectively and concisely to someone else?

Backing up your argument with real-world data.
When explaining yourself, backup key statements you make with an example based on real world data. If you don't, you will be asked to and may be embarrassed to find your secret sauce doesn't make every scenario taste good (i.e., you fail edge cases).
*clears throat*
A weak argument with unsupported claims: This is the huge problem our system faces, and my feature will resolve it!

Even if you know this to be true, it is too broad and comes across as a sales pitch, leaving the listener with more questions/concerns in some cases.

A better argument with supported claims: Based on our recent metrics, the largest % of our issues on the road attribute to this problem, my feature should address this problem in [specific scenario] and so we should invest in implementing this feature.

Both of these arguments have the same objective: to use your idea; but the latter is backed with more data.

In University we are taught to support our arguments rigorously;  however students are also encouraged to make bold statements for the sake of having a compelling narrative in an essay or project proposal. In a research context, of course, you'll have some sort of empirical or theoretical results to back up your work; but this is a longer and more elaborate process and you still often need to have a compelling research objective if you wish to maximize funding.  My point is, making some big claims can be valuable in getting someone's attention; but often during a casual discussion with another engineer, it is more useful to have smaller claims supported by a rigorous argument.

As an engineer the things you say in a company will be looked at much more rigorously and by many more people with years more experience, not a single professor marking your assignment  (or one of their TAs).  Even more so at an autonomous vehicles company, every assumption is tested to its maximum; the safety of passengers and nearby civilians depends on it. 

Bottom-up reasoning
When I was given the task of solving my first major engineering problem, I immediately dove into thinking about what algorithms I can apply to it, and how it could be structured. I spent a lot of time creating a solution, designing some of the code implementation, and making a presentation (I would have gotten full marks on a software engineering course!) only to realize my solution didn’t handle all of the edge cases.

No one cares if your solution is elegant and pretty if it doesn't solve the real problem. 
What I should have done is got my hands dirty and spent time exploring right from where the problem was occurring, surrounding myself by it, feeling the problem, identifying what scenarios are of concern and must be resolved. After this I could create a simple solution that handles these scenarios and then iterate on this solution to handle further cases.

Software engineering courses implicitly teach these skills in University but it was more from a theoretical perspective. If you've never been in the industry before it'd be hard to extract the key intuitions from lectures. In retrospect, during class I was too focused on getting the marks on an assignment, memorizing definitions for exams, and making my code elegant and efficient for the professor rather than correct and concise for the user. In industry, you have to get a useful MVP (minimum viable product) as quickly as possible and then iterate on it. 

Analysis of incoming information: Classifying, Scoping, prioritizing, planning, executing.
During my first weeks in industry I basked my eyes in the wonders of the Company's codebase in all its glory -- as if it were a sacred tome, and a curriculum I had to fully internalize. I spent some time on the weekend mapping out how I would study it all. I wanted to understand all of the algorithms, and the definitions for things, and the design of those things and how they integrated into all of the working systems to ultimately make a car drive autonomously. It quickly became apparent that I wouldn't have time to digest it all, and this stressed me out.

I'd claim there are five key steps to collecting information and solving a problem with it.
Classification: Identifying the information, what knowledge you have vs what you lack.
Scope: Organizing your information into reasonable chunks to solve desired problems
Prioritize: Selecting key aspects of problems that need to be resolved for maximum impact.
Plan: structuring how you will solve the problem
Execute: actually following through with your plan and solving the problem

In University the majority of information we deal with has been curated and presented to us with guarantees as to if it is accepted literature or rather an open theory – the classification is done. The information has been further organized into a compact curriculum -- scoping is done. What I think is taught really well in University is how to take this well classified, scoped knowledge and as a student prioritize it given importance on exams, and then plan how to study it all and execute on this study plan. I was great at attending lectures, reading notes, extracting key definitions and study concepts and then studying them; but this is because I was analyzing a simplified curation of material and in which most of it was clear to prioritize.
For example, if I want to memorize a definition, I knew that

$\frac{P(OnExam)}{DifficultyToLearn}$ is a good heuristic estimate as to what priority I should give to studying the definition. That is, I will study something that has a higher chance of being on an exam, and that is simple to learn.

In industry, however, there are so many components and so many terms that have been defined within those components. There an endless abyss of knowledge that is valuable to be aware of and accessible but not needing to be "mastered". I was really uncomfortable with the fact that I wouldn’t have time to rigorously study it all, and didn't know what to prioritize first.
What I don’t believe I developed during University is the ability to take an arbitrarily large problem space, classify the information you are taking in, and use this to scope your own possible projects before prioritizing.

Consider the space of all possible information, 
We can classify information into four quadrants (based on the Rumsfeld Ignorance Management Framework)

Known Knowns: This is information you can effectively use. An example is stuff you've learned during a University class. You have the knowledge, and you (hopefully) know how to apply it. All that is left is to execute with this information (do well on your exam).

Known Unknowns:  This is information you can reason about but may leave "implementation" details for later. For example, when you begin a course you may have access to the full curriculum, but don't yet know all of the material. Planning is an effective way to handle Known Unknowns. As a student, you should map out what you need to learn and your estimated study time. If the exam comes up and you do worse than expected, this was likely due to poor planning skills rather than you not being intellectually capable. 

Unknown knowns: This is the type of information that rattled me the most in industry. It is information you understand and can use, but don't consciously have it on your mind. For example, this would be like panicking on an exam and implementing a complex algorithm to solve the problem, only to realize afterward that you could have used memoization and solved the problem in a few lines.
The best way to handle Unknown Knowns is to make them Known Knowns, by discussing your thoughts with others and bringing all of your collective knowledge to the surface so you may reason with it. 

Unknown Unknown: This is unexpected information, and usually impacted by some external event. For example, you accidentally sit down in the wrong exam room and begin writing a Physics exam when you meant to write a Computer Science exam. You didn't expect this mistake to happen, and let's assume you didn't study for a physics exam.  You can't really deal with this type of information easily, but instead, make sure you're communicating frequently with others and keeping your mind open.
I try to handle unknown unknowns by reflecting on myself (like in this blog post) about things I'm learning, and analyzing them to become more aware of the things I don't know, in hopes of reducing my ignorance.

More rapid communication with others: Teamwork
This is hands down the most differing thing between University and Industry.
During my time in University, the introductory software engineering course and some later (4th year courses) begin to dabble with teamwork by enforcing group projects; however as many know, these usually result in one subset of the group being burdened with a large portion of the workload in an uneven distribution, resulting in many all-nighters because some people in the group decide to place all of the work on their friends and then disappear for a large portion of the semester. 
Earlier in a University degree, you are often discouraged from true teamwork, in the sense that you must write down your own answers separately, or else be hit with academic dishonesty penalties.

This is radically different from industry. When I showed up, my manager told me of a "30-minute rule" which indicated that 
"if you get stuck on something for more than 30 minutes you should book a meeting with someone who knows how to do it, and figure it out together"

There is no notion of academic dishonesty, there is only efficiency, and the distinction of either completing or failing to complete a task. Thus, most of the time my colleagues and I will group together and solve a problem on a whiteboard, and then have one person write down the solution and report back with results. 


In short, what I've learned from my internship thus far is that school covers a lot of valuable things; but much of it is in a theoretical sense. Each one of us may extract different insights from our degrees; but if you remain in a single environment for long enough I believe you eventually become numb to what the key bottlenecks in your reasoning are. It is crucial to expose yourself to new environments and problem domains in order to highlight your local maximum in terms of effectiveness so you can reach your true potential. 

Sunday, November 25, 2018

Forgone Blog Hiatus

non-technical: suitable for any reader

It has been nearly 7 months now (5096 hours at the time of writing this post) since I touched base in San Francisco. Between living in a hackhouse of 10+ people, working on autonomous vehicles by day, and attending meetups by night, I've spent many of these hours surrounded by incredibly insightful and intelligent individuals. 

I'm well familiar with culture shock (see: Taiwan, Germany, Korea); yet despite a predisposition to planting myself alone in unfamiliar countries I was still taken aback adjusting to the Bay Area lifestyle. The majority of us here speak the same languages -- be it primarily English, or Python -- so perhaps this shock was more due to leaving a University atmosphere and visiting the industry for the first time, rather than by transplanting myself into any distinct country. 

My blog has been perhaps unusually quiet; however this is not because I have relaxed. In fact, these last few months have comprised the most introspective and psychologically taxing period of my life thus far. While adapting to industry, and concurrently preparing for imminent graduation, I've spent a lot of time reflecting on who I am, and what I need to do in the coming years. 
Ultimately I felt a regular release of blog posts during these months would not effectively capture my state of being in which has adapted so rapidly.

But alas, December is approaching, and it is time to rev up those keyboards! I'll release a series of blog posts documenting my experiences in industry, which have been multiple months in the making. Topics will range from guidance on how to land a Silicon Vally job, Lessons I've Learnt, and a more personal glimpse of my own inner monologue.

Subscribe to Updates via Email