The project I’m working on, Midas Innovation Toolkit, was developed in the open from day one. It started as a Presidential Innovation Fellows project, sponsored by the US Department of State.

Both the State Dept and Health and Human Services (HHS) are actively working to pilot the software within each agency to foster collaboration within different target communities. Developers at each agency are leveraging each other’s efforts by submitting changes (via pull requests) to a common shared codebase (hosted on github).

It’s exciting to see this cross-agency collaboration through open source. The software is designed to help agency employees collaborate across team boundaries, and it’s wonderful that we’re doing that with the software itself using the entirely different mechanisms of open source.

I’m relatively new to the project and still learning about it myself, but would welcome volunteer contributions — or feedback on how to make the project more welcoming to people who want to help. It uses Nodejs and Sails with Backbone on the front end, and we’ve just started writing some Chef recipes for automated deployment. There’s a lot of low-hanging fruit in the github issues list.

Would love to hear what you think about this project specifically or government open source in general!

As a developer and a citizen, I am excited about open source in the US Government. I recently joined 18F, a new digital services delivery team within the federal government, part of our General Services Administration (GSA). Last week, we announced our open source policy where our source code is developed in the open from day one as public domain (CCO).

As a citizen, I believe open source makes best use of our tax dollars:

  • Leveraging open source tools & libraries is not just about saving licensing costs, it saves time. We can evaluate a library or tool by actually using it, without up-front analysis and a time-consuming procurement process.
  • New contractors can pick up a project easily, which will drive competition and reduce switching costs.
  • Different agencies in federal, state and local governments can easily leverage each other’s code through coder social networks like github. This happened recently with the 18F Answers platform, based on Honolulu Answers, developed by Code for America, and now being leveraged to improve the immigration experience (USCIS).

As a developer, open source encourages me to apply best practices: effectively communicating the impact of the code I write making choices that will yield high quality, secure code, and embracing volunteer contributions that are aligned with the project’s mission.

On a personal level, it is an amazing professional development opportunity. A long time ago, a conversation with Rob Savoy, forever changed how I thought about the personal impact of developing open source software. He said that, with rare exception, all the code he had written was available to him in any future project. Imagine if that were true for me… if the source code of After Effects, Flash video, and Shockwave (or their open source equivalents in a parallel universe) were available on my next project.

This is even more compelling for the now-defunct proprietary software I’ve create. Adobe ScreenReady turned any document into a high quality image with anti-aliasing and alpha channel (turning the “paper” into transparency). PACo/QuickPICS enabled long-format synchronized audio-video off CD-ROM (which at that time had a comparable bandwidth to a 14.4 modem). Both these products didn’t make sense to continue from a business perspective, but had passionate customers and could have evolved into powerful tools or libraries accelerating innovation in both private and public sectors.

At 18F the software we develop is for the people and by the people. Open source gives us a firm foundation to make a lasting impact for our country and for the world.

There is no quick fix to diversity hiring. The easiest way to hire for diversity is to start with diversity — to start when you add the second person on your team — but if you reading this post, you likely have an imbalanced or homogeneous team. I’ve primarily written this for all-white or all-male teams in tech. I believe the diversity has little to do with appearance, but gender and race is a shortcut to noticing the problem and visible variety actually affects behavior.

Before You Start

Make sure the women and people of color on your team already are happy. See if you can find out if is any aspect of your current workplace or team that might create a hostile or unproductive workplace for any team member. Fix that without making it the responsibility of minority folks. If your team is bigger than 2-3 people and you don’t have any women or people of color, be aware that you may have teammates who would alienate the person you are trying to recruit. Develop stated values. Publish a code of conduct. Create ways you can put yourselves in a diverse crowd with customers or community events, and talk to your team about how to be open and respectful to people who are different than they are.

Imagine Your Dream Team

Brainstorm 10 women or people of color that you would dream of hiring. People who would bring incredible talent, skills, energy and enthusiasm to your team if you could somehow inspire them to come work with you. Play the #one4one game with your team.

There are a small percentage of software engineers who are women, but quite a large number of them. Relative to the number of qualified women engineers in your region, the number of positions you have open to fill is tiny. Spend a bit of time doing web searches or just reflect on people you know or have heard about and put together a list of 10 amazing women and people of color who would be part of your dream team — if you could hire anyone who would it be? Look at the people who speak at conferences centered around your technology, blogs, books, etc. Look to your local meetups. If you have budget for relocation, broaden your search. Once you have your list of 10, methodically go through the list and try to meet each of them. Follow them on twitter, go to where they are (meetups, conferences), reach out and have coffee or lunch. Start a conversation about shared interest in technology. Seek out their opinion on something they are expert at. See if they are happy in their job. Would they consider a new one? If not, ask who they know who would be good. Do not qualify your request with gender or race.

If you are really lucky and good, one of your dream team will come work with you. If not now, sometime in the future. You might find a new advisor or a new friend. You have definitely expanded your network, and if you show up at events where women and people of color are speaking, who you admire and are relevant to the position you are hiring, your next team member may be in the audience.

Important Details

If you want a great team, you want to have a tough decision to make between two or three amazing candidates. Do the hard work. Get the details right.

Post the Job

A public link is the easiest was for people to help you recruit. It’s amazing how many people post their job late in the recruiting process or not at all.

Write a Good Job Description

Think about why you want diversity and add requirements that will find those people. For example, if you the person will be responsible for hiring, consider adding a requirement “experience leading diverse teams.” You are more likely to attract diverse talent and find someone who has a network of diverse talent, in addition to actually finding someone to lead the team you want to have.

Consider what you actually need in someone performing the job and include that in the job description. Give thought to the words you use. Find a few people with different backgrounds who are qualified for the job give you feedback on the job description.

Confidence != Competence

Interview for skills. Look for evidence they have done similar work. Ask about what they did individually to lead to outcomes in past work. Don’t get sucked in by bravado from people in the majority crowd. Don’t mistake quiet for weak. Watch your own biases. Be on the lookout for greatness that doesn’t look like you.

Always Be Recruiting

Get involved in a local meetup. If there aren’t diverse speakers, talk to the organizer and see if you could help make that happen.

Host a RailsBridge workshop, ClojureBridge workshop, or make a *Bridge for your language or framework. Host
Women Who Code hack night or study group, maybe Girl Geek Dinner. Even if you don’t find engineers from these groups who want to work for you, many women will be more likely to work for a company that is actively trying to be part of the solution.

If you can hire less experienced talent, recruit at women’s colleges (in the SF Bay area, I’ve heard great things about Mills, a local women’s college where the CS dept has a great reputation) and look for colleges which have a good diversity track record, like Harvey Mudd.


At Blazing Cloud, I hired over 20 people with 50-50 gender balance, but I’m most proud of the other kinds of diversity — people with and without CS degrees, early experience in Java, C and SmallTalk, sailors and farmers, awkwardly dressed and stylishly hip. Whenever we did user research, chances are someone on the team knew a group in our target audience. Our diversity fostered creativity and was a key component to our success.

These tips are based on over 20 years of experience building technical teams. I wasn’t born knowing how to recruit women because I’m female. Most of the engineers I’ve worked with are white men, so I started with the same challenges as everyone else. Over the last ten years, I worked to develop a network and I have repeatedly applied these simple, yet time consuming techniques. You can too.