• Understanding Michael Porter (Literary Notes)

    I’m currently reading and taking notes on Understanding Michael Porter by Joan Magretta.

    ISBN: 9781422160596

    What is competition

    Strategy explains how an organization faced with competition will achieve superior performance.

    If there were no competition there there would be no need for strategy or anything to outperform.

    Thinking about competition as being the best is wrong and leads to competitive convergence. Over time, everyone looks alike and the only distinguishing difference is price (e.g. airline tickets, PCs). This erodes value for customers and companies.

    War as a metaphor for competition is wrong. In business, there can be multiple winners so competition is more about serving customer needs than demolishing rivals.

    Sports as a metaphor for competition is wrong. In sports there is one set of rules to be the best in. Companies can choose to make their own game.

    Strategic competition is competing to be unique. Unique in value you create and how you create it. The focus is on creating superior value for the chosen customers, not imitating or matching rivals.

    Competition is more like the performing arts than sports or warfare. It’s positive sum and innovative not zero sum and imitative.

    Five forces

    Most people think competition is a direct contest between rivals. Competition is about earning profits not winning a sale.

    The industry’s structure is defined by:

    • Intensity of rivalry among existing competitors
    • Bargaining power of suppliers
    • Threat of substitutes
    • Threat of new entrants

    The structure explains the industry’s profitability.

    The strength of each force varies but are present in every industry.

    Industry structure tends to be stable over time. Things change but structure takes a long time to change.

    Profits is more complex with producers, suppliers, customers, and even future entrants.


    Published

  • Web Browser in Emacs

    There is a builtin emacs web browser (eww) but it’s text-based. There are a few options for getting an actual browser in emacs.

    Using xwidget-webkit

    Update: Emacs 29 has vastly improved support for webkit, including multiple instances in buffers and it seems more stable

    You can compile emacs to include xwidget and use xwidget-webkit-browse-url.

    I found this to be significantly better than EAF. It works with buffers the way you expect. You can even get to the console by right clicking and selecting ‘Inspect element’.

    The railwaycat homebrew formula for emacs is the best way to get xwidget support on a Mac.

    brew install emacs-mac --with-natural-title-bar --with-native-comp --with-xwidgets
    

    So far the only downside I can find is that you can’t open more than one browser and it crashes somewhat regularly.

    Setting up eaf using straight

    The EAF (emacs-application-framework) package integrates a number of apps into emacs. The browser is a full webkit browser that is overlayed onto a buffer.

    It works but it’s really janky. If you move the emacs window around the browser window might not move. It doesn’t work in fullscreen.

    Installing using straight.el and use-package:

    (use-package eaf :straight (eaf :type git :host github :repo “emacs-eaf/emacs-application-framework” :files (".el" “.py” “core” “app” “*.json”) :includes (eaf-browser) ; Straight won’t try to search for these packages when we make further use-package invocations for them :pre-build ((“python3” “install-eaf.py” “–install” “browser” “–ignore-sys-deps”) (“npm” “i” “-g” “mac-app-frontmost”))))

    (use-package eaf-browser :custom (eaf-browser-continue-where-left-off t) (eaf-browser-enable-adblocker t))


    Published

  • Start a Personal CRM as Early as Possible

    Now that I’ve used a CRM from scratch for startup sales and support, I’m coming around to the idea that you should start a personal CRM as early as possible in your career.

    Seeing who you’ve talked to from which company over time can be incredibly useful for making connections. Those connections are useless if you don’t engage with them (meeting, hang outs, events, or social media). A CRM helps you keep track of these connections and offload some of the mental overhead of engaging with them.

    I’m not quite sure about separating personal/professional, but it is certainly important that your CRM is portable. You should not lose all of your connections when you change jobs.


    Published

  • Reflections on Two Years of Note Blogging

    It’s been two years since I started a note blog.

    Few people have reached out, mostly Twitter DMs from people trying to start a similar practice.

    Traffic is around 1000 clicks per month.

    I thought it would be nice to try to more deeply connect with visitors by adding a newsletter signup link. 7 people subscribed.

    People that see my notes are impressed with how much I write, but it’s not that much if you consider I do it every day.

    All the single-player benefits I talked about before remain two years later—clarity of thought, better recall, improved writing, and so on. I just wish it drove more conversation.

    Note blogging is not a friend catcher but it is the raw material for building one—starting a company, writing essays, producing a podcast, or building a community.


    Published

  • How to Use Twitter for Business

    Twitter is no longer viable. Use LinkedIn.

    Old version:

    Kinds of content to build your audience

    • Share stories: How others are solving an import problem or answering a key question
    • Threads that rollup interviews
    • DM people that match your target audience
    • Reply to older threads you created to give them new life

    Published

  • How to Start and Run a Remote-First Startup

    This guide is for founders starting a fully remote company in the United States.

    We’ll cover:

    • How to incorporate without an HQ
    • Avoiding common pitfalls with addresses and mail
    • How to hire remotely
    • Setting up payroll in multiple states and countries
    • How to stay compliant and avoid penalties
    • How to implement security and stay safe
    • Running the company asynchronously

    Incorporation

    Choose a unique-ish company name that is available in every state.

    Company names are unique by state (it’s actually much weirder than that: you can have the same name as a company that is a different entity type like an LLC and sometimes if the other company gives you permission). You generally can’t register a company that has the same name as an existing company even if it’s no longer in business and even if it has a different suffix like Inc and Corp.

    For fully remote companies it’s even more difficult. Through the course of growing the business you’ll end up operating in many states. If you are operating in many states, chances are you will end up registering as an out-of-state company at some point and guess what? You’ll need a unique company name there too. If it’s not unique you will probably need to register a DBA (doing business as). Multiply that by the number of states and Common Name, Inc. just generated a bunch of work for you forever.

    My company Mosey was originally Mosey, Inc. but we changed it to Mosey Works, Inc. for this very reason.

    How to check

    At a minimum you should check your home incorporation state and where your founders live. Your incorporation state because, well you can’t register the company if it’s not unique, and the state you live because you will probably register there too. California is particularly good at enforcing this.

    You can check if your company name is available by searching the Secretary of State’s business directory. Every state has a public registry (except Texas costs $1.00 for some reason?) that you can search to see if your company name is taken.

    You don’t need to match the company name to your product name, those are different things and names change. Try not to spend too much time optimizing this.

    Use a virtual mail address as your corporate and mailing address

    When you incorporate, make a virtual mailing address your company address and mailing address. Delaware is fine with this and so is the IRS. Most states and agencies are as well. Note: it should not be a P.O. box as most agencies and financial institutions will not allow you to use one. A PMB (private mailbox) works fine though.

    Don’t use your home address. You’ll get endless spam.

    Set up the virtual mail address to an address in the state you are headquartered.

    But where is a fully remote company headquartered?

    Many institutions don’t understand that there is no physical office for a distributed company. Your headquarters or main office is the place where the CEO lives or where you have the most officers CFO, Secretary, etc.. These people are all named when you incorporated.

    Use your virtual address everywhere. Tell your lawyers to use it. Tell your accountants to use it. Don’t use your home address. List it as the address when registering for any accounts. Yes you can change your address, but it’s a lot of work to change everywhere and you won’t want to deal with that later.

    Payroll

    Where you need to pay payroll taxes

    The address you provide to your payroll provider determines which state you are paying taxes in. If you live in CA you pay CA taxes. There’s a ton of nuance here, but don’t overthink it—where you live is where you pay taxes and where appropriate payroll taxes need to be remitted.

    The US tax code makes digital nomads unrepresentable. Working anywhere for an extended period of time (months) means there is likely a tax obligation there.

    You’ll need to set appropriate expectations with you employees about moving around. Every time they change their address for tax purposes, they are also going to have to file a tax return in that state.

    Workers compensation insurance

    Remote locations will use the employees home address. This is unavoidable but it’s not public as it is with the incorporation information. You will update your policy every time you have an employee in a new state.

    In my experience, the whole policy gets replaced each time you add a state which can be pain in the butt. You will get a big ol' packet in the mail each time.

    Registration and Foreign Qualification

    You should probably register with the SoS where the business is headquartered. This is a business decision, but just know that California will come after you fairly quickly.

    Whenever you register with the Secretary of State it typically comes with an annual report and some manner of taxes (a franchise tax, corporate income tax, excise tax, etc.). This is a meaningful amount of additional work and experts are split on whether you need to do this for remote hires at all.

    This is also where your address discipline is important. Information about each officer and owner will become public and you can typically search for it online. To protect privacy, use the business address and business phone number for each person. (If you already have a board of directors they will be listed too so keep privacy in mind).

    HR and Labor Laws

    Where you have employees is where you have to follow the state’s employment laws (in addition to federal laws). The rules change as you company changes and as legislation changes. Then there’s emergency orders and even retroactive requirements.

    Mandatory notices and posters

    This sounds silly for a technology company that is fully remote—where do I put the break room posters if everyone works at home? Well, it’s still up to you and if something happens (it’s very easy for someone to complain to the Department of Labor) those seemingly unimportant notices are what is going to get you into trouble. One way to look at it is it doesn’t matter til it matters, but a better way is to treat this as part of being employee friendly and helping them understand their rights.

    Taxes

    [More here soon]

    Required benefits

    [More here soon]

    Hiring the team

    Timezones

    Something I see startups do wrong is hiring in timezones that don’t allow for enough overlap time

    A good rule of thumb to start with is that everyone should work from a timezone within three hours of each other. Any more than that and scheduling becomes a meaningful barrier to collaboration.

    As a simple example, consider this scenario. You need to schedule an important meeting. You don’t want to annoy the attendees by scheduling over someone’s lunch or making them stay up late or wake up early. Everyone works a standard 9am to 5pm.

    Timezones Hours overlap
    2 TZ, 3 hours apart 4
    3 TZ, 3 hours apart 3
    2 TZ, 6 hours apart 2

    Is having friction around meetings a bad thing? Ideally no, practically yes. Put another way, where do you want to innovate—collaborating as a distributed team in many timezones or on your product?

    Expectations for working hours and working environment

    Greater flexibility in work location is not the same as flexibility with working hours. It’s important that the team has consistent working hours so that synchronous communication and collaboration can happen at predictable times.

    Similar to the issue with timezones, working hours makes it easier for the team to get their work done with less hindrances. Irregular work hours leads to bad habits like ‘making up hours’ at night or over the weekend.

    Working environments also impact the team. Reliability of internet connection and background noise is a good proxy for the quality of a remote team’s working environment. Bad internet connection impacts everyone you work with and slows everything down. Noisy and distracting environments similarly effects the quality of the individuals work and whomever they are working closely with.

    Make accommodations based on people’s needs, but be consistent and explicit about expectations.

    Remote teams need to be more deliberate about everything.

    Setting up async communications with the early team

    Just about anything works with a team of less than 5 people, but I’m of the belief that writing and async work is a practice that makes sense to develop from day 1.

    Why writing? Writing is thinking and working out your thoughts ahead of time prevents meetings and leads to better ideas.

    Security

    As a remote team your bar for security needs to be higher.

    I would recommend starting with GSuite right away. Gmail is ubiquitous at this point, but the other important part is using Google as an authentication solution. Logging in with a google account removes storing lots of passwords and makes automation easier to revoke access if someone leaves. For example, you can disable logging in with anything by Google in Slack.

    Everyone should use a password manager using a company account. 1Password is great for this. Set the expectation early that credentials should be stored and passwords should be generated using a password manager. Don’t try to clean this up later, get it right from the start.

    Do you need a VPN? I’m kind of split on this. Yes you have little control over the network that remote employees use to do their work, but the combination of the above two items helps mitigate them. At some layer, you need to trust the network (even with a VPN), but it seems reasonable to skip the VPN until you really need it.

    Infrastructure

    There’s plenty written on this topic already so I won’t repeat it at the risk of getting it wrong. If you’re dealing with sensitive data (who isn’t?), start from a strong foundation because it’s easy to iterate on early when you have no data.

    My two cents, outsource this completely using some PaaS, or go all in on the AWS ecosystem (IAM for authentication, KMS for encrypting secrets, VPC to lock down ingress/egress) right away. Either way, pretend laptops will get lost or stolen (they will)—there’s a greater chance of that happening as remote teams are more mobile.


    Published

  • Past Experience Is a Repetoire Not a Playbook

    There’s a tendency for new people joining a company to immediately draw from their past and implement the things they’ve seen succeed but there is danger in treating experience as a playbook. It can be introduce prematurely and become too much process at the wrong time. It might not match the context of the new environment and cause more problems.

    To avoid these common pitfalls, it’s best to think of past experience as more of a repetoire that is both a way of pattern matching on problems and a catalog of potential remedies. Thinking about the shapes of problems encourages critical thinking about the situation and what is an appropriate thing to try next. This approach is adaptive and error correcting increasing the odds of success in more situations.

    Another way to say this is to avoid working with experienced people with a heavy survivorship bias in favor of experienced people that are well practiced fallibilists.

    See also:


    Published

  • Reactionary Politics Is a Dead End

    Political views based on a reaction to something else (e.g. wearing masks, anti-science, a decision) is a dead end because it says nothing about what you want from this world. The ideology is entirely dependent on the other thing to react to. In the absence of the reaction there is no substance.

    Take the politicization of mask mandates. Currently, there are no lock downs or mask mandates anywhere. What remains to those that aligned with anti-maskers? What do they want and where does it go? It’s a dead end.

    (I overheard this in the car listening to a podcast I didn’t catch the name of)

    See also:

    • Slavoj Žižek likes to say about the storming of the bastille in the French Revolution, “and now what?”.
    • One way to think about reactive politics is identity. Identity is a powerful motivator for behaviors. By politicizing more of these reactions it makes it easier to align with the rest of a platform and keep you there.

    Published

  • The Grug Brained Developer

    The grug brained developer is the counterpoint of the big brained developer.

    They espouse the following principles and opinions:

    • Complexity demon is the enemy
    • Prototyping prevents big brained developers from complecting
    • Say ‘no’ to things that cause more complexity, but also say ‘ok’ and compromise
    • Don’t factor your code too soon, wait for cut points to emerge
    • Integration tests are the right balance between usefulness and safety
    • Agile is a scapegoat for when things go wrong (you didn’t do agile right!)
    • Keep refactors small, introducing too much abstraction summons the complexity demon
    • Understand a system before improving (Chesterton’s fence)
    • Microservices take all the hard problems, then adds network calls to it
    • Master your tools and keep improving them
    • Type systems make putting pieces together easier but big brain type systems focused on correctness are a great way to summon the complexity demon
    • Minimizing lines of code with ternary operators is harder to debug
    • Closures are like salt, there can be too much salt, callback hell is too much salt
    • Good logging gives you more clubs to whack bugs with
    • Fear concurrency, rely on simply concurrency models that are ideally stateless
    • Good API design doesn’t make you think too much, big brain API designers think too abstractly and should focus on implementation or the domain
    • Web development is splitting frontend and backend ending up with two complexity demon lairs
    • Fear Of Looking Dumb (FOLD) is a major power source for the complexity demon, saying it’s too confusing reduces this power
    • Nobody is an imposter if everybody is an imposter

    Read The Grug Brained Developer.


    Published

  • Endurance: Shackleton's Incredible Voyage Book Review

    A few thoughts about the book.

    I was reminded how much humans can endure and survive, even when faced with extraordinary misfortune.

    The whole “let’s be the first trans-Antarctic expedition” seemed contrived, but the fight for survival was certainly not.

    It seems outlandish that they crossed the open sea in a 22 foot boat. The James Caird looks like a large canoe.

    Ernest Shackleton and the entire crew never gave up. The final overland trek through South Georgia island, without tents or sleeping bags or much other provisions, was incredible. It was literally do or die.

    The Endurance’s misadventure is a monument to survival that puts life in perspective in a way that few things can. I’m reminded that I can endure much more than I think I can.


    Published

  • Myopia Is Increasing Rapidly in East Asia

    Short-sightedness is nearly ubiquitous in East Asia—80% of students and graduates have myopia in Hong Kong and Singapore. In South Korea, it’s 90%. For comparison, the rate of short-sightedness in California is 59% and in Europe its estimated to be 20-40%.

    One reason is that children are not getting exposure to enough daylight because they are sitting in classrooms all day. A recent study suggests that more time outside can cut the number of people who develop myopia.

    Read Short-sightedness has become an epidemic from The Economist.

    How might vision loss effect the world?


    Published

  • NYC Office Real Estate Value Declined Due to Remote Work

    In a paper about the impact of remote work on commercial office real estate found that value of offices declined 32% from the start of the pandemic. The authors also found that the effect is likely to persist in the long-run resulting in $500B of value destruction (or potentially redistribution someplace else, like home prices).

    We estimate a 32.95% decline in the value of New York City’s office stock at the outset of the pandemic. We estimate that remote work is likely to persist and result in long-run office valuations that are about 28% below pre-pandemic levels.

    Read Work From Home and the Office Real Estate Apocalypse.


    Published

  • Connected Work

    It used to be an anomaly, now it’s common place. It’s not remote work, it’s just work. We will surly laugh at ourselves in 20 years the same way we laugh at seeing people with big car phones in movies from the 80s—there are no car phones or house phones just a (cell) phone.

    This is the age of connected work. There is no here vs there, everywhere is here. If there is no office, all there is to design around is people and the connections that enable them to work together.

    Why would it ever be anything other than this?


    Published