• 5 Posts
  • 38 Comments
Joined 2 years ago
cake
Cake day: June 13th, 2023

help-circle


  • Growth might be impossible, but a steady and “boring” amount of profit should still be possible selling plain-ole-dishwashers. Yet … for some reason, we don’t see that.

    God yes this bothers and fascinates me.

    Instead companies throw everything into growth and we get the retarded bluetooth enabled dishwasher problem everywhere, and I’d like toknow more about why.

    I think it’s alluded to in the article:

    They found a way to make consumers spend more money on dishwashing. The line goes up, for one more year. But it’s not enough. It has to go up every year.

    Digging deeper: why must the line go up? Pesonally I see it as a deeply emotional, human thing.

    When you read those annual financial reports from big companies, they will do anything to make sure things look rosy. Bullshit terms like “negative growth” are used because “loss” or “shrink” sound bad. So what if it sounds bad?

    Confidence. Trust. It’s emotional. These are deep in our psyche. It’s how governments get elected, contracts are won, and investments are made. It’s what makes us human. If that line goes down… will it go back up? What’s going to happen? Alarm bells! Uncertaintly. Anxiety. People abandon you. Money, power, influence fades. You could find yourself replaced by the up-and-coming who “show promise”.

    Our social emotional species has hundreds of thousands of years (millions?) of years of this stuff hardwired into us. Trust let us cooperate beyond our own individual or family interests. Would we be human otherwise? (I found the article Behavioural Modernity interesting).




  • Unfortunately for those who have those values, not all paid positions involve acting on those values.

    Random brain dump incoming…

    Most businesses pay money to solve problems so they can make more money. You can solve their problems - but not in the way that you may be thinking.

    This is a generalisation that is not strictly true, but I say it to illustrate a different way of thinking: Businesses do not undertake penetration testing because they want more secure software. They do pentesting so they can stay in business in the face of compliance and bad actors.

    To find a job, you want to start learning what people pay for. People pay contractors to come in and fix things, then leave again (politically easier, sometimes cheaper). People pay sotfware developers to develop features (to sell more stuff).

    Start looking up job titles and see which ones interest you (DevOps, frontend dev, backend dev, embedded…). Don’t get too stuck on the titles themselves. It’s just to narrow down what kinds of business problems you find interesting.

    Other random questions:

    • What specific projects are you interested in?
    • What types of problems do you like solving?
    • Do you like digging in and finding those tricky bugs that have been bothering people for years?
    • Do you like trying out new frameworks which let you think about the system differently?
    • Would you rather implement a database or GUI toolbox?

    Once you’re deep in the belly of the beast, you’ll find ways to exercise those values. It’s hard to know in advance what this will look like.


  • Ah yes! That is a great trick that kept me going doing software dev professionally.

    Instead of trying to get the system I was working with to interact correctly with some shit enterprise system, I would find common protocols (or related protocols) and implement that well. Then I would discover more specifically where the shit enterprise system was behaving badly, and point to something politically neutral (like an IETF RFC) to help get us out of a rut.

    It made debugging so much easier. Those specifications and open-source implementations have had much more engineering talent put in them than what I was usually dealing with.




  • We can’t go back to the old way of doing things but we can’t keep maintaining these fundamentally flawed systems either.

    That’s a great way of putting it, thanks. I’m actually only 30 years old (lol). Sometimes I feel there’s so few people who’ve ever used or written software at this level in the part of the industry I find myself in. It seems more common to throw money at Amazon, Microsoft, and more staff.

    I’ve replaced big Java systems with small Go programs and rescued stalled projects trying to adopt Kubernetes. My fave was a failed attempt to adopt k8s for fault tolerance when all that was going on was an inability to code around TCP resets (concurrent programming helped here). That team wasn’t “unskilled”; they were just normal people being crushed by complexity. I could help because they just weren’t familiar with the kind of problem solving I was, nor what tooling is available without installing extra stuff and dependencies.

    Thanks for your understanding :)


  • You just said that this software was much more complex than Unix tools

    Probably need to keep in mind incidental versus essential complexity here.

    So with all those configuration options, why is the standalone binary expected to have defaults that may sound same on one system but insane in a different one?

    Because this is how much of what we use already is implemented. Significant effort goes in to portability, interoperability and balancing compromises. When I’m doing software development e.g. writing HTTP APIs (of which I apparently know nothing about ;) ) - I feel like I’ve got a responsibility to carefully balance what I expose as some user-configurable thing versus something managed internally by the application. Sometimes, thankfully, the application doesn’t even have to think about it al all - like what TCP flags to set when I dial some service.

    You bring up containers which is a great example of some cool features provided by the Linux kernel to solve interesting problems. If you’re interested, have a look at FreeBSD’s Jails, Plan 9 and LXC. Compare the interface to all these systems, both at the library level and userspace, and compare the applications developed using those systems. How easy is it to get going? How much do I need to keep in my head when using these features? Docker, Kubernetes, and the rest all have made different tradeoffs and compromises.

    Another one I think about is SQLite. Some seriously clever smarts. Huge numbers of people don’t know anything about for-loops, C, or B-Trees but can read & write SQL. That’s technology at its best.

    Consider how difficult it could be to, say, start a car in all the different operating conditions it is expected to be used in. But we never think about it.

    We as tech people pride ourselves on familiarity with esoteric detail, but it doesn’t need to be like this. Nor does memorising it all have anything to do with “skill”.

    What I’m struggling with are thoughts of significant vested commercial interest in exposing this kind of detail, fuelling multi-billion dollar service industries. Feelings of being an outsider despite understanding how it all fits together.

    It is a pluggable service that connects to one or more TSDBs, performs periodic queries, and notifies another service when certain thresholds are exceeded.

    Have you ever written this kind of software before?

    It sounds like you are comfortable with the status quo of this part of the software industry, and I’m truly jealous! If you’ve got any tips on dealing with this kind of stuff you can find my email at https://www.olowe.co/about.html Thanks :)








  • Changing that much was probably a bad thing,

    I’m a generalist and this gets me too.

    For many jobs the ones doing the hiring are thinking of their domain, so more experience in the domain means a better worker. But a software developer who has developed CRUD apps 50 times on-budget and on-time over 20 years is almost certainly going to be a fantastic candidate alongside the dev who specialised in the health insurance (or whatever) domain for the entirety of their 5-year career.

    Now I’m aiming for more software-focused companies and consultancies since I think I’m more likely to meet people who appreciate that broader experience.




  • Thanks for sharing. I did a bit of work for a NOC and know exactly what you mean about letting real work slip through your hands. I wasn’t directly responsible for managing the alarms, but it felt strange to be writing software streamlining the workflow. All the time I spent I felt like I could have just helped the technicians actually solving problems they faced in their day to day - to stop the alarms going off in the first place!