The event commenced on Monday, when they had a series of tutorials and I took the opportunity to pick up my badge and get acquainted with the event staff. In the early evening I went to the venue, AVALON Hollywood to complete my A/V check. My laptop is restricted to display port and VGA and I think they mostly expected Macs, so I had a pile of adapters at my side to figure out which would work best. That’s when I got my first glimpse of the historic venue that the conference was hosted in, it was a beautiful space for a single track conference. Also, there was a really nice ceiling piece.
That evening I met up with the organizers and my fellow speakers at the EP Lounge. I really enjoyed this gathering, it was small enough that I felt comfortable, everyone was super friendly and eager to include shy, introverted me in their conversations and I met a whole slew of brilliant people. That’s also where they presented speakers with our speaker gift, CodeConf Vans SHOES! I’m still breaking them in, but they fit really well.
Tuesday kicked off the post-tutorials conference. Breakfast was provided via a series of food trucks in an adjacent lot. In spite of the heat, it was a great setup.
Conference-wise, I can’t possibly cover all the talks, but there were several which were notable in that I learned something new or was somehow inspired. Michael Bernstein got us started with a talk about “The Perfect Programming Language” where he told a story about an old notebook that outlined the key features of “the perfect programming language” but taught us that perfect goes beyond the code. Not only does the perfect programming language not exist, it’s also about things that are less glamorous than language mechanics, like documentation, testing, packaging and practical adoption. The perfect programming language, he posits, is the one you’re using now. He also implored the audience to rise above language wars and to instead appreciate the strengths of other languages and adopt from them what they do right.
Mid-day I had the pleasure of listening to E. Dunham talk about the community processes in the Rust community. What I particularly loved about her talk was that she addressed both how the social components of the community and the technical ones create a better atmosphere for contributors. The social components included having a high expectations for the behavior of your community members (including a Code of Conduct), providing simple methods of communications for all contributors and being culturally supportive of showing appreciation for contributions people have made, especially newcomers. On the technical side, she talked a lot about robots! Bots that send a welcome message to new contributors, bots that test the code before it’s merged, pull request templates on GitHub to help guide new contributors and more. There’s no replacing the personal touch, but there’s a lot of routine work that can be done by bots.
After lunch Anton McConville presented a talk about natural language processing by using his David Bowie Personas tooling. The heart of the talk was the modern ability to process natural language (say, your tweets) to draw conclusions. He demonstrated this with his Ziggy | Bowie Personas through lyric analysis website which is powered by IBM’s Watson and IBM’s natural language analysis tooling. Through his tooling and website he did an analysis of David Bowie lyrics across albums and decades to track various emotions and map them to the artist’s public personal history. In addition, there’s a feature where you can put your own Twitter handle in to see which David Bowie personal you most closely match with.
Another notable talk was that by Mike McQuaid on The Contributor Funnel. He used the well-known sales tunnel as an analog to present different, fluid groups of people in your community: users, contributors and trusted maintainers. The point of his talk was that efforts should be continually made to “upsell” community members to the next level of contributors. You want your users to become contributors, contributors to become maintainers and maintainers with the mindset to foster an environment where they can continually accept and welcome the newest generation of new maintainers. He suggested not making assumptions about users (like they know how to git/github) and have a new maintainer checklist so you don’t have to remember what resources tooling new folks need to be added to. He also talked about avoiding bikeshedding in communications, having a code of conduct and making constant growth of your community a priority.
I really enjoyed the next trio of talks. First up was Anjuan Simmons about Lending Privilege. What he meant by this was to work not only toward building up diversity in your organization, but also factoring in inclusion. His talk stressed the importance of what people in the majority populations in tech can do to help minorities, including lending them your credibility, helping them with access to the tooling and levels of trust they have, encouraging them in their roles and sharing of expertise. On a personal note, I’ll emphasize that it’s easier to be a mentor to people who you share a background, race and gender with, which results in minorities struggling to find mentors. We must do better than what is easy and work to mentor people who are different than we are.
David Molina then presented what was probably the most inspirational of talks at the conference: What Happens When Military Veterans Learn to Code. Through the organization he founded, Operation Code, he is seeking to put veterans in touch with the resources they need to get into code camps and launch a new career in programming. The organization accomplishes this through scholarships for veterans for code camps, recruitment of industry mentors (like us!), open source projects within the organization where their code camp graduates can publicly demonstrate expertise, and job placement. It was interesting to learn that the GI bill does not support code camps since they aren’t accredited, so in addition to handling the status quo through external scholarships, he’s also working with organizations to get accreditation and petition for modernization of the 1940s-era focused requirements for the GI bill, many of which don’t help veterans get job-ready skills today. I’m incredibly appreciative to David for his own service to our country as a veteran himself, his commitment to his fellow veterans and for bringing this to our attention.
The final talk of the day was about the Let’s Encrpyt initiative. I’ve known about this initiative since the beta launch last year but I’ve been cautious about moving from CAcert for my own domains. Speaker and one of the founders, Josh Aas, spoke on the history and rationale of the project, which seeks to enable all sites to have at least the most basic SSL certificate, which they provide free of charge. They also have a goal of making it much easier process-wise, as the current process tends to be very technical and complicated, and varies greatly based on the SSL certificate vendor. I have to say that I’m much more inclined to seriously consider it the next time I renew my certificates after seeing this talk.
Wednesday began with an excellent talk by Nadia Eghbal, on Emerging Models for Open Source Contributions. She walked us through the history of open source with an eye toward leadership models. She covered the following:
- Early days (1980s through early 90s) where Benevolent Dictator For Life (BDFL) was common. Leadership was centralized and there were a limited number of contributors and users. This model is simple, but tended to make companies nervous due to control of the project and ability for it to continue should the BDFL cease involvement.
- Maturing of open source era (late 1990s through 2010) where meritocracy ruled and commitment to the project was still required. This helped highly competent (though non-diverse) communities grow and started to get companies involved.
- Modern open source communities (2010 through today) where many projects have adopted a liberal contributions model. With tooling like GitHub, contributors have a common set of tooling for contributions and one-off contributors are common. Sheu shared that of the largest projects on GitHub, many had a large percentage of contributors who only contributed to the project once. This style of contributions was more difficult in the past when you may have needed to be known by the BDFL or needed merit in the community before your contributions were reviewed and accepted.
I also liked that she didn’t just put all these methods into boxes and say there was a one size fits all model for all projects. While the leadership models have mapped to time and eras in Open Source, it didn’t necessarily mean that the newer models were appropriate everywhere. Instead, each project now has these models to seek ideas from and evaluate for their communities. I found further details about her talk here.
There was then a talk by Mitchell Hashimoto of HashiCorp on The HashiCorp Formula to Open Source. Having produced a series of successful open source projects, of which I’ve used two, Vagrant and Terraform, Mitchell spoke on the formula his company has used to continually produce successful projects. His six-step path for success was the following:
- Find a problem and evaluate other solutions on the market
- Design a solution with human language (don’t write code yet!)
- Build and release the 0.1 version based on a basic reference use case and spend 3-6 months on it (no more, no less)
- Write human-centric documentation and a landing page (these are different things!), partially so you can effectively collect and respond to 0.1 feedback
- Ship and share (0.2 should come quickly, aim for production-ready 0.3-.0.5 releases and then give talks about it!)
Of course his excellent talk dove into a considerable amount of detail on each, which is worth considering if the video is made available.
My talk was at noon, where I spoke on building an open source cloud (slides, PDF). The focus of my talk was squarely on OpenStack, but my recommendations for use of configuration management for maintainability and expertise you want on your cloud-building team were universal.
Thanks to E. Dunham for snapping a photo during my talk! (source)
After lunch I really enjoyed a talk by Tracy Osborn on Design for Non-designers. I’ll begin by saying that I have the utmost respect for designers who not only have the education background in design, but have design as a career. I have paid web designers before for this very reason. That said, as a systems engineer I can use all the help I can get with design! The talk format was a brief introduction to how design is taught, and how she’s not going into that, and then demonstrating considerable improvements that could be made to a dialog window with the suggestions she outlined. She covered: cutting down on clutter, lining things up, use of color (see pallets like those at ColourLovers.com for inspiration), use of a maximum of two fonts (use TypeWolf to find open source fonts to use), use of white space, use of bright colors for important things on your page and a super quick tutorial in migrating paragraphs to a series of bullet-points. I’m really taking these recommendations to heart, thanks Tracy!
The final two talks that really spoke to me were on public data and a tooling unspecific look at debugging. First up was Tyrone Grandison from from the US Department of Commerce. I’ll start off by saying I love open data talks. They always make me want to learn more programming so I can come up with fun and interesting ways to use data, and this talk was no exception. Tyrone himself is a self-proclaimed data geek, and that showed through, and his relatively new team has been really productive. They’ve been supporting US government organizations releasing their data in a public, usable form and in turn writing tutorials to help organizations use the data effectively. I’m really impressed by their work. A link dump of resources he shared: US Commerce Data Service, US Commerce Data Usability Project and US Commerce Data Service on GitHub, which includes aforementioned tutorials.
The last talk was by Kerri Miller on Crescent Wrenches, Socket Sets, and Other Tools For Debugging. I was somewhat worried this talk would be about specific technical tools (maybe crescent wrenches and socket sets are open source tools I don’t know about?), but I was pleasantly surprised to hear a very humor-filled, entertaining talk instead about a high level view of debugging. By providing a high level talk about debugging, she presented us with a world where you don’t make assumptions, are methodical about finding solutions but still have a lot of room for creativity.
To conclude, I had a wonderful time at this conference. I also want to applaud the CodeConf LA team for presenting such a diverse program of speakers. I have a great appreciation for the variety of perspectives that such a diverse conference speaker lineup includes. It also proved yet again that you don’t need to “lower the bar” to have a diverse lineup. All the speakers were world-class.
More photos from the event here: https://www.flickr.com/photos/pleia2/albums/72157667666687824