Skip to main content

ADR Template

· 2 min read

ADR means Architectural Decision Record, a mini-doc to capture significant architectural changes that are not worth a full design doc.

# [short title of solved problem and solution]

* Status: [proposed | rejected | accepted | deprecated | … | superseded by [ADR-0005](0005-example.md)] <!-- optional -->
* Deciders: [list everyone involved in the decision] <!-- optional -->
* Date: [YYYY-MM-DD when the decision was last updated] <!-- optional -->

Technical Story: [description | ticket/issue URL] <!-- optional -->

## Context and Problem Statement

[Describe the context and problem statement, e.g., in free form using two to three sentences. You may want to articulate the problem in form of a question.]

## Decision Drivers <!-- optional -->

* [driver 1, e.g., a force, facing concern, …]
* [driver 2, e.g., a force, facing concern, …]
*<!-- numbers of drivers can vary -->

## Considered Options

* [option 1]
* [option 2]
* [option 3]
*<!-- numbers of options can vary -->

## Decision Outcome

Chosen option: "[option 1]", because [justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force force | … | comes out best (see below)].

### Positive Consequences <!-- optional -->

* [e.g., improvement of quality attribute satisfaction, follow-up decisions required, …]
*

### Negative Consequences <!-- optional -->

* [e.g., compromising quality attribute, follow-up decisions required, …]
*

## Pros and Cons of the Options <!-- optional -->

### [option 1]

[example | description | pointer to more information | …] <!-- optional -->

* Good, because [argument a]
* Good, because [argument b]
* Bad, because [argument c]
*<!-- numbers of pros and cons can vary -->

### [option 2]

[example | description | pointer to more information | …] <!-- optional -->

* Good, because [argument a]
* Good, because [argument b]
* Bad, because [argument c]
*<!-- numbers of pros and cons can vary -->

### [option 3]

[example | description | pointer to more information | …] <!-- optional -->

* Good, because [argument a]
* Good, because [argument b]
* Bad, because [argument c]
*<!-- numbers of pros and cons can vary -->

## Links <!-- optional -->

* [Link type] [Link to ADR] <!-- example: Refined by [ADR-0005](0005-example.md) -->
*<!-- numbers of links can vary -->

OKR Template

· One min read

Guiding Policies

  1. Keep it simple, easy to be refer to, and easy to be measured.
  2. Separate core objectives from stretch objectives.
  3. At least 60% of them should be defined by the executors.

OKR Template

20XX Yearly OKRs

* Core Objective 1:
* Core Objective 2:
* Core Objective 3:
* Stretch Objective 1:
* Stretch Objective 2:

20XXQX OKRs

* Core Objective 1:
* KR:
* KR:
* Core Objective 2:
* Stretch Objective 1:

The Essence of Martial Arts in Silicon Valley

· 5 min read

Overview

@[toc]

1. Intelligence/Decision-Making

  • One Yang Finger: Extreme approaches, breakthrough at a single point. Focused strategy. One of Michael Porter's three competitive strategies.
  • Finger Flicking Mastery: Cost leadership strategy. One of Michael Porter's three competitive strategies.
  • Dugu Nine Swords: Differentiation strategy, winning without moves. One of Michael Porter's three competitive strategies.
  • Four Ounces to Move a Thousand Pounds: Using leverage to create a greater impact. Andy Grove said that a manager's output equals the output of their own team and adjacent teams under their influence. The key to high output is high leverage.
  • Taixuanjing Divine Skill: Mysterious and profound, the gateway to all wonders. Starting from the fundamental laws of the universe, deconstructing and recombining to find the optimal path to achieve goals. Also known as first principles.
  • Nine Yang Divine Skill: Economies of scale, a type of economic moat. The larger the scale, the lower the cost, making it more competitive in the market.
  • Masterful Hands Empty: As Steve Jobs said, "Good artists copy; great artists steal."
  • Rain of Flowers/Pointy Punches: Describing entrepreneurs who take two shots regardless of the outcome, then pivoting wildly based on validated learning.
  • Killing Two Birds with One Stone: If you do one thing that is needed by two parties, it’s like doing two things. Reuse, resell. Achieving alignment.

2. Martial Power/Expertise

  • Left-Right Mutual Combat Technique: Experimenting and iterating wildly, improving through results without relying on others. "Damn it, no one can stop me from coding!" "Whether the code is right or not, just run it to find out."
  • Jade Maiden Skill: Standing firm without desire, as long as I don't care, no one can hurt me; if I don't want to win, I won't lose.
  • Dragon Elephant Prajna Skill: Playing a much larger game. Flowers bloom at times. A garage does not produce a company; a company produces a company.

3. Leadership/Execution

  • Deceiving the Sky to Cross the Sea: In NASA's Apollo moon landing program, there are three sayings: cutting in line, sandbags, and umbrellas. Ideally, new tasks are prohibited from cutting in line, hiding task delays under sandbags, and using others' overdue tasks to cover one's own delays. A sandbag that can't be hidden may lead to major problems, like Elizabeth Holmes.
  • Small No-Form Skill: Fake it until you make it. Duck typing: "If it looks like a duck, swims like a duck, and quacks like a duck, then it is a duck." "As long as the exterior looks like a master, works like a master, and sounds like a master, then I am a master."
  • Mighty Golden Bell Palm: Boldness brings miracles; one force can overcome ten skills. Fast and rough.
  • Seductive Leg: Making money is business, nothing to be ashamed of. The only standard for testing investment ability is whether real money is made. Without grand ideals, one can still do the current tasks well.
  • Evil-Repelling Sword Technique/Sunflower Manual: Simplifying life by discarding unimportant matters and focusing on what needs to be done, thus unleashing tremendous power.
  • Pulling the Roots from the Bottom: Changing the engine while flying; "As long as you replace the system you rely on with the one I wrote, no one can take my job."
  • Lifting Weights as Light: Either secretly working overtime like a rogue or truly being exceptionally skilled and faster than others.
  • Flowery Fists and Embroidered Legs: Seeking speed over substance; a system hastily put together may lead to numerous regressions once launched.
  • Wing Chun: The power of small wins snowballing; of all the positive events that influence inner work life, the single most powerful is progress in meaningful work.
  • Mount Tai Pressing Down: So good that they can't ignore you.
  • Big Dipper Divine Fist: North Star goal-setting method; some companies use layered OKRs.
  • Heavy Sword Without Edge, Great Skill Without Craftsmanship / Xuan Tie Sword Technique: Details determine strength; strength conquers all.
  • Tai Chi Sword Technique: This sword technique consists of various circles, big and small, straight and diagonal. If one were to speak of techniques, one could say there is only one move, yet this move is endlessly adaptable. Using a series of sprints to recommend project progress; emphasizing continuous improvement; avoiding burnout because "a soaring dragon has regrets," and abundance cannot last long.

4. Charisma/People and Culture

  • The Benevolent Have No Enemies: Empathy can clarify what the other party is thinking. One of the virtues in the Book of Virtues.
  • Hidden Needles in Cotton/Knives Hidden in Smiles: Be polite, be professional, but have a plan to eliminate everyone you meet.
  • The Tide of the Blue Sea: Persuading others using their desires.
  • Flattery: Excessive praise or flattery can make the praised arrogant and complacent, leading to stagnation or even downfall. Many companies have a habit of sycophancy, which can be used appropriately to spoil the arrogant.
  • Shifting Blame/Eel Skill: Appearing near the credit while hiding from the mistakes.

5. Qualifications/Product Power

  • Taizu Long Fist: Intuition triumphs over data-driven approaches; it may seem simple, but its impact is immense. The iPhone is not a data-driven product.

6. Politics/Resource Integration

  • Stopping Thirst with Plums/Painting Cakes: A grand vision has two sides; it can either deceive or be the first step to conquering the stars and the sea. Those who achieve it are great men; those who do not are frauds :)
  • Turning the Universe: Steve Jobs' reality distortion field.
  • Buddha's Palm: If peers can't resolve it, do you know there's a set of heavenly palm techniques? Escalate the issue to a superior.

What interesting and useful martial arts techniques or moves have you encountered in Silicon Valley? Feel free to fork our GitHub repo and submit a PR, or star it to follow future updates.

Business Growth Strategies

· One min read

External

  1. Understanding Customers: Customer acquisition and demand forecasting
  2. Reaching Customers: Marketing and PR

Internal

  1. Survival: Cost Structures, Pricing, and Metrics
  2. Organizational: People and Culture

What Aspects Contribute to the Growth of Startups?

· One min read

Internally

  1. Understand Customers: Customer Acquisition and Demand Forecasting
  2. Reach Customers: Marketing and PR

Externally

  1. Survive: Cost Structure, Pricing, and Performance
  2. Thrive: People and Company Culture

Instant access to your Beancount cloud ledger anytime, anywhere

· 4 min read
Tian Pan
Software Engineer

Beancounters traditionally use command-line tools or self-host servers with private networks, where they have to operate through a computer or a general-purpose text editor on mobile. Beancount.io reduces hassles by bringing open-sourced Android and iOS mobile apps and a secured cloud so that your ledger is now a few taps away from your fingerprint.

Beancount is a computer language that enables double-entry bookkeeping in text files. Once you define financial transactions in the file, it will generate various reports. Martin Blais, the designer of this language, argues that command-line bookkeeping has many advantages - It is fast, portable, open, and customized.

We strongly agree with the argument and share the feeling of empowerment brought by beancount language. And we wanted to do more - introducing the technology to more people. It means that we have to improve the usability and make it more accessible to a broader audience.

Not everyone is a command-line enthusiast, and this is why we build Beancount.io - the personal finance manager for everyone. Here is how it works:

For heavy-duty work, beancounters could still use their computers to edit or view the ledger with their browsers visiting https://beancount.io or syncing with Dropbox. This keeps the flexibility of the command-line tools, while not losing the cross-device access of the cloud-based solution.

For daily light-weight operations, such as instantly adding an entry, beancounters could use the mobile app to connect to the secured cloud.

Mike Thrift, a backend engineering working on this product, says

I used to set up a reminder every day for myself to open my laptop and input records to my bean files. Now, with beancount.io, it is way easier for me to modify my ledger whenever I need it, even when I am outdoors purchasing something in the store.

Zhi Li, a software engineer from Facebook, tells us

I have migrated all my beancount files to beancount.io, and now it works perfectly for my day-to-day usage. I have paid for Pro features like automatic data backup, but I feel there are more things you guys could do to improve the service.

You could sign up now at https://beancount.io/sign-up/ or download iOS or Android App. We streamlined the registration to collect as minimal information as we can from you to bootstrap the service. Then you will get a preset empty ledger that is ready for you to add an entry right away.

FAQs

Would beancount.io sell my ledger data to any third party?

  • No. We are committed to keeping your data secured and private, and we will never sell your ledger data.

Is my data secured?

  • Yes. We protect your email and ledger with AES256, your password with BCrypt, and your network requests with SSL.

Is my ledger data end-to-end encrypted?

  • No. Due to technical constraints, we still have to decrypt your data into memory when indexing the ledger file in production servers. Therefore, we restrict direct access from any of our team members. Unfortunately, we cannot do this in Intel's SGX or any security vault due to high costs.

Is this a reliable service I could trust for the incoming few years?

  • Yes. We initially launched Beancount.io on July 4th, 2019, and it has been more than two years that we have operated the service securely and reliably. Therefore, we have no reason not to continue the service in the future.

Can I request new features and sponsor the project?

The Great Bottleneck Period

· 3 min read

The great bottleneck period refers to a professional state where maintaining the status quo consumes all your time and energy, preventing you from breaking through to the next level of life.

Here are some suggestions to help you move forward.

1. Analyze with Others' Experiences and Set Clear, Long-Term Goals

What factors are motivating or demotivating you? Do these factors serve your goals rather than conflict with them? Are these goals aligned with each other rather than contradictory?

When analyzing and setting goals, be realistic and refer to baseline ratios. For example, Jeff Bezos shared a story about the experience of learning to do a handstand—most people think they can learn it in two weeks; however, it usually takes six months. When you encounter the unknown and feel stuck, the answers are more likely to come from others and reality rather than from yourself.

Do not aim for a moving target. Your current situation may be exactly what you hoped for four or five years ago. Don’t be too greedy :)

2. Release Burdens and Optimize Processes

Can we eliminate those cost-heavy or low-value activities? While this may temporarily hinder growth, it could lead to a hockey-stick growth trajectory later on.

Take out a sheet to list your daily activities and indicate whether they are burdensome. If they are, how can you remove them?

3. Make Time for Deliberate Curiosity

To shake yourself out of a local optimum, you need to set aside time for new experiences. This process may seem unproductive at first and can take a lot of time.

You must be patient. Just like Steve Jobs did when he returned to Apple after his exile, cutting down on low-margin product lines and waiting for the next wave.

4. Invest in Infrastructure

Business is an infinite game, and you can always accumulate comparative advantages over time. If you have some extra time and are temporarily uncertain about future goals, you can always invest in yourself—improving your mental and physical health to help you fight in future battles. Keep learning and gaining knowledge to increase your chances of success. Optimize your business to work more efficiently and survive longer in the market.

Finally, do not underestimate your growth. Even prominent technologies like artificial intelligence or 3D printing go through a deceptive phase; they may seem stagnant for a long time and then suddenly explode at an exponential rate.

The Great Plateau

· 3 min read

The great plateau is the career state that the maintenance of the status quo consumes all your time and energy so that you cannot break through and reach the next level of your life.

Here is some advice to help you move forward.

1. Analyze for yourself based on lessons from others. Set clear and long-term goals.

What are the factors that are pumping or dumping you? Are those factors serving your goals instead of contradicting your goals? Are those goals aligning with each other instead of violating each other?

Be realistic and refer to the base rate ratio when analyzing and setting the goal. For example, Jeff Bezos told a story about a handstand coach’s experience - most people believe that they can learn handstand in two weeks; however, it usually takes six months. When you get stuck, the answers are more likely to be from others, from reality, not from yourself.

Stop aiming at a moving target. Your current situation is possibly what you desired four or five years ago. Don’t be too greedy :)

2. Release burdens and optimize the process.

More specific to those dumping you and wasting your time and energy, could we remove those costs? Maybe that will hurt the upside temporarily; however, could that be the hockey stick growth afterward?

Take a sheet to list your daily operations and mark them as burdens or not. If yes, how to remove them?

3. Make time for deliberate curiosity.

To shake yourself to leave the local optima, you need to set aside some time specifically for something new. The process seems useless at the beginning and may take long time.

You have to be patient. Like what Steve Jobs did when he returned to Apple after the exile, he cut less profitable product lines and waited for the next big wave.

4. Invest in infrastructures.

Business is an infinite game, and you can always accumulate comparative advantages over time. If you have some extra time and are not sure of a clear goal for now, you could always invest in yourself - better mental and physical health to help you fight through battles in the future. Keep learning and knowing more to increase the probability of success. Optimize the business to work more efficiently and live longer on the market.

Finally, do not underestimate your growth. There is a deception phase even with prominent technologies like AI or 3D printing; they seem not to progress for a long time and then suddenly improve at an exponential rate.

Definition of Technology Leadership

· 3 min read

The Problem

We, engineers, often boast about leadership without a clear definition of what we are saying. We boast with authority - X years of experience, intimidating titles from prestigious companies, and quotes from big names. We boast with emotions - close friends achieving financial freedom, leaders making a huge impact, and how exciting business is taking off. We boast with logic - the team should be united, we are a team, and then we should be united.

It is OK if boasting is a personal matter. However, unfortunately, flattery lives in the nature of hierarchical corporate life, especially for those from East Asia. Meanwhile, people in the United States tend to say good things to each other so that both parties can feel better. Praises are literally everywhere.

As a result, leadership is like teenage sex: everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it.

The Definition

Here are the definitions to distill the clarity from those chaotic ramblings of the mass.

What is leadership?

Leadership is organizing people to solve challenging problems.

What does it really mean?

  1. Leadership is people-centered. We should solve problems for the people, by the people, and of the people.
  2. Problems should be challenging. Those problems could be personal, regional, or world-class. However, if they are not challenging enough to the protagonist, requiring it to break through the status quo and brining shiny changes to itself or to the environment, we will not admire such person and say it is a leader.
  3. Leadership without execution sums up everything to zero. It is not a capability but a trophy. We either have achieved it or not.

What is technology?

Technology is a scientific way of solving problems.

What does it really mean?

  1. Technology applies science. It organizes knowledge based on facts, and with testability and predictability. For example, introduce tests to programming, and then programming becomes more scientific than just an art.
  2. Technology takes pragmatism. Technology serves a purpose - solving problems for people. Designer does not equal to artist. Engineer does not equal to programmer.
  3. Technology itself creates value by transforming low-value input to high-value output.

What is innovation?

Innovation is creating something new.

What does it really mean?

  1. The market is efficient, and the competition is everywhere. You are not alone with technologies. There is no reason that a powerful technology belongs only to you. Technology is not an economic moat, and we could hardly rely on a single technology that is losing comparative advantages over time.
  2. People won't buy things to replace what they already own that solve their problems well.
  3. Innovation bears costs and risks. Try more and befriend failures.

Well, what is technology leadership?

Technology leadership is organizing people to solve challenging problems with technologies, usually through innovations.