Vermont Code Camp 5 (#vtcc5) was a blast this year. As much or more fun than last year. I’m impressed how little ol’ Vermont can attract such a big crowd for an all-day-Saturday tech event (and on such a nice day, too) — including speakers from up and down the east coast. I had a tough time choosing which talks to go to, but each one I attended was excellent.
For the first slot of the day, I attended Adam Bouchard’s (@adambouchard; Agilion Apps) talk titled “Build Working Software Faster”. It was a non-technical talk with a slide that stated its very simple purpose: This is about delivering.
I took seven pages of notes during Adam’s talk and found him saying a lot of things that resonated with me. He talked about breaking projects into preparation, planning, and execution phases which roughly align with understanding why of a project, the how of a project, and the what of a project. He described how they parlayed that three-part understanding into something at Agilion they call “Lean Vision”. Adam also emphasized how important it is to take breaks; one slide gave a simple strategy for coping with stress and burn-out: Sleep, Eat, Get Active. My notes are peppered with little memorable aphorisms from that hour:
- Code last.
- Have the discipline to revise your plan.
- The whitespace in your plan is everything you don’t know.
Check out Adam’s slides for yourself.
Next up was Rachel Reese’s (@rachelreese) introduction to F# (slides on Github). I’m not regularly on the .NET platform,1 but my interest in functional programming is what drew me to the room. I think there’s this tendency to think that what’s going on “in your world” — and for me that means the worlds of front-end development and the JVM — is somehow unique to your world. This introduction to F# was an interesting view into the .NET developer community and how they are going through the same latent transformation as the one’s I’m observing in the JVM; here’s this interesting functionally-oriented language (F#) that has interoperability with your standard libraries (e.g., C#) and compiles to run in the same VM that you usually use to run your programs (the CLR). My notes had the following: F# : .NET :: Scala : JVM?
Also, if you get a chance to see Rachel speak, you should. She’s fantastic.
(There she is telling the room how factorials are the “Hello World” of functional programming.)
This is a talk about availability and performance — which are things that your stakeholders care about but they don’t know that they care about until they care about them very much. So you should be caring about it from the start.
Toward the end of his talk, Peter had a great demo of some of Varnish’s features.
After lunch I found my way into Paulmichael Blasucci’s (@pblasucci) very-nearly-comprehensive talk on ZeroMQ (∅MQ). This isn’t my usual area, but that’s also the point, right? Go forth, branch out, and learn something new. And although I learned a few things about ∅MQ (most of which I’m still digesting), the other interesting observation for me was how liberally he used F# in his examples, and how much he emphasized how easy it is to get ∅MQ running in your environment. (He pointed out several times that it ships with bindings to over 40 languages.) The reason that this was interesting to me is that I believe there’s this latent bias out there that people developing for the .NET platform have a kind of tunnel vision and never look beyond Visual Studio — so it was refreshing to see some flavors of polyglotism happening here.2
Next up for me was a talk by my teammate Jonathan Pearlin. He presented on a project we’ve been developing at work where we built a system for remote configuration of applications on top of Apache ZooKeeper. I didn’t take many notes here because… well, that’s been my life for the past few months. Still… it was interesting to see him put it all together like that for an audience of non-co-workers.
Of course, the hardest part of the day was the final session slots where I had to decide between Pete Brown’s (@beerlington; Agilion, again) “History of a Thriving Code Base” and Alan Peabody’s (@alanpeabody; also Agilion) “An Elixir for the Web’s Future” and… giving my own talk. Needless to say…
…I gave my own talk. It was well-attended (Pearlin counted 45 people) and everyone seemed enthusiastic (which, if they were as tired as I was, was some kind of miracle). I had some good questions from the talk’s attendees. I definitely felt like I rushed through some of the material, and I had to start cutting things at the end there3 to fit in the most important stuff — but I think I at least got the most important points made, and made clearly. (Note to self: less ambitious talk next year.) Like I did last year, I’m hoping to get together a separate stand-alone blog post to summarize the points I made in my talk. But in the meantime: here is the Reveal.js deck and the example app.
(Thanks to Kevin Thorley for the snap of me speaking.)
Many thanks to Julie Lerman (@julielerman) and Rob Hale (@rob_hale_vt) and everyone else that helped to organize the event — including all the volunteers, speakers, and sponsors. Julie says she’s already committed to organizing the event next year. So I guess it’s totally appropriate to say: “See you at VT Code Camp 6!”
UPDATE: The Eventifier aggregation is here.
- And by “not regularly” I mean “not ever”. [↩]
- To be fair here: Blasucci’s examples were all demoed from Visual Studio, and they were by-and-large written in languages targeting the CLR (F# and C#; though at least one was in C++) but my point is that he really emphasized how important it was to work across different languages and different runtimes. [↩]
- Russ Fustino’s (@russcamtv) feedback to me: “Next time don’t tell people what you’re not going to talk about because they don’t know what you were going to talk about. They’ll never know the difference.” [↩]