Preferences

hosh
Joined 5,618 karma
Things you will never find on Google:

    功夫 (arete)
    意  (impeccable intent)
    忍  (perseverance)
    武德 (virtue)
    無心 (zone)
    道  (flow)
[ my public key: https://keybase.io/hosh; my proof: https://keybase.io/hosh/sigs/0MmCPweqpVoIwTqxI7XJVZ_FPekkWb_SoH6-TzBi7UU ]

Contacts:

    http://www.quora.com/Ho-Sheng-Hsiao
    https://github.com/hosh
     

  1. It’s also true that the kind of people who are ready for staff level work are already doing staff level work. While social capital is a factor, it isn’t necessarily accumulated because of title or experience.

    The idea of “disambiguation” is itself ambiguous. The way I recognize other people solving problems at a staff level is we are communicating in terms of properties, constraints and tradeoffs. Crucially, these constraints are not necessarily business constraints, but rather, constraints inherent to an architecture. For example, queuing works for ordering because it append-only, and monotonic. So as soon as you have multiple queues (such as partitioning) or try to reorder it, it also loses its ordering guarantee. Does the problem require ordering?

    The first couple chapters of Roy Fielding’s dissertation goes through this. The first time I tried reading it, I did not have experience to understand. It was a slog and I got little out of it. The next time I tried reading it, it was helping me gel and articulate things I had started observing from experience. I recognized that I had previously been so focused on architectural elements and that the properties and constraints were far more important. It is this that determines what is being traded off, and antipatterns pop out. Knowing properties and constraints allows me to quickly identify problems, and start the process of disambiguation. Many of the other staff or principal engineers I have chatted with communicate along these lines.

    I don’t try to ask smart questions or dumb questions. I ask questions so that I can understand properties and constraints.

  2. It got me thinking:

    - how well does such an ecosystem resist enshittification? Given some of the other comments, Nostr itself would not. However, is that true for every relay networks?

    - does the Willow protocol have the same basic constraints? I know willow works with user-owned keys, but can it also organize as something similar to relays?

    - local-first apps organized this way would be an interesting ecosystem

    - how well would this work with keyhive? (Local first access control)

  3. Number (3) has better explanatory powers than (1).

    However, for the purpose of assessing social and family impact, it is rendered to (1). Both schools and state (US) programs use (1) to assess if a child qualifies for support. This is not always related to how to parent or educate the child.

    Fortunately, the US school system with IEP (individualized educational plans) are developed along (3). (Source: two of my kids have ASD)

    None of that necessarily helps in informal social contexts or in professional workplace settings. I think the American Disabilities Act covers reasonable accommodations for people with autism spectrum disorders, though I am not sure if it requires legal disabled status.

    Lastly: I met a Native (Navajo) family with a child that seems to me, have some developmental disabilities — but I think they take a very different approach. For one, they don’t seem to have the usual social stigma associated with this, and are baffled why I would suggest getting state support for early childhood intervention. If anything, I would not be surprised if they thought I was, yet again, someone unthinkingly pushing a colonialist worldview.

  4. Humans do the same thing.

    I have a friend who is a systems engineer, working at a construction company building datacenters. She tells me that someone has to absorb the risk and uncertainty in the global supply chain, and if there are contractual obligation to guarantee delivery, then the tendency is to start straying into unethical behavior, or practices that violate controls and policies.

    This has as much to do with taking the slack out of the system. Something, somewhere is going to break. If you tell an agenic AI that it must complete the task by a deadline, and it cannot find a way to do that within ethical parameters, it starts searching beyond the bounds of ethical behavior. If you tell the AI it can push back, warn about slipping deadlines, that it is not worth taking ethical shortcuts to meet a deadline, then maybe it won’t.

  5. I prefer heads down time. At my remote workplace, I found several channels where people ask for help. Combined with office hours, it is the main way I keep in touch with what is going on.

    We also write up a weekly priorities (by team), and all the leadership put it together into emails. It is a great way for me to read what is going on.

    I shift between deep work and collaborative problem solving.

    It is not as if you can’t try structure things to have both.

  6. The ideas in Erlang keeps getting (poorly) reinvented.

    So it remains a “secret” weapon and I am fine with that. Not everything have to be validated by popularity in order to be unreasonably effective.

  7. Kubernetes is a good example of a microservice architecture. It was designed in a way where each microservice work with other microservices in a way where the dependencies are not so coupled together.

    For example, the API server only reads and writes resources to etcd. A separate microservice called the scheduler does the actual assignment of pods to nodes by watching for changes in the resource store against available nodes. And yet a different microservice that lives on each node accepts the assignment and boots up (or shuts down) pods assigned to its node. It is called the kublet. The API server does none of that.

    You can run the kublet all on its own, or even replace it to change part of the architecture. Someone was building a kublet that uses systemd instead of docker, and Fly.io (who seems to hate kubernetes) wrote a kublet that could stand things up using their edge infrastructure.

    The API server also does some validations, but it also allows for other microservices to insert itself into the validation chain through pod admission webhooks.

    Other examples: deployment controllers, replicaset controllers, horizontal pod autoscalers, and cluster autoscalers to work independently of each other yet coordinated together to respond to changing circumstances. Operators are microservices that manage a specific application component, such as redis, rabbitmq, Postgresql, tailscale, etc.

    One of the big benefits of this is that Kubernetes become very extensible. Third-party vendors can write custom microservices to work with their platform (for example, storage interfaces for GCP, AWS, Azure, or Ceph, etc). An organization implementing Kubernetes can tailor it to fit their needs, whether it is something minimal or something operating in highly regulated markets.

    Ironically, Kubernetes is typically seen and understood by many to be a monolith. Kubernetes, and the domain it was designed to solve is complex, but incorrectly understanding Kubernetes as a monolith creates a lot of confusion for people working with it.

  8. Yeah, the isolation provides a fault tolerance not seen in wide use until Kubernetes.

    Although it would be neat to implement some of the benefits of a service mesh for BEAM — for example, consistently applying network retry/circuit breaker policies, or dynamically scalable genservers.

  9. I have worked in production Elixir. (Learning platform supporting realtime student-teacher classroom experience).

    Whatsapp is implemented with Erlang.

    It is a more robust platform for agentic AI, and I’d certainly start with a BEAM language for agentic AI.

  10. What BEAM offers isn’t modularity, but concurrency. Every genserver is operating concurrently, all within the runtime. Up until actor models came to Java, and more recent Java with lightweight threads, Java was incapable of this. Java is still missing things that BEAM and OTP provides.

    Besides: Erlang predates Java.

  11. It is not so black and white.

    The BEAM ecosystem (Erlang, Elixir, Gleam, etc) can do distributed microservices within a monolith.

    A single monolith can be deployed in different ways to handle different scalability requirements. For example, a distinct set of pods responding to endpoints for reports, another set for just websocket connections, and the remaining ones for the rest of the endpoints. Those can be independently scaled but released on the same cadence.

    There was a long form article I once read that reasoned through this. Given M number of code sources, there are N number of deployables. It is the delivery system’s job to transform M -> N. M is based on how the engineering team(s) work on code, whether that is a monorepo, multiple repos, shared libraries, etc. N is what makes sense operationally . By making it the delivery system’s job to transform M -> N, then you can decouple M and N. I don’t remember the title of that article anymore. (Maybe someone on the internet remembers).

  12. Does this also apply to thumbdrives?
  13. This article does not do a very good job of talking about why pigeons were domesticated, and instead, rely upon argumentation by pathos. It only mentions racing in passing, but breeding pigeons for racing weakens the whole argument.

    In the Middle East, pigeons were raised as a food source. There are structures that allow flocks to nest, and from time to time, people would cook some for food.

    I have seen a video of someone doing so in London with one of the many free roaming pigeons.

    There may be other relationships pigeons have with humans.

    It’s still possible to redomesticate pigeons. There are some obstacles. If they are going to be harvested for food, then people need some way to make sure they are disease free, and on-site butchering is legal.

  14. Software would benefit more from some training in philosophy than in scientific thinking.
  15. The article was talking about solo devs, small businesses, and startups. A few physical servers that can handle millions of request per day.
  16. I think that is pretty normal while dreaming, daydreaming, or awake if you don't have aphantasia. Someone skilled in neural-linguistic programming can guide someone into developing greater and greater details.

    Psychedelics and certain meditative practices can enhance this effect. There are also specific practices that allow imagined object to take a life of its own.

    That's in the private imaginative mindspace. There are other mindspaces. There was one particular dream where I can tell, it was procedurally generated on-demand. When I deliberately took an unusual turn, the entire realm stuttered as whole new areas got procedurally generated. There were other spaces where it was not like that.

  17. 25 and 26 has been my experience with this as well (not at Amazon; at much smaller organizations) Those paradoxes happen there.

    Just my opinion: one of the key mindset shift that happens before someone steps into staff and principal engineering is understanding that the technical choices you make are tradeoffs. You give up conceits (or one should) that a technical opinion is separated from context, while also getting to deeper technical principles that appear across architectural levels or disciplines (such as queues). You also see how technical systems are inseparable from the people using it, and being a part of it.

    When you start seeing that, you start seeing that everywhere. You start to act in a way that is informed from that understanding. You need to be on the critical path in order to do what matters, but you also need to connect those dots that are overlooked.

    But that is also one flavor of principal engineering. I tended to do the horizontal influence than deep technical and domain expertise. At early stage startups, people have to wear multiple hats, often exceeding the scope of what they were initially hired for.

  18. I appreciate this long comment.

    I am in the middle of convincing the company I just joined to consider building on GCP instead of AWS (at the very least, not to default to AWS).

  19. Table-oriented layouts was a thing back then too.
  20. Were you talking about this incidence? https://arstechnica.com/gadgets/2024/05/google-cloud-acciden...

    I am currently evaluating between GCP and AWS right now.

This user hasn’t submitted anything.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal