I’ll go first: “You have to have children when you’re young,” told to me when I was in my late 20s, with no desire to ever have kids, and no means to support them, by someone divorced multiple times with at least one adult child who does not speak to them.

Also: Responding to “How do I deal with this problem?” questions with “Oh, don’t worry about it, it’s enough that you’re even thinking about it!”

  • jnato90@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Ah wow that’s a great experience for your co-op! You know maybe i’m rose tinting a little bit now that you’ve mentioned exams haha, but yeah I’d still say it’s been interesting working in the field for me to say the least.

    • eth0p@iusearchlinux.fyi
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 year ago

      Yep! I ended up doing my entire co-op with them, and it meshed really well with my interest in creating developer-focused tooling and automation.

      Unfortunately I didn’t have the time to make the necessary changes and get approval from legal to open-source it, but I spent a good few months creating a tool for validating constraints for deployments on a Kubernetes cluster. It basically lets the operations team specify rules to check deployments for footguns that affect the cluster health, and then can be run by the dev-ops teams locally or as a Kubernetes operator (a daemon service running on the cluster) that will spam a Slack channel if a team deploys something super dangerous.

      The neat part was that the constraint checking logic was extremely powerful, completely customizable, versioned, and used a declarative policy language instead of a scripting language. None of the rules were hard-coded into the binary, and teams could even write their own rules to help them avoid past deployment issues. It handled iterating over arbitrary-sized lists, and even could access values across different files in the deployment to check complex constraints like some value in one manifest didn’t exceed a value declared in some other manifest.

      I’m not sure if a new tool has come along to fill the niche that mine did, but at the time, the others all had their own issues that failed to meet the needs I was trying to satisfy (e.g. hard-coded, used JavaScript, couldn’t handle loops, couldn’t check across file boundaries, etc.).

      It’s probably one of the tools I’m most proud of, honestly. I just wish I wrote the code better. Did not have much experience with Go at the time, and I really could have done a better job structuring the packages to have fewer layers of nested dependencies.