But not any of the systems I've worked on over 10 years. You may not get the absolute top salaries working on more meaningful projects, but there's plenty of them. Here are some examples that I worked on. To a fault, most of these places over-focused on the business and under-focused on exceptional engineering. Nonetheless, there's a lot of money to be made solving real business problems.
- Optometry practice management software
- Insurance benefits processing and customer service systems
- Professional soccer/football training iPad apps
- phone/pbx, Audio and video communcations, tie in with the web
- mapping systems to evaluate water scarcity and agriculture water use
- government benefits systems
Again, user Nextgrid isn't wrong. If you're willing to take say, up to 90% of the highest salaries available, rather than only the top 10% of salaries, there are huge amounts of non-advertisement problems to solve. Rightfully, this comment exposes the depressing cynicism which develops when building manipulative software.
Either way it all comes down to some combination of mental laziness and no ethics. There is no ethical code, that I am aware of, for writing software.
Here are my experiences as a web developer:
* Frustration at the general technical incompetence of my industry: https://news.ycombinator.com/item?id=22821318
* Many software developers need things to be easy, unprofessionally so: https://news.ycombinator.com/item?id=22859326
* JavaScript developers can't interface to the browser: https://news.ycombinator.com/item?id=22740897
* People (only software developers on security) who self-admittedly have no education, no experience, no credibility, and no practice of the art find themselves subject matter experts and cannot understand why an actual expert would disagree with their hastily formed opinion: https://news.ycombinator.com/item?id=22868620
* Hiring software developers is still somehow an arcane mystery few people can objectively figure out.
ACM Code of Ethics: https://www.acm.org/code-of-ethics
There are incompetent people in every industry. So what.
Hiring is an arcane mystery in every industry where productivity can't be quantified. So what.
I have never seen anything remotely close to that in a place of corporate employment ever. I have been doing this in the corporate world since 2006, but if you count my time as a security analyst in the military than I could push that date back to 2001.
The military does force feed you (memorization verbatim) ethical standards, though, at a huge contrast to the loosey goosey corporate world:
I'm not sure I've worked directly with anyone recently who could pass a DOM test like that. Everything is React and and Axios and the browser (and HTTP, TCP, DNS, etc) is a mystery.
Edit: mystery isn't even the right word really, if you mention any of the other layers I've seen people get actually hostile.
Only 3 candidates were able to pass this code filter. The people that did pass either did well enough to pass or extremely excellent. The people that failed, maybe 19 of 22 people, all failed epically.
In practice I highly doubt that the population of candidates is actually this bimodal. It might lean heavily below the hiring bar, but I have trouble believing that it's bimodal. My own personal experience has been that it looks a lot like a normal distribution where the hiring bar is just two standard deviations above the mean (which would imply that you give offers to about 1 out of 25 people who apply, which sounds approximately in the right ballpark).
As a consequence, if your question is producing bimodal results, I can't help but wonder whether it's a good interview question, because knowledge tests exhibit much of the same type of distribution of outcomes.
In my experience, if you give the candidate only one hour, access to documentation only helps with recalling past experience, because one hour is too much time pressure to actually calm down, pick through, and digest documentation on something you haven't seen before. If you knew the DOM functions existed and just needed their names, it'll work, but if you're unfamiliar with what the DOM already offers, even if you could learn it fine on the job, you won't learn it fine under time pressure. I recently adjusted one of my interview questions specifically to reduce the need for looking up documentation because I noticed exactly this phenomenon.
My experience in frontend feels like everyone learns ad hoc without digging deep into basics. Overall, I felt if you have aptitude or real passion for the work, you would just get a computer science degree and be attracted to other parts of the stack or other problems to solve.
This obviously doesn't apply to large tech companies which make it a point to hire talent (frontend, backend, whatever).
> Hiring software developers is still somehow an arcane mystery few people can objectively figure out.
This is actually one space where I feel the frontend world shines. Almost every frontend interview question has been very practical.
I could go on, but sometimes your choice is working on a product that either screws the users directly (e.g. ads) or indirectly. Take your pick of where you want to draw the line.
What I was trying to say was that it's very black and white thinking to say something like ads = exploiting users and healthcare = not exploiting users.
Since Facebook usually comes up when people talk about unethical companies, let me use them as an example. Let's say there is a team that improves ad targeting by 5%, helping to reduce the number of irrelevant ads people see. Let's say there's another team that reduces data center electricity's utilization by 5%, which helps the environment.
Is the ad team more or less ethical than the data center team if they are basically both supporting the same end goal?
I don't work for Facebook if that matters. And I have no answers to any of the questions I posed above outside of my personal preference to not work in online advertising unless I need to do it to survive.
The functionality delivered by products is not screwing people unless you're talking about surveillence capitalism ala Google et.al. Capitalism and the pricing of goods is how we incentivize people to bring things to market and more importantly how we allocate resources. No one, anywhere, through any scheme has ever replaced the market for performing these functions and thereby driving civilization and invention forwards.
People keep believing they can (socialism/Venezuela), or give up on the project entirely after decades of trying (communism/ China / Russia). Maybe one day someone out there qwill have a genuinely new idea which works. Until then you have a right to feel good about contributing, in whatver little customer support / feature adder / managerial capacity you do, to the forward progress of society generally and the amazing, rocket-like increase in wealth absolutely everyone on this earth is experiencing relative to the past 30,000 years.
- Optometry practice management software... targeted at maximising in-store sales with prescriptions that are difficult to use elsewhere, encouraging dark-patterns in sales tactics, etc.
- Insurance benefits processing and customer service systems... that attempts to minimise payouts, potentially by adding burden on the customer through the customer service process.
- Professional soccer/football training iPad apps... arguably sports doesn't bring as much benefit to the economy as equivalent spending elsewhere.
- phone/pbx, Audio and video communcations, tie in with the web... for premium rate phone lines that users with little choice are forced to use, such as those installed in prisons in the US.
- mapping systems to evaluate water scarcity and agriculture water use... for Monsanto.
- government benefits systems... that optimises to minimise payouts or contains unnecessary checks and hurdles.
It highlight the need to be diligent in daily decisions day-by-day. And when working somewhere that's doing something borderline, or totally unethical, working to move it in the right direction. I hope I can be aware enough to create a net benefit. The problem is knowing enough of the consequences of any action to evaluate if it's a net benefit. That's really hard, but I have to believe that toiling away _trying_ to make net positives happen will _actually_ result in net positives happening. Doubting I could ever make net positives happen leads to cynicism and ensures nothing good will come of my work.
(and thank you for bringing up point about benefit systems - that's the next gig for me, I will work to not be part of the problem)
Be pragmatic. If the company provides a good service but doesn't survive, then that good service no longer exists! Some amount of optimisation for sales is likely necessary, but I think there's a line where things turn user-hostile, even in subtle ways.
And by weird coincidence to this post I've recently been browsing around trying to find any other type of traditional businesses looking for equivalent help. But I've mostly found boutique places that wouldn't have need for a full-time developer.
Any tips on places to look for opening greatly appreciated.
The problem is that I find it very hard to find these businesses, and indeed most of them don't actually have enough work to fill more than a couple of days so you would need a reliable source of these gigs if you want to survive (you can't charge insane amounts to compensate either as these businesses just can't afford it).
You should work for a system integrator if you want to do that kind of work with regularity. The integrator contracts you out to those companies as needed, and you develop a niche and maybe customers start asking for you by name. In the best cases the integrator is your employer and offers full benefits, as well as absorbing the costs of downtime.
That business model can also be abusive for obvious reasons. I can recommend a good company if you're interested.