Skip to main content

Posts

Diversification

Diversification is a common investment strategy—spreading your money across different assets like stocks, ETFs, and bonds to reduce risk. If one stock underperforms, others can balance the loss, protecting your overall portfolio. This principle applies to life as well. Diversifying your career, hobbies, and relationships can build resilience and lead to a more balanced, fulfilling life. Focusing all your energy on one area is like putting all your money into a single stock: the highs can be great, but the lows hit harder. Going all-in can sometimes be the right move, especially with clear opportunities. Entrepreneurs may dedicate themselves to a startup, or athletes might focus solely on training for a big event. These are typically short-term strategies where risks are understood. While diversification might not deliver quick or massive rewards, it builds a stable foundation over time, helping you stay adaptable, balanced, and prepared for challenges.

Subtle Differences

Actions can be deceivingly similar on the surface when they are coming from drastically different places: Wanting to be liked by someone vs. liking someone Fear vs. love - fear of not being liked vs. genuine kindness for example Necessity vs. choice Fake empathy to alleviate pain in themselves vs. real empathy without their own agenda or projection In some past moments, I went back and forth on living with as much clarity as possible on the motivations behind actions vs. intentionally keeping the cover on sometimes - ignorance is bliss after all. Now it is getting clearer to me that clarity is critical to building deeper relationships and a fuller life.

Thoughts on Retirement

Retirement to me means flexibility in how I spend my time - being able to choose what to work on and when I work on them. Instead of waiting for and looking forward to the dream retirement to come tens of years later, why not figure out what the ideal retirement life would look like to you and try to live it starting now? If you'd like to travel the world after retirement, don't wait and start traveling more now using your vacation time. If you are devoted to building a fulfilling career, find a job that you would be motivated to keep even after retirement.

My Investment Target Allocation

 Target allocation that I am aiming for: Public Stock (25%) Large Cap Company (15%) Growth Company (10%) Mutual Funds (20%): mostly VTSAX Retirement (30%): half traditional and half roth Traditional 401k Roth 401k Traditional ira Roth ira Real Estate (10%): personally not too interested in rental properties, would rather buy REITs Private Equity (10%) Employee stock (2%): be extra careful with choosing a startup to join Angel investing (5%): only invest what you are willing to all lose Pre-IPO investing (1%): may not always turn out to be good deals compared to the IPO price Crypto, Metaverse, NFT (3%): only invest what you are willing to lose Tax Benefit Accounts (2%): pre-tax deductibles HSA: triple tax benefit! Navia Transportation Benefits: not too many ways to spend it FSA: has to be all spent every year

Advice for Beginner Boulders

1. Safety first and have fun! 2. Learn how to fall safely first. Fall on your foot and roll over on your back. 3. Start with V0, V1s and be patient. Be very careful with attempting higher-level routes. Practice all the V0/V1s at the gym and then move on to V2+s. 4. Wear a tight and comfortable pair of shoes. Most gyms provide rental shoes. When you are ready to buy your own shoes, go to a physical store, try on shoes, and get help from the staff on picking the best shoe for you. 5. Keep climbing. Like many other sports, you would need to go climbing once/twice per week to maintain your skills and more to improve on them. Three times a week is likely the sweet spot, it gives you enough time to recover between each climb. 6. Wear pants. Shorts are mostly fine for easier routes, it is much easier to get scratches when climbing harder routes with shorts. 7. Know and acknowledge your physical limit, stop when your body tells you so. 8. Warm-up exercises are important. Climb a few easy route

My Most Frequently Visited Websites - Updated Jan 2022

Investment Microacquire  (Acquiring small tech company) Angel List  (Angel investing) EquityZen  (Pre-IPO investing) Republic  (Private crowdsource investing) Inspiration Product Hunt  (New products) Wanqu Co (Curated Tech Newsletter in Chinese) YC News  (Tech News) Deal Room  (Startup Data) Entertainment SF Fun Cheap  (Events in SF) Blogs Listen Notes  (Podcast search engine) Michael Lynch  (Solo developer) High Scalability  (Scalability Tech Blogs) Tynan  (Philosophy, Lifestyle) Sam Altman  (Tech) More: ysflight.com wangjiashu.com mhudack.com bwang29.github.io niniane.blogspot.com matthartzell.blogspot.com blog.farmostwood.net

Tools That I Use

DNS management: CloudFlare Git repo management: BitBucket Analytics: Google Analytics Monitoring: Slack/Hubot, Datadog,  Website Checker Scheduler: Celery Beat Server: Digital Ocean Container: Docker Database: MongoDB, Redis Framework: Spring Build: Meteor Continuous Integration: BitBucket Pipeline, Jenkins CI Deploy: Meteor Up Library: React.js Languages: Java, Javascript Email: Mailchimp Meeting Scheduling: Calendly Domain: Google Domain Scheduled Jobs: Cron SSL: Letsencrpt Task Management: Trello Real-time Notifications: Slack

Favorite Blog Posts (Updated 10/01/2018)

10/01/2018 The Starting Out Blueprint 09/10/2018 Note to Myself on Software Engineering 08/21/2018 On Engineers and Influence 08/10/2018 Web Architecture 101 08/06/2018 How to Build a Career in Tech 07/24/2018  Building the Google Photos Web UI 07/18/2018  Life in a Studio Apartment with my Wife and Two Sons

Fix Your Flaky Tests

Selenium tests are my least favorite tests to write, run and maintain. We use Jest to test UI components and logic whenever possible, but Selenium tests are still irreplaceable for many test cases. Occasionally we'd get a flaky selenium test that fails relatively reliably on our Jenkins machines but is hard to be reproduced locally on my 2013 Macbook which is significantly slower. The majority of, if not all of the time, it'd be a test issue where there's a stupid timing error somewhere and I'd have to run the test many times locally until it fails to figure out where exactly the problem is. And after fixing it, I'd also run it many times just for peace of mind. How nice would it be if I could easily run the same test multiple times in a row and report back the results? That is totally doable and extremely easy too! How to run JUnit tests multiple times in Eclipse with JUnit Suite Run a test multiple times with the Parameterized annotation

Debugging with git-bisect

My coworker Justin recently worked on a mysterious bug. No one has directly touched the codes in that area for a long time and no one understands what's going on either because the original author had left the company. Upon discovering that this bug is a regression which just started failing two weeks ago and that he was able to reproduce the failure, he used git-bisect to do a binary search between a "bad" commit (where the bug exists in this version) and a "good" commit (where the version is working correctly) and very quickly found the culprit. You basically just tell git-bisect if the current commit is good or bad in each binary search step and it'll narrow down the search to half of the commits. For more detailed information on the usage of git-bisect, check out the official documentation. https://git-scm.com/docs/git-bisect Anyways I liked the debugging story so much and hence wrote this quick note.

React Is Awsome

In a react class, to avoid typing this.state or this.props all the time, a fancy alternative is to define some local constants: const { buttonValue, onChangeHandler} = this.props; const { input1, input2 } = this.state;

Tech Stack Behind My Personal Website

My personal website is a static web page with some pictures and a bunch of links, I did some research when deciding which  technology/service provider to go for and thought I can share the stack I ended up using: Language: Javascript, HTML5 Web hosting: Google Cloud Storage Bucket (free) Blog hosting: Blogger Domain Management: Google Domains Analytics: Google Analytics (free) SSL: Cloudflare (free)