One Coder’s Journey To Use His Skills For Social Good

This developer and teacher proves there are many ways you can do what you love and social good at the same time.

One Coder’s Journey To Use His Skills For Social Good
[Photo: Flickr user Nat Welch]

My husband Craig Dennis started off his career in software development going down the traditional route. But he realized early on he wanted to use his skills for good. He committed to taking the nontraditional path, and though it’s taken him to some unexpected places, he has always tried to remain true to it.


Craig’s journey proves that having a niche skill and a desire to do social good doesn’t mean there’s only one job or path out there for you.

A Vital Lesson Early On

Craig attended college for a while at Arizona State University, but he soon realized the computer classes were dated and that he was studying material he knew wasn’t actually happening in the real world. So he dropped out of college and spent a lot of time in Barnes and Noble reading books and learning from people he worked with.

From there he went on to work for various tech and consulting companies. At one point early on in his career the consulting firm he worked for placed him at a credit card company to consult on workflow.

The credit card firm had Craig sit with a group of women doing data entry to see how he could help them. He wrote some code to automate 80% of what these women were doing. Then he came in one day and the lights were all dark in their area. They no longer had jobs.

“I wasn’t happy with that,” Craig says. “My boss said–and this sticks in my mind to this day–‘You better get used to this feeling because this is your job–to automate people out of their jobs so the bottom line increases.’ It was right then I started thinking I needed to find something better to do with my skills.”

Something Better

Craig began to think about the Peace Corps, and it turned out that year the Peace Corps was introducing a technology program. It seemed like a sign to Craig, so he signed up and a year and a half later was stationed in New Amsterdam, Guyana.


In the Peace Corps, Craig worked for a technical institute where he helped build a computer lab and, along with other volunteers, wrote a countrywide curriculum that could be used at the other three technical institutes. He also taught full-time students and working adults.

“I’d never taught before. It was very shoot from the hip,” Craig says. “Watching those kids get it was so cool. These were kids who needed confidence more than any other thing I taught them.”

Craig still keeps in touch with many of his students, some of whom went on to work repairing computers, writing software, and running a successful electronic store.
When Craig returned to the States, he knew that staying on this path of social good was important to him.

“I had felt what it means to do fulfilling work and I didn’t want to give it up,” he says. “You spend so much time at work. If you don’t believe in what you’re doing, what’s the point?”

Coding For Good

Eventually Craig and I moved to New York City when I got a job at Idealist. During our company holiday party, Craig sat next to Idealist founder and executive director Ami Dar, and it turned out he was interviewing Craig without his knowing it.

“I was telling him I had found a place to teach working adults and I was thinking about doing it,” Craig says. “But Ami talked a good game about how if I worked for Idealist, every day I’d be using my code skills for good. The next day he offered me a job. I took it because I knew I could catch up on the tech I’d missed out on while I was in the Peace Corps, while also being fulfilled.”


For seven years Craig worked at Idealist growing the development team and wearing many hats. “It was a good run,” he says.

During a two-month sabbatical, which all Idealist employees are encouraged to take after seven years, Craig and I went to the Philippines where we saw people struggling. “I sat a lot on the beach just thinking about what access to technology could do in a place like this,” he says. “And I kept seeing a quote on all the schools about teachers being the key to the future. It was a sign that I should really teach. It had been seven years and I was still thinking about it.”

While in the Philippines Craig was trying to learn a new coding language, and he signed up for a website full of online courses called Treehouse. Their mission of wanting to provide affordable, accessible technology to people everywhere lined up with where his heart was, Craig says. When we returned to the United States, Craig found a job opening for a teacher position in their Portland office. He went through a long process of interviews and got the job.

Leaving One Great Job For Another

Despite his excitement about jumping back into teaching, there was a part of Craig that was hesitant about leaving his comrades at Idealist. “Nothing is ever finished, and there are parts of the code base I knew I was leaving for someone else to struggle with even though I knew they’d eventually get it.”

“But I did a lot of mentoring during my later years at Idealist, and I knew that they all knew I was a teacher and would want this for me,” he says.

To other developers hesitant about taking the leap and using their skills for good, Craig has two words: “Do it.”


“We are needed so badly in that world,” he says. “Take advantage of this time when there are these jobs out there where you can feel good about yourself. If you’re doing stuff you believe is unethical in your heart, you’re part of the problem. Don’t be.”

Celeste Hamilton Dennis is an editor at