Skip to main content

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.

Minimal UI Design Tutorial Part 2

· 2 min read

How to design an elegant UI? Answer: Focus on the details, distinguish between primary and secondary elements, maintain a clean layout, ensure text readability, use rich colors, create natural layers, keep images within bounds, add the finishing touch, and ensure continuity.

This is Part 2, see Part 1

Rich Colors

  • From a designer's perspective, the HSL color wheel is more useful than RGB because its parameters are perceivable by the human eye:

    • Hue refers to the position/angle of a color on the color wheel.
    • Saturation indicates whether a color is gray or vibrant; 0% is gray, and 100% is the most vivid.
    • Lightness indicates whether a color is black or white; 0% is pure black, 100% is pure white, and 50% is pure color on the hue.
  • You need far more colors than you think; five or six are far from enough.

    • Overall, divide into three categories, each with seven color choices:
      • Grays
      • Primary colors
      • Accent colors
  • Select from predefined colors.

    • Defining a color palette is a true test of skill, as it requires a good eye and experience.
    • Start by finding the darkest and lightest colors, then look for the intermediate ones.
  • When searching for dark colors, you can slightly adjust the hue within 30 degrees to compensate for the lack of color caused by changing the other two parameters.

  • Similarly, gray does not need to be pure gray; you can add other colors. Some grays are cool-toned, while others are warm-toned.

  • To address accessibility, you don't necessarily need to only adjust saturation and lightness to make elements clearer; you can also adjust hue as long as it remains relatively clear, allowing you to maintain aesthetics.

  • Don't rely solely on color to distinguish elements; there are many other methods that can achieve even better results.

Minimal UI Design Tutorial Part 3

· 3 min read

How to design an elegant UI? Answer: Focus on the details, distinguish between primary and secondary elements, maintain a clean layout, ensure text is easy to read, use rich colors, create natural layers, avoid excessive imagery, and add the finishing touch.

This is Part 3; see Part 1 and Part 2.

Natural Layers

  • Why do some elements appear to have depth? Because they have a natural shadow effect. But is it really worth spending hours tweaking this?

  • When elements are raised on the z-axis closer to the user, they attract more attention, which is also achieved through shadow.

  • Advanced shadow techniques may even involve two shadows: one created by ambient light and another by direct light.

  • Flat design can also convey depth; one way is through color—brighter colors appear closer, while darker colors seem farther away. Another method is using vertical offset with a solid color shadow without blur, such as box-shadow: 0 4px 0 hsl(220,8%, 80%);

  • Overlay elements to create depth.

    • For example, use negative margins like margin-bottom: -72px; to overlap two background elements, or even three elements with margin: -72px 0 -72px 0;
    • Similarly, images can overlap two background areas, but to make the image clearer, you can add a solid color border for distinction.

Avoid Excessive Imagery

  • Elegant design pays attention to the use of every image; you should use high-quality images, and adhere to guidelines for their use.

  • When placing text over images, to enhance clarity, you can:

    • Overlay a gray layer for a gray background.
    • Reduce the image contrast for a white background.
    • Adjust the image to a single color for a deeper background.
    • Add shadow to the image.
  • Images have their own suitable sizes; do not arbitrarily change their scale.

    • Do not enlarge icons; you can add a solid color circle around them.
    • Do not shrink screenshots, as the text will become unreadable; instead, you can:
      • Take screenshots on smaller screens.
      • Focus the screenshot on key areas.
      • If you must take a large image, use lines to replace small text to avoid readability issues.
    • Also, do not shrink icons; redraw them as needed.
  • Be mindful of user-uploaded images.

    • If sizes are inconsistent during display, it can look chaotic; use backgroundSize: "cover", backgroundImage: url(...);
    • Images blending with the original background color can look strange; in this case, using inner or outer shadows is more appropriate.

The Finishing Touch

  • You don't always need to add new elements to enhance design; modifying default settings can make it look great, such as:
    • Changing bullet points in lists to icons.
    • Adding color and weight to hyperlinks, or using a stylish bold underline.
    • Altering the default settings of elements like checkboxes and radio buttons.
  • Add a colored border to one side.
  • Add color to the background, or low-contrast textures and illustrations.
  • Design unique empty states.
  • Reduce the use of borders; to differentiate color boundaries, use box-shadow, color, or spacing.
  • Be unconventional; lists don't have to be single-column; they can be multi-column cards. Tables don't have to be single-row; they can be complex and colorful. Single selections don't have to be radio buttons; they can be cards.

Continuous Evolution

Design is everywhere in life; view the world through a designer's eyes, continually recording and analyzing.

Nothing Matters Detector

· 3 min read

The business world likes to subtly influence you, often with the intent of guiding you to purchase, align with its brand, or simply to capture your attention. This adds a layer of pervasive artificial noise to an already complex world. Ray Dalio's principle 2.4 states to remember that many people are only pretending to work for you while actually pursuing their own interests; his advice is to be aware of the associated interests and not to be too naive.

How can you determine if certain people or things are genuinely helpful to you? Cultivate your own "Nothing Matters Detector" and frequently ask yourself: You may be right, but is it really useful? These are the good things you talk about, but what do they have to do with me? This can lead to a series of ways to navigate the business world:

  1. Do not buy things you do not need, do not invest in companies you do not understand.
  2. Distinguish between collective achievements and personal achievements; personal achievements can align with collective achievements, but this alignment must be defined by yourself, not imposed by others.
  3. Do not deliberately flatter capitalists; they will not give you money because you are friends; they will only give you money because you provide value. In the age of AI, everyone will ultimately turn to AI for tasks. Why go through you to find AI? Because you are their friend, you are an interesting and reliable person!
  4. These are all good things, but they have nothing to do with me. For example:
    1. The way to read most books should be to first look at the title and table of contents, skim most of the content, and read a small portion in depth.
    2. Do not spend too much time on so-called masters.
    3. Consensus does not equal insight.
  5. Action is more important than knowledge; the boundaries of the known and unknown are more important than what is internal.
  6. To judge whether a person's advice is genuinely helpful to you, pay attention to whether the content aligns with your specific situation.

Of course, a large number of new signals will inevitably be mixed with a lot of new noise. To avoid stagnation, it is essential to listen more to what you should hear, and ultimately, it is up to you to decide what to accept.

What is the difference between this and a "bullshit detector"? The "bullshit detector" targets specific interpersonal communication, while the "Nothing Matters Detector" focuses on the relationship between individuals and the business world.

UI Design Minimalist Tutorial Part 1

· 4 min read

How to design an elegant UI? Answer: Focus on the details, distinguish between primary and secondary elements, maintain a clean layout, ensure text readability, use rich colors, create natural hierarchies, keep images appropriate, add finishing touches, and ensure sustainability.

Focus on the Details

  1. Start with functionality, not layout.
  2. Begin with the details and work from grayscale; this forces you to clarify the hierarchy, layout, comparisons, and sizes before considering color.
  3. Avoid over-designing, as a product that users can actually use is far more important than design.
  4. Iterate in small steps; people often underestimate the difficulty of implementation.
  5. A product's personality is determined by elements such as font, color, border radius, and voice. For example, round shapes feel lively, while straight and thin shapes feel serious; blue is safe, gold feels expensive and complex, and pink is playful. Be careful not to borrow too much from your competitors :)
  6. Limit choices by pre-setting common parameters; this makes it look better and easier to implement.

Distinguish Between Primary and Secondary Elements

  1. Human attention is limited; having too many focal points is equivalent to having none.
  2. Size does not equal importance; consider using two to three font weights and two to three colors.
  3. You can use gray text on a white background to downplay text, but avoid using gray text on a colored background; instead, use colored text on a colored background.
  4. Mix weak and strong elements rather than relying solely on one or the other.
  5. Try to avoid labels (label: blah); sometimes you don't need a label and can go straight to the value; at other times, you can form a short sentence with the label and value; strengthen or weaken according to the importance of the label and value.
  6. The size of document tags does not equal the size of the UI; for instance, while you often use h1 for page titles, the actual importance of a page title may not warrant such prominence, so use regular size and font instead.
  7. Weight and color can both serve to strengthen or weaken elements; consider them together.
  8. If there are three parallel buttons for actions, distinguish between primary, secondary, and tertiary.

Maintain a Clean Layout

  1. Start with a loose layout, as reducing spacing is easier than increasing it.
  2. Select spacing from the design system.
  3. You don't need to occupy the entire screen; you can center elements or add columns.
  4. Some elements should not use proportional sizing but fixed widths, such as a left navigation bar or the width of an icon occupying a column; forms should not be resized unless absolutely necessary.
  5. Avoid scaling all parameters of a component uniformly; instead, design specifically for different sizes.
  6. Related items should be grouped together, while unrelated items should be spaced apart.

Ensure Text Readability

  1. Choose font sizes from the design system; avoid using em as it is a relative value based on the current font.
  2. Select a good font; starting with system fonts or popular fonts is always a safe choice; some fonts are designed for headings, with shorter horizontal spacing and shorter lowercase letters; others are designed for small sizes, with larger horizontal spacing and taller lowercase letters; learn from excellent designs and develop your intuition.
  3. Ensure that text paragraphs are not too wide.
  4. Align different text at the same level using baseline alignment (align-items: baseline) instead of centering.
  5. Line height affects whether users can easily shift their gaze to the next line; use 2x line height for wide paragraphs and 1.5x for narrow paragraphs; use larger line heights for small text and smaller line heights for large text.
  6. Not every hyperlink needs color or underlining.
  7. Short paragraphs can be center-aligned, while long paragraphs should be left-aligned; numbers should be right-aligned.
  8. If the distribution of single-line text in a paragraph is awkward due to word length, consider using hyphens: auto;.
  9. Adjust letter-spacing as noted in item 2 above; if increasing it for small-sized fonts, be careful to reduce letter-spacing.

What is the Innovator's Dilemma?

· 3 min read

The core question of this book is, why do large companies win every battle but lose the entire war?

The core answer of this book is, because large companies excel at sustaining technologies but struggle with disruptive technologies.

Here’s the explanation:

What is a dilemma? A dilemma is a situation where one must make a difficult decision among two or more choices, and the options are emotionally unappealing to the decision-maker.

What is technology? The process of inputting low-value products and services to produce high-value products and services.

What is sustaining technology? A type of technology used to enhance mature products and services that mainstream consumers value.

What is disruptive technology? A type of product that differs from the value proposition of sustaining innovations. Although its performance may currently be lower than that of mainstream market mature products, it possesses other characteristics valued by niche consumers, often being cheaper, simpler, smaller, and more convenient to use; its future growth S-curve can quickly surpass that of mainstream products in the market.

What is the innovator's dilemma? Listening to customers and only pursuing sustaining technologies can lead to missing the next wave of revolution; meanwhile, the opportunity cost of self-disruption by pursuing disruptive technologies is high, with relatively greater risks, no short-term results, and dissatisfaction among mainstream customers. So how should decision-makers choose?

Can one easily pursue a second S-curve while satisfying the first S-curve? No, because the evolution of product competition is different at each stage, which includes four stages: performance, reliability, convenience, and price. The capabilities of organizations at each stage may not be interchangeable.

Does "not being good at disruptive technologies" mean that large companies cannot produce disruptive technologies at all? No, they can produce them, but even if they do, these disruptive technologies may not be applicable to their existing markets, while the new markets suitable for this technology may be unclear or too small, making it difficult to generate short-term benefits to predict the future S-curve. Discovering emerging markets is inevitably a process fraught with failures.

Guidelines for Managing Disruptive Technological Change

  1. Customers and investors determine the allocation of resources in enterprises.
  2. Small markets cannot meet the growth demands of large enterprises.
  3. The S-curve of disruptive technologies is difficult to predict, and it is impossible to analyze non-existent markets.
  4. An organization’s capabilities do not equal the capabilities of the resources that make up the organization.
  5. Technology supply does not equal market demand.

So how should large companies compete with small companies?

  1. Ensure that disruptive innovation - independent organizations - fit the market.
  2. There are sufficient resources within the organization to flow to these independent organizations.
  3. Prepare for failure.
  4. Actively seek emerging markets for disruptive innovation.