someone would tell you:
"if you want a selfless, social work - some good jobs are, but: don't work for nuclear weapon production" (finance what (also) finance such production, healthcare that (also) heal the weapon enterprise managements desease, and so on - think this all as examples)
but then a (here abstract) "other side/party" will then (because without your benefit for nuclear weapon controll software) thirst start a rocket
so your decision was not real altruistic (at all men in world) because you make a "broken glass" (like in the funny nice example above https://news.ycombinator.com/item?id=14379040 )

so, your problem was: your data before decision were not enough and the analysis of the situation (in the whole world) not deep enough.
some people will argue: so much data - never possible to make the best decision.
I agree with it.
But you can do some approximation and before doing an (also only aproximated) List of "good, selfless, altruistic" destinations (with view of whole world and view to some influence like climate, politics, geophysics, space-riscs ... and so on.) make a risc and a potencial map about the world. And second part construct your own priority List for this risc and potencials. Big project - but also big fun! So go web and search for science studys, travel around the globe, talk to many people, educate kids, help older people with desease - so you get a good (eventually excellent) database.
Work out a mind set of gouls, of answers for the question "what is good (for my neighbor)". Your longtime values.
But you will not forget the borders of your brain: for example - you are a good coder and engineer, and not so good corner speaker ...
so go politics as job would not good decision, because your influence will go zero and as coder zero++ ... ;-)
But you will not forget the borders of others brain: for example - you everytime check different (also antagonistic) sources of the data for your decisions. And if somebody troll you - be calm: very good input for your decision - database (part:psycho-problems)!

And think of the time of your live: its all in move, you must check in some weeks or months again and again, the same procedure ..
(Will be fine: DO WHILE(true))
ask, analyse, check, do - a simple and fine procedure in a endless loop: your live.
and the backup loop is: ask one more question everytime, everywhere - to everybody ...
Find the position were you with your (everytime living) "database" can make the most influence to the "problem-vector" of the world.
then so you also will make some mistakes, errors appeare again and again, BUT:
then you are old and grey you can say:
I had done best of my willnes, my power and what my brain was able to think:
attempt(sic!) to change the world to a better one.
A (only limited) list of my own tasks (differ already to the list of my son, friends) :
- participation, transparency with (for example) openData Apps -
- networking: bring together good coders amd other
- identify deficites in care for older people - organise help and also change of the reasons
- ... and so on
the list is under construction and any bugs I must find out next days ... ;-)
Wish you a good and viable decision for your dream - job!
CU