10 Feb 2021, 21:19

How Teams will overcome individuals in an infinite world

My Android podcasting app (highly recommended by the way: zero ads, free, and free and open source software) tells me that I have 19 hours of queued content. Virtually all of this is deep enough that I can’t listen to it while doing anything else cognitively taxing, so it’ll likely take me several weeks of beach walks to burn down that list.

As pandemic life rolls on, I continue to explore different feeds and podcasts. Opportunity cost tells us, however, that one also needs to aggressively cull non-optimal feeds, as time spent exploring new content is time that cannot be spent consuming known to be good episodes.

Starting with a couple of podcasts and organically branching out (e.g. by checking out interviewee’s podcasts) is good, but I’m running into the problematic part of the Donald Rumsfeld 2×2 matrix. For those unfamiliar, it goes something like:


Image credit

Two interesting things immediately present themselves:

  • Known Unknown (KU): there are definitely awesome podcasts I’m not aware of

Briefly mulling that over leads to another, perhaps more important question:

  • Unknown Unknown (UU): There may be a better medium than podcasts for the type of content I like

Unknown unknowns are the spice of life

Unknown unknowns might make you uncomfortable. As far as I can tell, eliminating them (turning them into merely KUs) is basically the purpose of DARPA, a unique research organization that probably deserves its own post. I’m not nearly as concerned as the US government, but it’s undeniable that they might hold huge value for me personally. By contrast, there’s big potential losses if I don’t figure out something awesome.

Here are a few securities I’m tracking due purely to word of mouth; previously unknown unknowns to me, but not to my friends:

Needless to say, but this is not investment advice, DYOR, etc. etc.

Wish I knew about these a year ago

Brief intel on these companies:

  • Vegan stocks that several friends “recommended”
  • Blackberry, which someone had told me had morphed into a security company, and a solid one at that
  • NanoX - a radiation technologist told me about this company that does XRay “as a service”, charging by the XRay
  • Vital Farms, a dud over a year

Some will say that this selection is biased, and that’s fair. It’s true that it’s an artifact of my friends and acquaintances. Others will say I only showed winners. I didn’t, but that’s not unreasonable to think.

What’s the point? I had none of this information a year ago - all of this was unknown unknown to me. The only reason I got access to this information was that people in my life brought it to me, almost always on their own volition. It’s likely their priors about me inspired them: my general life strategy involves investment into equities, something that they probably learned about me quickly.

Put succinctly: a somewhat public, unique, and fundamental part of who I am inspired people around me to freely volunteer valuable information to me, without expectation of payment, a cut, or anything else! That’s awesome!

It’s not clear, though, what I should call these… relationships. Some were former co-workers who kept in touch. Some were vegan people I still speak with regularly. It’s weird to call them all friends, as we really don’t see each other that often and rarely chat for an extended period of time.

Perhaps there’s a better way to describe this modern form of quasi-friendship mixed in with hints of professional connection.

Teams are the new individuals

Previous humans had no accessibility to the infinite knowledge and, potentially, opportunity that the internet has brought to us. As farmers, most just worked to get enough food and sell the rest; tradesmen and guild labor largely had sealed fates (Smith is a very popular last name for a reason). With the advent of internet and explosion in tech, there are entirely new careers and disciplines being formed daily, based on some breakthrough or another. It’s useless to try to keep up on your own: even software engineers can only manage to stay abreast of a fraction of all the tech created there, AI researchers less so.

What’s an individual to do? Well, one could hard-commit into a career like law or medicine, trading off freedom for a (hopefully) solid setup. That’s a big gamble at a young age, though, and - at least for law - I’m not even sure if it’s worth it in 2021 (nb: not fact checked).

Alternatively, if you are in technology, you can fairly easily transition into… well, seemingly anything. Want to work on clean energy? Applied biology? Materials science? All of these disciplines could use technologists, and there are way too many of them to traditionally sift through; you’ll need to start with an area of interest.

Or, perhaps you’re happy at your current job and someone tells you about a previously unknown unknown opportunity…

I predict that emerging trends will put the onus of cohesion into small, fairly tight-knit units of “teams” - quotes used due to lack of better term. Hell, there may be a social psychology term for this already, although I kind of doubt it, as it’s an artifact of the 21st century.

Let me set up some predictions for this world-changing entity:

  • Teams will be between 2-10 people. Any larger and the tax of intruders start to take place (“who are they?"). Previous team members need to immediately vibe with new members; teams will easily splinter if mediocre (alignment-wise) individuals are introduced.
  • Teams will play nicely with, but exist on a different plane than, communities, tribes, and other 100-ish human groups. Why? Teams are largely flexible, able to move across a country - or the world - to work on a new opportunity with another member. Communities are inherently immobile and location-dependent.
  • Teams will increasingly make money together while still being friendly. Making money during the day, then hanging out at night, will be commonplace - but not at all required.
  • Gatekeepers need not apply: teams freely share cool info and opportunities without any expectation of repayment. Since many team members will have traveled globally, there’s a willingness to accommodate.
  • Finances and resources are loosely shared. Team members may even set up in the same city - or, more likely, low cost of living area to work on projects together, or take a break between jobs. Think crash at my place but for extended time periods.
  • Critically, teams aren’t companies; inherently ultra-capitalistic motivations such as “I’ll only hire a complete expert so as to maximize output/profit” are anathema to the shared camaraderie and ability to work together on cool stuff.
  • A typical married couple/partnered is a decent proto-team:
    • typically 2 adults living in effective communism
    • The adults typically hang out a lot, but that isn’t mandatory
      • Some may even make money together
    • Unlike (some) partners, teams don’t mind a 3rd member
  • Teams allow individual identities to flourish (he’s our crazy privacy guy); the individual highly regards his identity and membership in the team.

In future posts, I’ll try to show you how I think teams will turn in to the most fundamental social unit of highly educated, largely technical, young workers, and how that might impact the world.

05 Feb 2021, 11:47

Social media: Intro, implications

It’s 2021 and people are creating (and consuming) more content than ever before. Or so I’m told. Should you become a content creator? After mulling over it for some time, I think it’s generally a good idea, but it’s a really tough hustle out there. Some observations follow; I’ll likely make a series out of this - alongside some changes to the blog to support a strategy I’ve finally committed to.

As far as I can tell, there are at least two important axes of social media:

Producer/consumer axis

The P/C axis is fairly cut and dry. Posting content is a very different manner of interacting with the platform than consuming it; not much more needs to be said here, but it’s important to present.

The more interesting one, in my opinion, is the informer/actor axis.

Informer/actor axis

The informer/actor axis is slightly more nuanced, but fairly easy to grasp. Weathermen, reporters, and similar are largely in the informer camp, frequently blasting out information that may have a very large benefit to you (avoiding a blocked road saves you an hour and a half).

On the other extreme, actors fill most of social media. This class includes social media professionals, such as models, “thinkbros” on Twitter (often having large follower counts and tweeting platitudes e.g. “time to grind”); it also includes your friend who posts way too much from exotic travel locales, those who are always arguing, and even the rare-but-popular posters. Many celebrities also wade around on this end, producing cheap-calorie political takes, attempting to signal their “interest”.

Some people are in the middle. These include politicians, who often pair a statement of fact about a vote, with some speculation about why it was important or what good it’ll do.

Around now, you’ll probably have a fairly good idea where you lie on both axes. When I used social media as a younger adult, I was heavy towards actor (pictures from exotic places, political debates) and heavy consumer. That led me to put some serious guardrails on my social media usage, including quitting for a time. Now that I’m scoping out the content game, that will have to change, but I’ll never fall for what the social media companies generally want from you - slavish consumption, driven by actors.

Avoid consuming content from actors

Social media thrives on engagement, and plenty of actors are there to play the part. Actors (maybe you?) get dopamine hits upon receiving likes and comments. They engage commenters, especially when disagreement comes up, getting into deep debates and arguments - or memes - all driving more and more time spent on the platform.

Now, if you’re making a living based off of that (model, celebrity, …), that may be a lane you’re willing to roll in. You’re almost certainly not, though, which means you’re at a table you probably shouldn’t be at. These platforms are engineered to keep people locked in - the attitude that you’re smarter than average or that you don’t spend much time on there are almost certainly provably false. Internalize your iOS weekly screen time report.

I’m now of mind consuming most content from actors on social media is an absolute sucker’s game and ought to be avoided. That may lead to some weirdness on a social level (“hey, you never engage with my posts anymore!") but I think it’s worth it. Doomscrolling, crushing stories, snaps, status updates, or any ephermeral content is super unfulfilling and may even leave you envious (I don’t have that [lifestyle, girlfriend, fill in the blank]).

Content from informers is a different story, but hard to filter out from the legions of actor junk out there. Tread carefully, including possibly multiple accounts if needed.

Where should you be?

Where you want to be depends on your long term goals. Mine, as of present, include:

  • Influence - including personal and professional
    • Consider someone who follows you on Insta with 20 followers (is he new here?) vs. 2x10^4 (this person is popular!)
    • similarly, with e.g. professional blog posts, articles
  • Potential connections
    • it’d be awesome to chat with someone who organically found your content and thought it’d be fun to have a chat. Super long term goal.
    • Similarly, for professional opportunities
  • Community creation
    • May be more trouble than it’s worth, but a group of commentators that your content brought together, in a medium you own, is really cool.

To achieve these, I’ll definitely need to produce content and probably do some acting. One thing I won’t be doing, though, is consuming. It’s just not worth it.

23 Jul 2019, 21:30

Learning Haskell: Session 1 - Stack

Learning Haskell

I spent the weekend learning some Haskell. My goals were:

  • learn a bit about the language in the trenches: is there any utility in learning more about this?

  • learn a bit about the toolchain: building, deploying, etc.

  • add a small plugin to xmobar, showing my age as a decimal number. Inspired by memento mori and trying to make the most of our limited time in this life.

    This is something I want to see increase slightly every day, as a constant reminder to get stuff done.

I figured the above would be a nice whirlwind tour: not enough to start monad engineering, but enough to defend myself.

Below are some notes and thoughts.


Stack is the build system I chose to use for the library and CLI. It seems a bit more modern and recommended than pure cabal, which ships with Haskell itself. Stack seems to provide a higher level wrapping around cabal to some extent, along with some other goodies like caching.

I also like Stack’s commitment to reproducible builds, creating an environment per-project with its own ghc, the Haskell compiler. I actually don’t even have ghc installed locally, so there’s no chance I’m mucking up the build by having things on my system’s PATH override any project-specific stuff.

The downside is that Stack can eat massive amounts of disk, as you’ll have a ghc for even minor versions e.g. 8.4.2 vs. 8.4.3. Something to be aware of.

Hacking on stack basically involved looking at the documentation and various YAML files, so nothing too painful, yet.


  • stack build - produce binary
  • stack run [args] - run directly from slack
  • stack ghc - if you need to shell out to ghc for whatever
  • stack ghci - start a repl

Wrap up

It was pretty painless getting set up with stack, and creating a CLI/library project.

Next up: Haskell coding, xmobar detective work, and more.

27 Jun 2019, 22:41

Learning org mode: Session 4

Today’s goals


Within emacs

  1. Format is [[file:../notes/plans.org][Plans]]
  • C-c C-o to open any link (may open up browser)
  • can also do email, http, etc.
  • also org specific things including:
    file:projects.org::some words                text search in Org file(31)
    file:projects.org::*task title               heading search in Org file(32)
    docview:papers/last.pdf::NNN                 open in doc-view mode at page
    id:B7423F4D-2E8A-471B-8810-C40F074717E9      Link to heading by ID

Next steps

Unknown at this point, perhaps org-capture or anything else that comes up.

26 Jun 2019, 23:30

Learning org mode: Session 3

I am feeling great about this system.

Today’s goals

  • learn tags, filtering
  • add custom tags
  • continue breaking apart single uberfile into plans, tasks.

Labels of interest

  • Professional
    • e.g. project based
  • Todo list-y
    • must - have to do it
    • easy - easy wins
    • fun - .
    • saidiwould - integrity

Within emacs

  1. C-c C-q for a drop down of existing tags
  • C-c a then sort by tags (m)
  1. I added several tags I think will be useful
  2. C-c C-s for scheduled task, which means when it starts (vs. due)
  3. also hella organized into smaller files for better focus
  • I really like how the agenda shows the source of the item.

Next steps

  • not sure, but have 2 more days allocated to learning, so I’ll figure something out.

25 Jun 2019, 18:24

Learning org mode: Session 2

Today’s goals

  • set up and learn org modules and org-habit
  • learn how to set up recurring tasks

Set up org modules and habit

I’m using prelude so this may differ.

Add to ~/.emacs.d/personal/custom.el

(require 'org)
(require 'org-install)

(add-to-list 'org-modules 'org-habit)

Restart emacs.

Set up habit tasks

See references below for inspiration.

Mine will be:

  • Daily
    • reflect on day
    • plan tomorrow
  • Weekly
    • review previous week
    • plan next week

Within emacs

  1. add items
  2. set TODO state
  3. set deadlines
  • Tue 23:00 - add time due date (not just day)
  • .+1d attempt to do every day but no catch ups if missed
  1. C-c C-x p - open property dialog
  • habit
  1. add tags
  • C-c C-q - :daily:, :monthly:, etc.

I also added tags. I am not sure I will actually use these, but for now, it’ll be something else useful to learn and search by (ideally).

Next steps

  • learn tags, filtering
  • figure out best way to add some custom tags
    • e.g. must-do, professional, product


24 Jun 2019, 22:31

Learning org mode: Session 1

I am spending this week learning org-mode. My motivation is better time tracking.

It’s quite powerful and even the guide is a bit obtuse, so I’m stealing this intro guide, but will be exclusively using keyboard shortcuts as I don’t even see the menu whilst running emacs -nw.

By the end of the week, I’d like to have a custom weekly agenda view, complete with some quotes, that can show my tasks for the week.

You may find this useful if you know a very little bit of emacs (like C-f for opening file type knowledge, nothing too intense). Follow along below.


  • emacs installed
  • org-mode installed

Within emacs

  • C-x C-f to ~/notes/tasks.org to create a file
  • add my example tasks
  • C-c t shifts state: TODO, DONE, normal
  • C-c d opens up calendar to pick due date
    • navigate with shift-arrow
    • . moves to today
    • +1w - one week from today
  • C-c [ - add this to agenda files
    • I am not sure how to cycle these files
  • C-c a - agenda mode
    • a - show weekly agenda
      • RET on item jumps to file

Looks like that’s the end.


I am going to add two items to my agenda, due today:

  • blog post on this, due today
  • figure how sort through agenda list files (no deadline)
  1. C-x b to open buffer
  2. add item 1
  3. C-c t to set TODO
  4. C-c d to set date, RET to set to today
  5. add item 2
  6. C-c t to set DONE on blog post

Next steps

Looks like there’s no more guide left to follow, so I’ll be paving my own road from here on out, barring some inspiration on DDG.

16 May 2019, 18:07

Kubernetes/kubectl crash course - engineering POV

Brain dump of various kubernetes/kubectl things before I forget them all. I’m coming from the deploying analytics side, not the person who sets up kubernetes side, so this will be a list of useful day 1 type stuff for anyone who is learning kubernetes practically via deployments and kubectl.


  • service - something with an IP/hostname you want to hit, e.g. a RESTful front end.
  • deployment - powers a service by specifying things like number of instances, and how ports are shuffled.
  • pods - basic atomic-ish unit that make up a deployment. An instance.

Suppose you want to stand up your RESTful analytic with 8 instances, available at foo.internal.com. Start with a service, then a deployment. Pods come via the deployment.


pacman -S kubectl

Get config file from ops-type person. Put or link in ~/.kube/config, then

kubectl config show

to make sure you’re running with the correct one.

Change contexts, if needed, for various projects.

Basic commands


kubectl get pods
kubectl delete pod ...

You can delete a pod to have K8s immediately kick another one off, useful for getting info about why things aren’t working


kubectl logs pod-name
kubectl logs pod-name --previous

Get logs, or see why app crashed before via --previous. Anything else, you probably need some log aggregation service (Helm/fluentd?)


kubectl deploy -f ./service.yaml
kubectl get services

Deploy services, which are sort of the interface between pods/containers and the rest of the cluster (and outside world).


kubectl deploy -f ./deployment.yaml
kubectl delete deployment your-deployment

Deployments power services by specifying instances and memory, ports, docker images, etc.

Interaction outside cluster

kubectl port-forward services/your-service 8080:8080

Test whether or not your API/service/deployments actually work.

Next up: how Terraform does all this for you.

25 Oct 2018, 21:49

The most important advice for up and coming *nix/BSD administrators

Here is the most important thing that all, new and old *nix/BSD admins should know about administering a machine remotely:

Always run any important administrative operations in a screen session.

Always run any important administrative operations in a screen session.

Always run any important administrative operations in a screen session.

You’re bound to lose internet at the most critical time.

Like when your BSD shell is sitting in vi waiting for you to manually merge in some changes.

Or when you’re arch package upgrades happen to make a destructive change that requires confirmation, but you weren’t paying attention.

Or you’re 4 hours into a huge build and the coffee shop is closing.

Get in the habit of doing screen -D -R any time you log in remotely and want to do administrative work. Put it on a sticky note next to your monitor. You will thank me later.

If you don’t know what screen is, just spend a few minutes learning it, even if you usually use tmux. It’s sort of like vi: the machine you’re working with probably has it by default, unlike tmux (maybe). The sixty seconds it takes to learn the basics are worth it.

01 Jul 2018, 17:03

Starting Over

I’m convinced that the most important skill in life is the ability to start a new skill, hobby, or effort from nothing.

Imagine you’re a native English speaker who wants to learn Amharric. You’re probably unable to verbally communicate with the language. It’s a different alphabet, so writing won’t help. You very well may be the least talented person in this skill in the room. Some may judge you based on your lack of ability instead of a positive bias as an expert in another field. No amount of reasoning, inference, or other parallel skills can help - you just have to sit down and learn. From scratch.

Of course, even experts are constantly being challenged in a somewhat similar if not so extreme manner. This is especially true in fields like technology, where new techs are always outpacing personal growth. But it isn’t limited to tech: business leaders are always, to some extent, growing and adjusting to competitors or other externalities, like loss of funding.

This can be especially tough if your ego doesn’t quite allow it.

Are there any secrets to make it easier? Don’t go too long without a from-scratch effort. The first fall from your level of expertise will be really tough on your ego, but doing it with some frequency will make it seem less painful and more normal. It also helps you appreciate what you do have, and how far you’ve come in your other skill sets.

Of course, this isn’t a prescription for the rest of your life. Without dedicated effort to mastery, you’ll always be sojourning between hobbies, fields, or technologies. But it’s important to keep a balance: don’t allow yourself to be unwilling to try new efforts or explore new ideas, even while striving for mastery in your chosen field.

And remember, you don’t have to attain mastery in this new field. In fact, it might be counterproductive, in terms of efficient use of time, to do so. But do make a habit of challenging yourself, trying things you have no idea how to do.