Last week was a big week for me. I started a new job at Google and my kid graduated from high school. These big changes seem to have arrived all at once, though in reality change is constant.

I’ve spent a lot of time over the past 4 months reflecting on US Government transformation and the small, yet significant impact that one human can make. When I decided to leave at the end of my two-year term at 18F, I knew exactly what I wanted: find a group of smart, fun people who are trying to do something challenging, yet possible, that has the potential to make a big impact on a lot of people’s lives. I wanted to make (or improve) products for regular people. I didn’t need to save the world. I wanted something intellectually challenging that would let me solve different kinds of hard problems, the familiar kind that I’ve been solving my whole career.

At this point in my career, given my tech experience, folks think it is easy to find a job. And, yes, it is easy to find a job, but finding the job where I’ll be happy and be able to effectively apply my skills is hard. Those of us who don’t look like Mark Zuckerberg need to do a bit of homework to validate that we’re joining the right kind of team, and a company where you can be an effective leader and collaborate with difference. I knew the kind of people I wanted to work with, but was pretty flexible of the kind of tech, so it took a bit of research.

I started to get together with people I’ve worked with before who I respect and they introduced me to new people… in almost 5 months I only got about a quarter of the way through my list and met many more folks. To keep track of my random schedule of meetings and introductions, I started tracking everything in a spreadsheet… since December 26th, I’ve had almost 100 meetings or phone calls with 83 people, which led me to seriously consider 10 companies. I interviewed with 5 of them, had job offers from 3, and finally had a really difficult choice. This was actually my goal. I’ve never actually done this kind of job search before, but it is similar to how I usually approach hiring. I like to have good, tough choices.

On of the reasons the choice was hard was that I was biased against Google based on their hiring process. I still think their hiring process is a problem for them attracting and selecting the best talent, but having spent the last three years working for the federal government, I have a lot more empathy for large systems and organizations. I talked to a lot of people inside Google to assess their internal culture and the groups I considered joining. I found a lot of genuinely good and caring people who share my values about building great teams and creating great software. Also, after working for the federal government, I joke that I’m ready to join a small company, like Google, which is about half the size of the US Dept. of Agriculture.

In selecting a new job, I found that the journey, as well as the destination, helped me figure out some things that really matter to me.

An Open Source Project

I hadn’t really understood until last month that open source is not only something I believe is important for government services and non-profit work, but that I value how it enables me to work. I love the impromptu collaboration with like-minded strangers that happens when you work in the open.

Some time ago, Google quietly released Vanadium on github. If you search for it on google you find lots of information on the element which is an essential mineral in the lives of sea squirts.


The technology emerged from a research group at Google, and allows for secure peer-to-peer messaging.

Connected Applications

Connected applications have become widespread in the last decade, with the rise of social networks, messaging apps, and online collaborative tools like Google Docs which let people see each others’ edits in real-time. For the convenience of developers, these online interactions require people to be connected to the Internet. We have transformed the Internet from a resilient, distributed network to a more fragile place where we all have to be connected via central servers. I love Google docs, and understand how powerful it can be to use in the classroom; however, I agree with parents’ concerns about privacy. There’s really no technical need to store all of our personal information in the “cloud.” Technically we could create local clouds, where information never leaves a classroom, home or office. This could have a significant positive impact for privacy, and also for the developing world where Internet connectivity is expensive, intermittent or simply unavailable. So, I guess part of me wants to keep trying to save the world, after all.

What’s Next

I’ll be leading a small team within the Vanadium group. For me, this connects to the work I was doing at the turn of the century with multiparty communication. Under-the-hood it’s a lot like what I was working on when we created the Flash Media Server, except it’s not focused on media, and it doesn’t require a server, and it has nothing to do with Flash. I have a lot of ideas about how technology can help humans connect with each other, and maybe I can help bring some of those to life… or, even more exciting, develop new ideas that make sense in this future we’re creating.

I just started at Google. I’m not sure yet whether all of my ideas align with theirs, but I can already tell that I’m joining an ambitious group of talented engineers who aspire to create a positive impact on the world. I’m looking forward to whatever happens next!

frances-braggI was the only grand-daughter of Frances Clara Kiefer Bragg who passed away on March 11 just 15 days before her 108th birthday. She was a loving, yet formidable force in the world. As a child, we would often visit her in her home in Cambridge when we lived near Boston and when we lived in other countries, she would visit us for a few weeks or months. Small lessons were embedded in our interactions, and there was always a proper way to do things. We needed to know how to conduct ourselves in society: when you set the table, the knife points toward the plate, always hang paintings at eye-level. There was a right way to make borscht and chicken soup. I learned sewing, cooking, and appreciation of fine art from my grandmother. She told funny stories of her travels, and family history, sprinkled with anecdotes of poets, writers and presidents.

As a teenager, I rebelled and stopped doing all of the things I was told to do. I figured maybe one didn’t always need to write a thank you letter – sometimes a phone call would be even better. And also, as a teenager sometimes I just didn’t feel like doing what was right and proper.

Now, reflecting on those early lessons learned from my grandmother, I wonder if the impression stuck with me that whatever my grandmother did was the appropriate and proper thing to do in society. I followed her lead in other ways. It felt appropriate and proper for a young woman to travel alone in Europe, and that one must speak one’s mind, as long as it is done politely.

Somehow it all seemed normal that my Grandma visited my cousin in India and rode on the back of his scooter. I couldn’t find that photo, but I found this one, I think from that same trip…


Fran spoke French, German and Russian quite fluently at times, along with quite a bit of Spanish and Italian, and random phrases in half a dozen other languages. She lived in the real world of typewriters and tea. She could remember when the ice-box was kept cold with real blocks of ice. She told stories of when her family got a telephone, and when her father proudly drove their first car.

In the 90s, I tried to get her connected to the internet, telling her that she could send email in an instant for $20 per month. She asked, “why would I want to do that, when sending a letter costs just 32 cents? I don’t send that many letters every month.”

While we lived on this earth in some of the same decades, during these years of my adult life, we inhabited quite different worlds. From my world of software and silicon, I recall that people used to say of Steve Jobs that he created a reality distortion field, where people would believe his vision of the future — a future which would otherwise be unrealistic, yet by believing in it, they helped him create it.

I believe Fran had that power to create her own reality distortion field where people are witty, and heroes emerge from mundane events. Memories are versed in rhyme, silliness is interwoven in adult conversation, and children are ambassadors of wisdom. Memories of my grandmother are splashed in vivid watercolor or whimsical strokes of ink. Postcards can share a moment. Words have layers of meaning, which evaporate upon inspection.


How does someone learn leadership, especially technical leadership? I believe that leadership skills are skills you need to become a great coder. We develop software that is used by tens or hundreds or tens of thousands or hundreds of millions of people. That is a kind of leadership in action.

silhouette of a girl on a beach with shadow reflection in the wet sandTechnical leaders start leading before anyone is following them. You might be young or inexperienced. You might not manage anyone. You might think no one is noticing you or your work, and maybe nobody is.. yet.

You solve real problems. Not those imaginary ones that are really fun and require the latest library all of your friends are talking about. You refactor your code so it is reads clearly, so someone else can modify it easily later.

You read good books and thoughtful blog posts. You experiment with that new library, in a sandbox… taking a few hours every week to check out some new tech and thinking about whether it will solve a problem you actually have.

You are always learning.

You reflect on your project… not just your code, and the code that was there before you, also the code your colleagues checked in yesterday. You reflect on how we work together, are we writing code that will actually solve the problems we’re here to solve? is there anything else preventing us from doing good work?

Tips for Learning Technical Leadership Skills

1. Be Helpful

Be helpful to someone who needs it. There is always someone who knows less than you, who is much earlier along their path.

  • Mentor someone, pair programming
  • Contribute to open source
  • Write good bug reports (then fix them)
  • Review other people’s Pull Requests
  • Ask good questions & answer them (open issues on an open source project, StackOverflow)

Getting involved in open Source is a great way to hone your skills. Find an open source project in a language you like (or need to be good at).

Ask good questions

There’s an art to asking a good technical question.. Refining your ability to form a good question leads you to hone your understanding of the problem…

  1. Context. What are your dependencies? What versions are you using?
  2. Where have you already looked for an answer?
  3. Reproduce the problem in isolation
    • code snippets
    • screen shots
    • github repo with simple, standalone example


  • Always leave the docs better than you found them
  • Install instructions
  • Tests are documentation
  • Start a Blog

On Blogging: start with what you are doing (simple “how tos”), then think about how to express why you are making the choices you are making at work or in one of your open source projects. The next time you try three Node packages or Ruby gems before picking one, write about it. Which Javascript promises library do you like and why?


Show your work, tell people about the open source project you just contributed to, get used to discussing your solutions technical problems (in the morning before the day starts, over lunch).

  • Present informally to your friends & colleagues
  • Volunteer to teach
  • Speak at a Meetup
  • Propose conference talks

Start by volunteering at a RailsBridge Workshop, or MobileBridge, ClojureBridge, or whatever tech you are most interested in, most want to be good at, and most want to be known for. This will give you the chance to meet people you will learn from, and to find people you can mentor.

Hone your speaking skills. Attend a meetup for a while, find one that’s friendly with a range of talks, and get to know the organizers. Propose a talk that teaches something you recently learned or whatever you are particularly excited about, then you’ll be ready to talk at a conference


Often software choices are driven by fashion, by what the cool kids are talking about, by what’s trending on Twitter…

You focus on the needs of the project, not the new shiny object, not your personally favorite feature. You are pragmatic, you balance between the tools at hand & those you want to learn. You balance what the project needs right now with your own personal career goals. If those are out of balance for too long, you find yourself another team, another place that needs your skills.

As leaders, we put ourselves on the path that needs making.

To create a path, you need to see it in your mind’s eye. We don’t become leaders in a vacuum. We build on the ideas, vision and creations of others. But once you see a new path… you need to figure out how to let other people know it is there… you can use words and you should, but as technologists, we have special powers. Learn to prototype, to express your ideas quickly in code.

– an excerpt from my 2016 hack.summit() talk on leadership