496 stories

Thursday, May 14, 2020 - the world computer: a marginally coherent bathtub rant

1 Share

Thursday, May 14, 2020

the world computer: a marginally coherent bathtub rant

I was pondering Amazon just now, as I sat in the bathtub sweating profusely and reading an installment of The Murderbot Diaries on an old e-ink Kindle in a sandwich baggy.

I started thinking about how I bought a DRM-free edition of the book somewhere besides Amazon and jumped through several hoops to get it in a readable format on the Kindle (a device given to me by a former employer so I could participate in a book club for reading the blend of self-help, technical propaganda, and management porn that the class of people who go through startup incubators pretty much swim in).

And then I thought: For fucksake, the sheer futility of this kind of exercise, when we as people who read books all more or less live inside the machinery constructed by Amazon. I mean, sure, I have a copy of a book that I can stash for later and read on some other gadget, which has some practical value. But if you think of it as some minor act of resistance to the bullshit status quo… I mean, it feels good, I indulge in this kind of theatrics all the time, but fundamentally Amazon still owns publishing and for fractally similar reasons total assholes still control most of the code on pretty much every device on the planet.

From one reasonable but doomed point of view, the Kindle is a special-purpose computer I own. But that elides a whole lot of its essential nature, doesn’t it? What the Kindle really is: A fragment of Amazon’s computer that happens to be physically located in my house, interfaced with both my credit card balance and my brain.

And then I thought: We’re over the threshold. It’s not so much that there are a lot of computers. 20 years ago there were a lot of computers. Now it’s more like there’s one massive computer and we’re all inside it. We’ve collapsed into the state where cyberspace isn’t just a meaningful concept; it’s very nearly coterminous with human existence.

The same thought from a different angle: I was reading a thread about this pretty interesting piece of desktop software, and someone said:

This does look intriguing, but I can’t help but be disinterested in it because it doesn’t look like you can share and collaborate over the Internet.

And I thought: Right. This is where we are. Abstractions like “a kind of file that this software can read” have become implementation details for the technical class. Even for the technical class, what doesn’t open onto the network is essentially dead. And in an age and architecture when scale and corporate platform availability (Android, iOS, Facebook) are prerequisites for meaningful participation, “the network” means what’s wholly owned. The network’s the computer, the computer is the megacorporation.

But that understates the case. The meta-megacorporation is the network is the computer. Amazon doesn’t own the whole machine, or Microsoft, or Apple, or Facebook, or Google, or the governments of [the United States, China, Russia, …]. Vast territories are delineated within the network, but their boundaries are permeable and ill-defined. It’s impossible to cleanly disentangle client hardware from operating systems from databases from protocols from supply chains from datacenters. Just as it’s impossible to disentangle computation from the flow of money, the flow of goods, the flow of surveillance, the software-riddled cognitive state of populations. Scale permeates everything, even scale.

So: There’s a computer and most of us live there now.

p1k3 / 2020 / 5 / 14
tags: topics/amazon, topics/business, topics/murderbot, topics/reading, topics/sfnal, topics/technical

Read the whole story
87 days ago
Share this story

Some Economic Responses to the Coronavirus Recession

1 Comment and 2 Shares

In response to the spread of COVID-19, the economy appears to be in recession. Lawmakers are scrambling to respond to the recession with many ideas floating around about how best to do so. Below, I outline a few responses that I think would be wise.

Welfare Expansion

In a normal recession, the proper goal of a policy response is pretty simple: increase output and employment by directly or indirectly increasing aggregate demand. Many proposed responses to this recession have fallen into this typical model. But, strictly speaking, this model does not really make sense for our current situation.

Insofar as we are attempting to limit the spread of a virus, we should not be trying to increase employment and output. The only work that should be done is work that can be done in isolation or work that is absolutely necessary. All other work and its associated output should cease.

This is an unfortunate feature of the current recession, but it also simplifies the policy debate considerably. Since we are not interested in job creation, we do not need to have the usual disagreements about how best to do that. Since we do not want very many people working, we do not need to debate about whether the low employment level is because employers aren’t hiring or because the unemployed aren’t seeking work.

Instead, the only question we need to answer for individuals is how to keep them financially solvent during the disruption. In a well-constructed society with a good welfare state, the system would already be set up to handle these kinds of disruptions. The shocks people are going to face in the coming months — mainly unemployment and leave for sickness and caregiving — are shocks that already hit people all the time in our society. We should already have good benefits for those shocks. But we don’t. So we’ll have to build them on the fly probably on a temporary basis.

The first thing we should do is expand unemployment benefits. The benefit duration for ordinary unemployment benefits should be increased to one year and the benefit amount should be increased to 100 percent of prior earnings up to $8,333 per month. In addition to the changes to ordinary unemployment benefits, a new basic unemployment benefit should be established that is equal to at least the one-person poverty line, which is $1,063 in the 48 contiguous states. Any unemployed, non-elderly adult who is not eligible for ordinary unemployment benefits would be eligible for the basic unemployment benefit.

The second thing we should do is create a sickness allowance for those who need to take leave from a job because they are inflicted by the virus. The allowance duration would be one month and the benefit amount would be 100 percent of prior earnings up to $8,333 per month. Employers can pay the allowance themselves and be reimbursed by the government. If they do not, then the employee can get the benefit directly from the government.

The third thing we should so is create a family leave benefit for those that need to take leave to care for family members due to various disruptions such as school closures. The benefit duration would be three months long but would otherwise be structured like the sickness allowance.

These benefits would directly address the kinds of disruptions people will face that will cause them to become financially insolvent. Insofar as this may not be enough and people might fall through the cracks in other ways, it would also be wise to send cash out indiscriminately, such as through a $1,000 per month universal cash benefit.

Bailouts for Equity

Many companies will require bailouts to stay afloat due to massive contractions in revenue, e.g. airlines and hotels. These companies should be bailed out with cash from the government but only in exchange for new stock issued by the companies. This is what we did with General Motors. It is what any other investor would require of these companies. Structuring the bailout as cash for equity ensures that, once the recession has passed and the companies bounce back, the public gets the benefit of their investment. It would also establish substantial public ownership that we should hold on to permanently.

Social Wealth Fund for Stocks

The stock market is collapsing as the prices of the shares of all companies are declining dramatically. Investors are selling off their stock at increasingly lower prices and putting their money into cash and treasury bonds. This has driven the interest rates on treasury bonds to their lowest levels ever seen.

The federal government should respond to this situation by selling trillions of dollars of new treasury bonds and then plowing the cash from those sales into stock purchases. Similarly, the federal reserve should expand its balance sheet by creating new money and buying corporate stock with it. The stock purchased through these two mechanisms should then be placed into a social wealth fund. By buying these stocks at rock-bottom prices with money borrowed (or created) at rock-bottom interest rates, the federal government will help stabilize financial markets while also ensuring that the public reaps the windfall when the stock market climbs back up after the recession is over.

Read the whole story
147 days ago
"The federal government should respond to this situation by selling trillions of dollars of new treasury bonds and then plowing the cash from those sales into stock purchases. Similarly, the federal reserve should expand its balance sheet by creating new money and buying corporate stock with it. The stock purchased through these two mechanisms should then be placed into a social wealth fund. By buying these stocks at rock-bottom prices with money borrowed (or created) at rock-bottom interest rates, the federal government will help stabilize financial markets while also ensuring that the public reaps the windfall when the stock market climbs back up after the recession is over."
Share this story

Skip-level questions for software engineers

1 Share

Skip-level meetings are meetings at a regular cadence between yourself and the person two levels above you in the corporate hierarchy.  Thus “skipping a level”.  If you are a  software engineer who reports to a line manager, your skip level could a senior manager, a director, or even the CTO.  It  depends on the organizational structure where you work and who your manages your manager.

Photo by Bruno Nascimento on Unsplash

There are many articles that list questions for managers to ask during skip levels.  But what questions should a software engineer bring to the table? Think about the goals of the meeting. What do you want to learn more about from their perspective in the organization? Here are some suggestions:

What do you think the top priority is on our larger team these days and why? (aka what problem is keeping you awake at night)

How do you think the priorities of the organization will change within the next quarter or the next year?

Bring a story to showcase your work during the meeting. Talk about a recent project you  worked on and the impact it had in a context calibrated to their interest.  They might not care about the deep technical details of how you deprecated underutilized services or refactored a code base to reduce technical debt.  However, they will care that your project reduced infrastructure spend or made it easier for others to get up to speed and contribute to the code base.

If you’re interested in being promoted and this manager is part of the approval process, ask them about their perspective on the promotion process.  Are there specific items on your engineering ladder that they view as especially critical? For instance, how do they view the importance of collaborating on cross-team projects, mentoring other team members, or presenting talks at conferences?

Conversely, the manager will probably ask for feedback on your manager and how they are performing in their role.  This question can be a delicate balance because of the inherent power differential. Your manager decides how much you are paid, what projects you work on and writes your performance review.  However, managers need to improve their skill set too and the only way to do this is through feedback.  If you feel safe to provide it through your skip-level meeting, please provide feedback on how your manager can better support you and the team.  Knowing how to manage your manager, or “managing up” is a skill learned through practice and experience.

What other questions are useful in a skip-level meeting?

Read the whole story
167 days ago
Share this story

Synchronous Messaging: We’re Live.



After a nine month leadup,, our Matrix-based replacement for IRC, has been up running for about a month now.

While we’ve made a number of internal and community-facing announcements about progress, access and so forth, we’ve deliberately run this as a quiet, cautious, low-key rollout, letting our communities find their way to chat.m.o and Matrix organically while we sort out the bugs and rough edges of this new experience.

Last week we turned on federation, the last major step towards opening Mozilla to the wider Matrix ecosystem, and it’s gone really well. Which means that as of last week, Mozilla’s transition from IRC to Matrix is within arm’s reach of done.

The Matrix team have been fantastic partners throughout this process, open to feedback and responsive to concerns throughout.
It’s been a great working relationship, and as investments of effort go one that’s already paying off exactly the way want our efforts to pay off, with functional, polish and accessibility improvements that benefit the entire Matrix ecosystem coming from the feedback from the Mozilla community.

We still have work to do, but this far into the transition it sure feels like winning. The number of participants in our primary development channels has already exceeded their counterparts on IRC at their most active, and there’s no sign that’s slowing down. Many of our engineering and ops teams are idling or archiving their Slack channels and have moved entirely to Matrix, and that trend isn’t slowing down either.

As previously announced, we’re on schedule to turn off IRC.m.o at the end of the month, and don’t see a reason to reconsider that decision. So far, it looks like we’re pretty happy on the new system. It’s working well for us.

Read the whole story
172 days ago
Boulder, CO
172 days ago
Share this story

Pete Buttigieg’s Health Care Plan Is A Joke

1 Comment and 2 Shares

The health care debate has popped back in the news again, as Buttigieg attempts to gain ground in the primary by attacking Medicare for All. Buttigieg’s health plan has mostly avoided scrutiny in the debate so far, which is a shame because it is so bad that it borders on comical.

Impossible Enrollments

In the first part of Buttigieg’s plan, he says he is going to automatically enroll the millions of uninsured people with incomes low enough to already be eligible for free insurance:

Over half of people with no insurance are eligible for either free insurance or an affordable insurance option. Anyone eligible for free coverage in Medicaid or the public option will be automatically enrolled, and those eligible for subsidized coverage will have a simple enrollment option.

Upon reading this, you should wonder to yourself: how on earth is the bureaucracy going to be able to automatically determine, in real time, who the low income people are that are eligible for free insurance?

Remember, the people he is talking about here are not people who come into the welfare office and fill out forms recording their income information. These are the people who, despite being eligible, never come into the system at all. And so to automatically enroll them, you have to somehow find them. But how would you go about doing that?

When you follow Buttigieg’s citations, you wind up at a Third Way report that says “an estimated 14.2 million people…are eligible for free coverage” in our current system but don’t sign up for it.

When you follow Third Way’s citations, you wind up at a Kaiser Family Foundation report that used the Current Population Survey (CPS) and county-level exchange data to determine that around 14.2 million uninsured people are poor enough to either be eligible for Medicaid or a premium-free bronze plan. But the CPS data they use does not provide real-time data on when people become eligible for these plans. Instead it samples a small percentage of US households many months after the end of the year. You can use the CPS sample to retrospectively estimate how many people must have fallen into this category, but you cannot use it to prospectively identify individuals in this category and automatically enroll them.

When you keep going in the Third Way report that Buttigieg cites to, you eventually get linked to the Pathway to Universal Coverage Act of 2018, which is apparently supposed to be the way we administratively tackle this automatic enrollment challenge. The problem here is that the bill doesn’t actually provide any way of identifying eligible people for automatic enrollment. Instead it proposes granting money to states so that maybe they can innovate a way to do this.

Nobody has any idea how you could possibly identify people in real time who slip into eligibility but never go to the welfare office to fill out the forms. This is because it is not possible. Income information is not reported in real time. Household changes are not reported in real time. For as much as the left gets dinged for its belief that the bureaucracy can accomplish great things, it is really highly-targeted centrist plans that reveal the most insane levels of optimism in the capabilities of the bureaucracy.

This is, in a nutshell, what is wrong with “technocracy” as it has come to be known in the discourse. What masquerades as technical competence and a light touch is, more often than not, really science fantasy delusions about what a state can actually successfully administer.

Enormous Individual Mandate

After his administratively impossible proposal to automatically enroll everyone with incomes low enough to get a free plan, the second prong of Buttigieg’s universal coverage approach is to retroactively enroll everyone else who is uninsured. The plan is vague about how he will do this, saying only:

A backstop fund will reimburse health care providers for unpaid care to patients who are uninsured. Individuals with no coverage will be retroactively enrolled in the public option.

By itself, this text raises more questions than it answers. It tells us clearly that uninsured people who show up to health care establishments will be cared for and that the government will pay for it. Then it tells us uninsured people will be retroactively enrolled.

But does this mean only people who went to the doctor that year will be retroactively enrolled? In that case, it would never make sense for anyone to buy insurance because they could always wait and see if they need it and then get retroactively enrolled.

Or does it mean all uninsured people will be retroactively enrolled, in which case this is just a sly way of saying Buttigieg’s proposal is a supercharged version of the wildly unpopular Obamacare individual mandate?

Jeff Stein at the Washington Post got to the bottom of this question in December and reported that it is the latter: the Obamacare mandate on steroids. Under Buttigieg’s plan, rather than paying a $695 fine at the end of the year if you are uninsured (as in the now-repealed Obamacare mandate), you could pay a fine as high as $7,000. This sort of lump sum shock is going to wreck most of the households hit with it and be even more of a political disaster than the much more modest Obamacare fine, which was itself a bit of a political disaster.

More Expensive Than Medicare for All

Buttigieg’s own effort to defend his plan is to make big-number claims about how Medicare for All will cost $30 trillion or $50 trillion. The suggestion of these attacks on M4A is that his plan is much cheaper. But in fact, it is clearly more expensive, at least when we look at what matters: total national health expenditures.

The right-wing Mercatus Center released a report that showed that Sanders’s Medicare for All plan actually costs $2 trillion less (between 2022 and 2031) than our current system. This is because lower drug prices, lower reimbursement rates, and lower administrative expenses more than completely offset the higher number of insured people and higher amount of health care utilization.

Buttigieg’s health plan is too vague to score in any kind of precise way, but it is clear enough from its text that it will cause national health expenditures to go up, not down. This is because it insures 30+ million more people but does very little to lower unit prices. The increase in the insured population and resulting utilization increases should more than overwhelm his puny cost-cutting measures, meaning that the total health bill under ButtigiegCare is actually higher than the total health bill under M4A.

So when you put it all together, what we have with Buttigieg’s plan is a proposal that combines administrative impossibilities with an extremely unpopular mandate and then delivers a system that provides less coverage at higher cost than Medicare for All. In short, a joke.

Read the whole story
182 days ago
sorry, uspol
Share this story

AMA: I’m a (senior) staff engineer panel

1 Share

Last week, my colleague Chenxia Liu and I arranged a panel at our Berlin all-hands meeting called AMA: I’m a (senior) staff engineer. Our goal for this panel was to provide a Q&A session where staff and senior staff engineers could share their stories what that a typical day in that role looks like, how their career progressed to that level and their advice for others interested in the role.

Tiergarten in Berlin at dusk.  Or the next bend in the road of your career.

Everyone company’s career ladder for individual contributors is different.  At Mozilla, the change for senior engineer to staff engineer is the progression where the role changes to be substantially more self-directed. You aren’t just landing code to address issues identified by your manager or peers.  Your role is to determine what problems the team should focus on.  What value will solving these problems bring to the business?  How can you elevate the work of your team from a technical perspective? How can you level the skills of early career engineers on your team? As a result, the promotion to staff engineer requires promotion paperwork to be approved by higher level of management than the individual’s direct manager.

Ahead of the panel, we reached out to five staff or senior staff engineers and asked them to participate.  We reached out to people from several geographies and domains of expertise within the company and also different demographics.  The day before panel, Chenxia arranged a lunch with the panellists so we could share the logistics of the panel, proposed initial questions and allow the panellists to get to know each other a bit before the session.  We also shared a doc in a company wide channel where attendees could add questions before the session.

The day of the session, we didn’t know what to expect.  How many people would show up?  Was this a topic people were interested in? Our modestly sized room quickly filled up to to state where people were sitting on the floor and there wasn’t enough room for all the people to enter the room.

During the panel, we started out with some proposed questions and then moved on to audience questions.

  1.  Panellist introductions
    1. Briefly describe your role, where you work (org), where you live, what a typical day looks like
  2. How is your job fundamentally different from being a senior software engineer?
    1. Some examples of the class of problems
    2. How to deal with challenges
  3. What’s the role of mentorship, both mentoring and being mentored?
  4. Can you describe the difference between mentorship and sponsorship and how that contributed to your success?
  5. What was the most important skill that you developed in your previous role that you use in your current role?
  6. What is the process of promotion from your perspective?
  7. What is the actual process for promotion from a manager’s perspective?
  8. What advice would you give around leading a team? How does this change based on the seniority of the team?


I think this was a really successful panel and thought I’d share this approach to others in case it could be useful at your organization.  As engineering managers, there is a power differential when we talk to the people on our teams about their career progression.  It is the role of the manager to coach their reports to grow their career but that is often limited to their own previous experience.  Learning from the experiences of other staff and senior staff engineers is really valuable, as their are many paths to grow your career.  In fact, you don’t even need a panel. One thing I suggest for people who want to move into a new role is not to just talk to your manager, but talk to a peer on your team or another team who is in that role to learn more about their experience.

Screen Shot 2020-02-04 at 4.36.57 PM

We received really positive feedback on the panel and hope to do it again.  From Emily Toop, an engineering manager at Mozilla.

I’d like to call out Chenxia and Kim for doing an amazing job organizing the “I’m a (senior) staff engineer, AMA” event yesterday. It was excellent from multiple angles, but from a diversity perspective it was especially fantastic. Along with giving insightful and intelligent answers, I felt that backgrounds and demographics of the five panellists helped to make almost everyone in that room feel as if they were represented in some way, and that there was a path to success for someone who looked like them. Well done.

Read the whole story
188 days ago
Share this story
Next Page of Stories