This note does not have a description yet.
-
Stratechery
Published
-
Clubhouse Is the Next Evolution of Podcasts
Clubhouse can be thought of as the next stage in the evolution of audio. It started with radio (passive consumption of centralized content) followed by podcasts (programmable radio with decentralized content creation) and now Clubhouse (centralized audio-only conversations where anyone can spontaneously be a creator or listener).
A corollary to this evolution is written content. It started with newspapers (centralized content) then evolved to blogs (anyone can publish) finally to Twitter (more accessible and centralized).
Published
-
Pro Rata Rights Causes Conflict Between Early and Late Investors
Pro rata rights allow investors to retain their percentage ownership in future rounds on the same terms as new investors. This enables them to avoid dilution that occurs as the company raises more money. However, pro rata rights are not always honored or some early investors are asked to give up their pro rata rights to make room for new investors.
As Fred Wilson writes, it’s becoming more common that pro rata rights are not honored in later stages of financing (especially when a company is doing well) as the amount of allocation available for later investors becomes small. This cuts into the returns of early stage funds (like First Round Capital) and causes conflict between the earliest investors and the later ones.
Today, most early investors will ask for and mostly expect to get pro rata rights. This is counter to the solution some investors proposeβfounders should be mindful of who they give the right to. Practically speaking though, since pro rata rights can be taken away, the right is re-earned each round by helpful investors (helpful beyond just the capital put in).
Published
-
The Number One Job of a Startup CEO Is Finding Product Market Fit
Of all the roles and responsibilities an early stage startup CEO has, the most important is finding product market fit. A good heuristic to use is to continually ask, “Is what I’m doing getting us closer to product market fit.” If not, it’s a sign that the thing you are doing is not the most important thing to be spending time on.
See also:
- The focusing illusion makes you think what you are focusing on is the most important thing
Published
-
Fighting the Framework
In software development, when you are spending time trying to implement something that the framework you are using either doesn’t do or makes it harder. This is a sign of incidental complexity and that the value of using the framework might be exceeded by the additional effort to be able to use it.
See also:
Published
-
Component-Driven Development
In frontend development, a component-driven workflow is a way of building websites and applications by breaking down the UI into smaller components and iterating on them independently and composing them together. This has been popularized by Storybook.js where you write stories around components to make a faster feedback loop compared to loading the whole application (and data) every time.
See also:
- Faster feedback is a way of improving the ‘hand feel’ of software engineering
- Creators need an immediate connection to what they are creating (a la Brett Victor)
- If building parts of the frontend is slow, it makes more of the development slow i.e. slowness begets more slowness
Published
-
All Employers Are Required to Report New Employees Within 7 to 20 Days
Each state requires new hires to be reported as per the Personal Responsibility and Work Opportunity Reconciliation Act of 1996 (PRWORA). This is needed for wage garnishment related to child support. Each state has a different time limit for reporting and the penalty for failing to report is $25 per newly hired employee.
See also:
- A challenge with compliance is selling non-compliance, in this case $25 is not going to be material enough to make sure reporting consistently happens.
- Back office
State Requirement Alabama Within 7 days of hire (or rehire) date Alaska Within 20 days of hire date Arizona Within 20 days of hire date Arkansas Within 20 days of hire date California Within 20 days of hire date Colorado Within 20 days of hire date Connecticut Within 20 days of hire date Delaware Within 20 days of hire (or rehire) date District Within 20 days of hire (or rehire) date Florida Within 20 days of start date Georgia Within 10 days of hire date Guam Within 20 days of hire date Hawaii Within 20 days of hire date Idaho Within 20 days of start date Illinois Within 20 days of hire date Indiana Within 20 days of hire date Iowa Within 15 days of hire date Kansas Within 20 days of hire date Kentucky Within 20 days of hire date Louisiana Within 20 days of hire date Maine Within 7 days of hire date Maryland Within 20 days of hire (or rehire) date Massachusetts Within 14 days of start date Michigan Within 20 days of hire date Minnesota Within 20 days of hire date Mississippi Within 15 days of hire date Missouri Within 20 days of hire date Montana Within 20 days of hire date Nebraska Within 20 days of hire date Nevada Within 20 days of hire date New Hampshire Within 20 days of hire date New Jersey Within 20 days of hire (or rehire) date New Mexico Within 20 days of hire date New York Within 20 days of hire date North Carolina Within 20 days of start date North Dakota Within 20 days of hire date Ohio Within 20 days of hire date Oklahoma Within 20 days of hire date Oregon Within 20 days of hire date Pennsylvania Within 20 days of hire (or rehire) date Puerto Rico Within 20 days of hire (or rehire) date Rhode Island Within 14 days of start date South Carolina Within 20 days of start date South Dakota Within 20 days of hire date Tennessee Within 20 days of hire date Texas Within 20 days of hire date Utah Within 20 days of hire date Vermont Within 10 days of hire date Virginia Within 20 days of hire (or rehire) date Virgin Islands Within 20 days of hire date Washington Within 20 days of hire date West Virginia Within 14 days of hire date Wisconsin Within 20 days of hire date Wyoming Within 20 days of hire date (source)
Published
-
Mutagen Greatly Speeds Up Docker on MacOS
After noticing abysmal performance of Docker for macOS and after a few Google searches (searching ‘docker macos performance’ yields 5MM hits) to confirm the issue, the recommended solution is to use Mutagen. Mutagen efficiently synchronizes files between macOS and the virtualized VM that docker uses resulting in much better performance.
Published
-
Stealth Mode Provides Optionality
When a company chooses to operate in stealth mode it provides optionality in a couple of ways. First, you can better control timing of press announcements since the world doesn’t know what you are doing yet and you haven’t shared anything before (more appealing to a reporter). Second, it gives the company an option to figure out more about the market, iterate on the product, or pivot with lower risk.
Of course, none of this works if it’s already well known what you are doing and you don’t deviate from it.
If you are in stealth mode, it’s probably best to maintain strict confidentiality from the beginning, especially with investors as information tends to leak. Even so, it’s unlikely that you can be successful without talking about what you are doing to a large group of customers, investors, or subject matter experts.
Published
-
Stealth Mode
This note does not have a description yet.
Published
-
MAP Customer Value Framework
MAP (metrics, activities, people) is a framework for thinking about SaaS value and pricing. At least one element should anchor a product’s pricing.
An example of a metrics approach to pricing would be Slackβfree up to 10,000 messages. This aligns nicely with the core value that Slack provides, communication.
See also:
Published
-
Python Type Hinting
Python 3+ has type annotations that can be used for static type checking using a separate program. There are several competing type checkers (mypy, pyright, pyre) that can be used that are sponsored by different companies (Facebook, Microsoft).
See also:
- Static types make it easier work on projects sporadically
- TypeScript adds incidental complexity to using libraries, I hope this isn’t the case with Python libraries
- TypeScript was a different approach that required an entirely separate language and compiler
Published
-
Python
A dynamic programming language used heavily in the startup and scientific community.
Published
-
Code Architecture Docs Decrease the Time Spent Searching for Where to Make a Change
A software architecture doc (e.g. ARCHITECTURE.md) is a way of stating the overall structure of the code. This makes it easier for new people to ramp up on the code base and trims down the time it takes to find where to make a code change.
Best practices:
- Keep it short, the longer it is the less likely is to stay up-to-date
- Specify the things that are most unlikely to change (again to keep it up-to-date), this also gives a frame of reference like landmarks on a map
- Don’t link directly to code since links go stale
- Make it highly visible so engineers go read it often
See also:
- Software architectural patterns, having a cohesive architecture makes it easier to document
- It should be obvious to spot if there is conceptual integrity by reading the architecture document
Published
-
An Antilibrary Reminds Us of What We Don't Know
An antilibrary is one’s collection of books that they have not read. These tend to accumulate and can cause some anxiety in people. However, it’s actually a good reminder of intellectual humilityβconstantly seeing what we don’t know and might never know.
See also:
- Essay - Learning how to read for how to absorb the books one does read
Published
-
All Problems in Computer Science Can Be Solved by Another Layer of Indirection
This is a quote attributed to David Wheeler, an early computer scientist who also invented subroutines among other things. Indirection refers to operating on a higher level of abstraction by implementing indirection such as dynamic dispatch or creating object hierarchies in object oriented programming. However, too many layers of indirection can also cause duplication of lower level code so this popular adage is sometimes suffixed with “except the problem of too many layers off indirection”.
Published
-
Choose Boring Technology
A counter response to the growing sprawl of technologies that argues boring technology (tried and true, more mature) is far more effective than the latest shiny tool that gets popular on HackerNews. Using the right tool for the job is often used to justify some new thing, but quickly dissolves when teams write down exactly the issues with the current stack that are not meeting their needs.
Published
-
Writing Is Like Getting Naked in Public
Writing and sharing it is analogous to walking around naked in public. You open yourself up to judgment of others and everyone can seemingly see every flaw. However, once you are ok with that it can become liberating. For example, this video of Neil Gaiman talking about his journey as a writer and overcoming the feeling of judgment.
Published
-
ASO
An administrative services organization (ASO) is an outsourcing provider for HR related administrative work. This is similar to a PEO (professional employer organization), but without co-employment. It is significantly less expensive than a PEO because the ASO does not carry employment-related liability.
Published
-
Italian Futurists Tried to Ban Pasta
In 1930, Italian Futurists led by Filippo Tommaso Marinetti declared that pasta should be replaced with futurists foods and in the meantime, rice. He co-wrote ‘Manifesto of Futurist Cooking’ which stated that pasta was the cause of Italy’s problems and holding the country back from being a technological powerhouse. Benito Mussolini supported the futurist ideas and, if not for Mussolini’s need to court an ally in Hitler during WWII (who hated futurism causing Mussolini to distance himself from Marinetti), they might have succeeded in banning pasta.
Published
-
No Straight Line Hierarchies
When organizing the information architecture for a website of applications, there should be no straight line hierarchies. This happens when there is a hierarchy of items, but one of the categories only contains a single item. This is confusing to users and unnecessarily adds another layer for users to traverse.
See also:
Published
-
Information Architecture
This note does not have a description yet.
Published
-
Continuous Integration
This note does not have a description yet.
Published
-
Benchmarking Results Can Be Very Different When Run in CI Tools
Most CI (continuous integration) tools run inside VMs in the cloud sometimes nested in other VMs. This causes pauses in execution as the VM may be applying different techniques to manage multi-tenencyβthrottling, pausing execution, and so on. Benchmarking code can have different results compared to running locally on your machine for this reason.
See also:
Published