Written by Douglas R. Hofstadter.
-
I Am a Strange Loop
Published
-
38% of Manhattan Office Workers Are in the Workplace
A recent survey from The Partnership for New York City found 38% of Manhattan office workers are in the workplace as of April 2022. Office employees that are fully remote dropped from 54% in late October 2021 to 28%.
While NYC is one city and it’s industries are not reflective of all jobs, it is the largest city in the U.S. and a pretty good indicator of where we are with remote work.
See also:
Published
-
Contingency Recruiting Doesn't Work Well for Early-Stage Startups
Contingency recruiting is not very effective for early-stage hiring. Since contingency recruiters get paid only if they are able to fill a job opening and charge 20-25% of the new hire’s first year salary, they tend to share candidate profiles with larger companies that pay higher salaries which make them more money.
Early-stage startups tend to get candidate profiles that the larger companies passed on. This results is less desirable candidates and a lower volume than if a startup were to do recruiting in-house.
Published
-
There Is an Iceberg of Content Within Organizations
There is so much writing that goes into running modern organizations but very little of it is ever seen. Every email, chat, document, slides, spreadsheets that gets produced is limited in distribution to a handful of people or teams. What you can observe from the outside is only the most polished published content.
So what?
A common complaint about writing is that it’s too hard to do. Yet, everyone seems to create prolific amounts of writing every day. There is more capability than people give themselves credit for.
How might this vast trove of content be utilized? Is writing primarily for communication so disposable that it ought to never be looked at again? Perhaps there is something there, maybe that’s how we can train a minto linter.
See also:
- An easy piece of advice to give about how to write more is to do it every day, but everyone already is
Published
-
Shake and Pull
An algorithm for working on hard problems is to shake and pull. Complex systems and problems are like a tangled up wire that by shaking (introducing randomness to open new paths) and pulling (stretching the system so there are no tangles) you can solve the problem quickly. If you were to pull without shaking you would tighten the knots which is like going depth first. If you were to only shake you wouldn’t actually try any new solutions.
Read The Only Algorithm for Hard Problems: Shake and Pull Gently.
See also:
- The author also likens this algorithm to “simulated annealing” where you are heating (shaking) and cooling slowly (pulling) which is also like product development: the path from concept to product is an annealing process
Published
-
Codespaces and Emacs TRAMP
While you can use Emacs in the browser using Codespaces, it involves getting all of your emacs config set up on Codespaces. By using the GitHub CLI you can also use emacs TRAMP over SSH to work in the Codespace instance from your local emacs.
To do that, update your
init.el
to create a new tramp method. (Copied this from the emacs-codeql readme).(let ((ghcs (assoc "ghcs" tramp-methods)) (ghcs-methods '((tramp-login-program "gh") (tramp-login-args (("codespace") ("ssh") ("-c") ("%h"))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c"))))) ;; just for debugging the methods (if ghcs (setcdr ghcs ghcs-methods) (push (cons "ghcs" ghcs-methods) tramp-methods))) ;; provide codespace name completion for ghcs tramp method ;; use C-j if you use ivy to kick in host completion (defun my/tramp-parse-codespaces (&optional nop) (let ((results '()) (codespaces (split-string (shell-command-to-string "gh codespace list --json name -q '.[].name'")))) (dolist (name codespaces) ;; tramp completion expects a list of (user host) (add-to-list 'results (list nil name))) results)) (tramp-set-completion-function "ghcs" '((my/tramp-parse-codespaces "")))
Install the GitHub CLI, authenticate your machine, and create a codespace.
brew install gh gh auth login gh cs create
Now you can use TRAMP to open files directly in your Codespace!
C-x C-f
then typeghcs:/
and use autocomplete to choose your codespace.Everything that works with TRAMP should work including
eglot
andmagit
.
Published
-
San Francisco Lost $400MM of Tax Revenue in 2021
San Francisco Mayor London Breed said that workers are not returning to the office which has resulted a loss of $400MM in tax revenue. Some of the reasons for this is fewer people in the city (while not an exodus, the office vacancy rate is more than 24%) but I suspect this is also due companies moving out of SF for tax reasons (Stripe moved to Oyster Point).
See also:
- NYC office real estate value declined 32%
- Other cities are competing for tax revenue from remote work
- With declining tax revenue, it’s more apparent that remote work will become a political issue
Published
-
Remote Work Will Become a Political Issue
Up to this point in the COVID-19 pandemic, remote work has been a buoy keeping many parts of the economy afloat. We’ve seen that working from home was so successful and fears of loss of productivity were unfounded. Now we are starting to see a reactionary movement that will find it’s way into political agendas—how to get workers back in the office.
It’s easy to dismiss this problem as a non-problem. Remote work is just work. The economy likes growing businesses because it creates jobs.
Who loses out when the number of people working from home increases? Commercial real estate is seeing their value decline considerably, cities are losing tax revenue. Millions of people without access to high speed internet and a home environment conducive to work creates inequality in remote work.
It’s a matter of time before a political party includes remote work into their platform or scapegoats it.
Published
-
35% of American Workers Have the Option to Work Remotely Full Time
According to a recent survey from McKinsey & Company, American workers say they have the option to work part time or full time from home (58% and 35% respectively). That’s roughly 55 million people in the US.
87% of people offered to work from home, take up the offer (either 5 days a week or some days per week).
Flexible work arrangement is the 3rd most important motivator of finding a new job—just behind “better career opportunities” and “greater pay or hours”. It also ranks ahead of “better health insurance”.
See also:
- The motivators for finding a new job seems to line up with this: half of Millennials and Gen Z would consider quitting if employers don’t allow remote work
- 25% of all job postings are premanently remote
- The survey found greater work challenges for those in partially remote and fully remote setups which doesn’t square with this survey’s result that remote work is correlated with happiness
- According to the U.S. Bureau of Labor Statistics, 45% of jobs can be done remotely which is far lower than what this study suggests (so take both reports with a bit more than a grain of salt)
Published
-
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
-
Investment Strategies That Only Work in a Bull Market
This note does not have a description yet.
Published
-
Distributed Content Discovery
One of the biggest challenge with distributed content networks and the fediverse is discovery. Platforms like Google, YouTube, Facebook, Reddit, Medium, have a distribution network built in that help users find your content. Commoditization increases the importance of distribution.
If we are to have an alternative to these networks, one where the content creator has more controls over the content they create, then there needs to be a way to consume content by discovering creators.
What might that look like?
Published
-
Crossover Investors Monetize Late Stage Startup Valuations
Like many financial services hedge-fund crossover investing makes money by charging fees for assets under management. They bring in more investors by showing gains in the market. In late stage startup investing, this creates the incentive to inflate valuations. By deploying larger amounts of money faster than traditional venture capital, hedge-fund crossover investors can win deals and push the valuation higher in subsequent rounds showing higher and higher paper gains.
As long as there is never a write-downs—which neither investors nor CEOs would want to do—it’s a great way of monetizing inflated startup valuations.
Unfortunately, this seems to be one of those investment strategies that only works in a bull market. Tiger Global lost $25 billion (and counting) as of June 2022 ($5 billion of that in their VC fund) making it the biggest loss in hedge fund history.
Read Late Stage Prisoners Dilema by Ranjan Roy.
See also:
- Write-downs are coming as inflation causes downward pressure on startup valuations
- Zero interest rate policy (ZIRP)
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 stableYou can compile emacs to include
xwidget
and usexwidget-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
usingstraight
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
anduse-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
-
Probability of a Recession (2022 Q3)
The probability of a recession in the near term based on estimates from economists at investment banks.
- Deloitte: 15%
- Morgan Stanley: 30%
- Goldman Sachs: 30%
- JPMorgan Chase: 35%
- Citigroup: 50%
- Deutche Bank: Likely
- Wells Fargo: Likely
(Source Dealbook)
See also:
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
-
Kardeshev Scale
The Kardeshev scale measures the advancement of civilization based on energy consumption. It’s a useful way for thinking about where extraterrestrials might be but also where we are in the progress of human civilization.
There are three levels outlined in the original paper but the scale was extended up to six by others.
- Able to harness all the energy that reaches it’s home planet (nuclear energy i.e. fusion not fission, would be needed to reach this)
- Able to harness the energy radiated by it’s own star (i.e. a Dyson sphere)
- Able to harness the energy of it’s own galaxy, drawing energy from multiple stars
See also:
- Energy as an approximation for technology seems reasonable given energy consumption grows in lockstep with economic growth
- David Deutch would argue that knowledge is the thing to measure—matter, energy, and evidence are all that’s needed for knowledge creation
- Abundance of energy also provides the potential for civilization destroying catastrophes: Fermi paradox and pessimism of energy economics
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:
- Chesterton’s fences exist in leadership and management too
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
-
Linking Time Crystals
In a recent experiment, researchers were able to link two time crystals together by placing them close enough that they could influence each other. The result was a combined time crystal that can represent two states, like binary. This is important because it means it’s feasible to interact with time crystals allowing us to create more complex arrangements. For example, someday this could be used to create a new kind of quantum computer.
Read Physicists link two time crystals in seemingly impossible experiment.
Published