There is almost certainly some volunteer group in your area that could use an extra pair of hands. You might be tempted early on to offer suggestions to improve their efforts through better software; don't. Instead, just watch, ask, listen, and learn. Once you've got enough experience to be confident that you understand end-to-end how everything works in whatever group you volunteer for, you'll probably know the right place to apply your skills as a developer (which very well may just consist of, "um, you need automated backups").
Keep in mind that their priorities are different from yours. Things that you would probably consider essential or best practices are, for them, distractions and nuisances and costs to which they're super sensitive: updates, security, anything that's new and requires effort to learn.
Software developers tend to see themselves as "systems thinkers", and think they can always improve any given thing by swooping in and applying some new software to it. That is often not actually the case, but they don't get their hands dirty enough and stick around long enough to realize it.
I had my fair share of coordinating events during school for science competitions. One event we had was spread across campus and in areas with low wi-fi coverage. Our coordinator wanted all the results managed by google spreadsheets in real time. At the end of the day, it was completely unnecessary for logging results (PC problems, typing in broad daylight sucks, no power outlet for laptop, no wifi coverage, etc) and resorting to a piece of paper to write down competition results got the job done much smoother.
I've had to do IT for alot of my friends and families. The last thing I ever want to do is introduce them to a new piece of software, because its just going to be more work for me tweaking it to their liking and them learning a new software package. Not only that, they are just going to eventually install a virus anyhow. Then I'm going to have to reset their PC a year later, regardless of how well I teach them about safe practices on being online.
There's a japanese philosophy that revolves around these points made above, called LEAN (also, this is what agile development is based on). One rule is you adapt well proven methodologies and workflows first, unless the benefits of using a shiny piece of tech far outweighs its cons and risks. Another rule is to listen and understand, before you jump to conclusions. A 3rd rule is to eliminate waste, in development this is generally your buildprocesses / shiny tech / reliance on too many libraries.
TL-DR . Go low tech as much as possible if its an option. If not, the benefits of shiny tech need to outweigh its cons / risks. If you do pick a software package, pick one that's well adopted, easy to learn, and fits your use case.
I had some down-time between jobs a couple of years back, and used it to volunteer at a charity to help out with some basic IT work.
There was some indeed an element of fixing and securing their WordPress-based website, and sorting out their AdWords campaigns. However, the vast majority of the work (by time, not by difficulty) was cleaning up crapware from Windows laptops, getting Dropbox to work correctly across their machines, and sorting out their software licences after they'd been screwed over by a shady ISV.
For example Blackbaud is the market leader in non-profit software, they just launched the cloud version of their CRM product. You literally Citrix into a VM and screen share with a remote machine via your browser. It’s that bad.
We’re combatting that. Raisely (raisely.com) is our first product. It gives charities great fundraising tools, for free. This year for every $1 we spend building or supporting Raisely, a charity raises $38. It’s a huge ROI.
We can’t get VC funding though, so if engineering is your thing and this sounds appealing - we’d love the help.
P.S. brave browser on Android just spins trying to view raisely.com.
Also thanks for the heads up I’ll have a look at what’s causing that.
I second the thought of leaving your bubble because there is more opportunity. I am a former midwesterner, and I live near Seattle now. There are way more opportunities at the coasts then the midwest.
I haven't thought through his whole talk enough to have an informed opinion but it is interesting.
https://www.huffingtonpost.com/trevor-neilson/dan-pallotta-w...
http://lesswrong.com/lw/hjn/earning_to_give_vs_altruistic_ca...
It's a nuanced piece and doesn't argue against it entirely, but the arguments in it should inform these kinds of decisions.
Start donating now. Get into the habit. Ramp up your contributions over time. You'll probably find you give a lot more than you expect you'd be comfortable with.
The most well-known of these tech nonprofits are Mozilla, Khan Academy, Wikipedia. Some have come through YC, like Watsi and SIRUM.
At Fast Forward (org that I started, like a YC for nonprofits), we have a listing of some available tech-based volunteer opportunities on our website (https://www.ffwd.org/tech-nonprofit-jobs/opportunities/?_sft...).
For example, TalkingPoints (tool for teachers to text parents) is looking for a machine learning advisor. MindRight (text message counseling for kids who have suffered trauma) is looking for a code reviewer.
Your software engineering skills are incredibly valuable, and it's hard for nonprofits to find and afford quality developers. Providing those skills can greatly help others.
- educate aspiring software engineers from other countries online by writing on your blog for free about software engineering topics
- in the long term, try to translate the content to other languages (maybe pay someone to do it)
- maximize your income and donate money to children's education in other countries, they need to have the chance to learn the English language in the first place to be able to consume all the free educational content and open source projects which can be found online
- if you put an educational course online for $99 to educate others about software engineering, think about developing countries where it's not possible to pay the $99 for a 5 hours video course, the price can be adjusted on a country base by something like PPP [0]
As an example I am aiming to use my IT skills to bring development to the island of Haiti in the form of training for internet careers. The islanders are often given food (relief) but experts on the island point out that the biggest need is personal development so that they help themselves climb out of the hole. I’ve spoken with two missionaries to the island who are generally positive about my plan.
If you bring your skills and apply them to rehabilitation when development is needed, you can do more harm than good, no matter your intentions. So ensure you know which to apply, when.
Bonus: They probably could use your software skills as many of them have been operating for years with low-tech shoestring budgets.
I have spent several years helping to organise and run a CoderDojo, and it has been a great way to meet new people, and you don't need a heap of technical people to run one, just one or two who can help with the really hard problems.
Spend two or three years working in South America, Africa or Asia. Make it a goal to develop genuine friendships with some of your colleagues and neighbors. You'll have no choice but to expand your understanding of the world and your empathy for people whose lives have been very different than your own.
These are hard problems. There is a reasonable probability that your professional skills are not all that applicable.However, you are not in poor company. For all that Jimmy Carter can do, every board he nails together makes a difference in some family's lives.
Good luck.
A friend and I were talking recently about this tendency to offload the work - a very capitalistic approach (source: am a capitalist) - but you get a different kind of return on investment being present for and aware of the needs of those physically around you. That ROI might be measured in terms of mental health.
If you are good Software Engineer, you'll be making good money and this is what the non-profits need the most: good old hard cash...
Find a worthy organization and donate, and spend your free time to better yourself and earn more to donate more...
Unless of course you you want to become a volunteer, leave your job and transition...
And you just have to make sure that any charity you donate to doesn't eventually get revealed to have been a sham where the people running it were secretly funneling the money to armed militants without your knowledge because then you can go to jail for the rest of your life (unless of course your name is Reagan and you funnel arms directly to the militants yourself!)
Do something so that projects of the company where you work fail. This will offer some competitive advantage to companies elsewhere, probably one from the difficult place? That's the easiest thing you can do.
You can donate money but I don't think it works. You gotta teach a man how to fish. If you destroy your and your colleagues' fish, they'll be forced to buy fish from underprivileged.
Use your money, time, voice and vote to support a modern public safety net.
Every other avenue is a divergence or distraction or otherwise ineffective.
In some contexts, my suggestion could be used as a political platform, but it isn’t here. It is, however, obviously, politics. How could it not be?
It is strange to me that you contextualize this way. It is no less than obvious, to me, that politics, as a field so concerned with the livelihood of society members, is a (if not the) topic at hand. I am open to other avenues but the success of such efforts remains grim, hence the concern in this post, which is anything but new.
An effort to logically separate politics from the needs of under privileged society members strikes me as a questionable pursuit at best and a damning moral quandary. Can you explain what the point is?