Today I Learned

TIL, 2018-04-24, Designing Very Large JS Applications

Musings, JS

  • Designing very large (JavaScript) applications
    • Above “I know how to solve problems”: “I know how I would solve a problem and so I could teach someone else to do it.”
    • Avoid central configuration.
    • Add automated tests to make sure that requires make sense.

Musings, DevOps

  • Benefits of Chef over Docker?
    • Variable images with chef databags and chef templates to generate docker images.
    • Able to manage a node from the GUI.
    • Chef configures your host stuff.
    • Test-driven infrastructure with test-kitchen, serverspec, and Vagrant.
    • Workflow:
      • Packer script to install stuff that chef needs to run.
      • dockerregistry recipe to set up a docker registry and installing Docker on each node.
      • Chef cookbook to generate my base image.
      • Cookbooks that generates images to do stuff.

Why We Hate Working for Big Companies


  • We have free markets, but a corporation is usually more like an authoritarian state.
  • When hiring managers: author didn’t want to be an employee, so why would others want to be an employee? There’s also a problem when there’s a separation between people doing the work and people who make the decisions.
  • Free market: Central planning committees can never be as efficient or effective as people doing the work. (Markets do not have a manager to do this.)
  • For things like China’s Great Leap Forward, a commission telling the farmers what to produce leads to not-so-good decisions because there’s a huge separation between the central planning committee and the farmer.
  • The most important feature of free market economies is that each person within them is able to make independent decisions in their own best interest.
  • For much of history: people did as many things as they can (re: turning labor into a product).
  • Corporations nowadays: when you reach a certain company size, you’ll have a planning process, set out top-level goals, build plans, and get information from the front line to see where it needed tweaks.
    • What they need is to have a system where the people doing the work knew the organization’s goals and plans.
    • Leadership is about making decisions.
    • The problem with a big company: the leadership is so far removed that it looks like a bureaucracy.
  • I find it both ironic and painful that my inability to work for someone else resulted in my creating a company that involved a lot of smart, capable people working for someone else.
    • How do you value most of the work people do?
    • Things end up with a concentration of wealth anyway.

This project is maintained by daryllxd