314 karma · joined August 2, 2019
I'd argue this is true of any engineering discipline. For example consider this analogy: we build bridges to solve the problem of being unable to cross to the other side. But we could also solve this with, say, a boat, to paddle ourselves across the body of water instead; in fact, that's a much more immediate solution that solves the exact same problem. But is it sustainable? Is it scalable? Can it handle traffic? To address these concerns, we _engineer_ a bridge.
Software that's meant to service a lot of people can't just be written to solve a particular problem today -- it must be _engineered_ so that it's future-proof, which is to say, easy to scale, easy to read, easy to refactor, etc. So often the simplest programming challenges become particularly difficult and often interesting engineering challenges.
Finally, to actually answer your question, it entirely depends on the company, the size of the team, and the commitment to code quality and engineering that that team has. Working at Google on the search team, for example, wouldn't be a great fit for you because every line of code you write has to be engineered! But working at a startup might.
But this comes with tradeoffs. Often times, the solution you write will have to be rewritten if you want your product to succeed. Refactoring and re-architecting things are a necessary evil as technology, hardware, and languages + frameworks change over time. I've worked at places where I've found myself repeatedly having to work on the same things over and over again because of how poorly engineered they are! If you enjoy programming and solving new problems and you want to have a career doing that where presumably you're building some sort of product, you have to engineer at least somewhat reasonable solutions today so that you can work on something new, exciting, and cool tomorrow.
Granted my parents have changed over time and their values and beliefs now aren't what they were when we first immigrated to America. I count myself very lucky that they were able to adapt and leave some of their antiquated views behind.
This isn't always true of Asian families; I have a friend in the same boat as me but I also have one who has an extremely strained relationship with her parents due to their conservative and unchanging views on things.
This would however have the downside of incurring an additional latency with an additional abstraction, but if there was a way you turn this off with trusted websites and only leave it on when you're using a site you don't trust it could be more usable? It just seems better than disabling JS entirely since a lot of websites just completely break without JS.
It just seems like with the amount of information that JS can collect, even if you're using TOR or a VPN, if you crunch all the information about a particular user, like the kind of OS they're running, the version of the browser, the screen ratio, mouse click movements, time of access, number of CPU cores, type of GPU, whether or not it's a VM, etc., it just feels like you might be able to devise a pretty reasonable heuristic for where this person is and the kind of computer they're using. I can't really say I know the extent of browser and JS capabilities, but these things already seem alarming enough where I wouldn't really feel super confident that I can't be tracked even with TOR or a VPN.
Edit: Just discovered something similar to this is being worked on already! https://gpuweb.github.io/gpuweb/#malicious-use
Remote: Both
Willing to relocate: Yes
Technologies: Python, C, JavaScript, Go, SML, Django, Angular, Ionic, Flask
Resume/CV: https://drive.google.com/file/d/1ROrmSsi0B_g5qGO6pySWgfleUmG...
Email: skandakk@gmail.com