16 April, 2015
tl;dr: This is my first blog post ever. It’s very long. I decided to tell it as a story of the entire experience. If you just want to know about the conference, skip down to the General Conference Overview section below.
I suppose I should start by admitting that until essentially this very moment, I’ve always been an Internet Lurker. StackOverflow has always been a place to get answers, not give them. (I still don’t have an SO account.) Twitter was a place to find out about tech news and constantly retweet things to the few people who know me in real life and have likely muted me on Twitter.
So it was that I found myself reading a tweet from Phil Haack (@haacked) about an open source .NET conference coming up. I’d never been to a .NET conference. In fact, I’d only ever been to one development conference period (the first fluentConf a few years back.) If I’m honest, I’ve also never been more excited about the future of .NET, because of the massive open sourcing efforts inside Microsoft and the cross-platform nature of the new .NET Core. I love C# and .NET and am truly excited about their future.
The conference was coming up quickly (in less than a month), and there still wasn’t any information about what topics people were going to cover in their talks.
Disclaimer: Troy Howard (@thoward37) later announced at the conference that the entire thing was put together in a few short months, so I consider it pretty amazing there was even a Website.
That being said, I was left wondering if I could get budget approval. I shot off the request email to get my teammate and I out there on our training budget.
A week later I still did not have approval, but now the site was populated with speaker topics. This was a Friday night, just two weeks before the conference. I was now more excited than ever about attending because all the topics looked fantastic, so I did something I’ve always disliked in the work environment: I became a squeaky wheel. I text my boss asking him for approval, stating I was willing to take vacation and pay my own way to attend.
Twenty or thirty text messages later, and we had approval to attend. My colleague (let’s call him “B”) and I were going to .NET/FRINGE. Special thanks to those responsible for the approval; you know who you are.
Trying to figure out the corporate travel portal and the rules to follow to make your expenses legal was a pain, and doubly so on the weekend, when normal people do not respond to email. It wasn’t until Monday morning that I had my answers on how to book travel and lodging for the two of us. By that point, almost every hotel in the city was booked.
How is that possible? What in the world is going on in Portland in the middle of April that is so exciting? That’s right folks, Garth Brooks was back on tour. After years of retirement, Garth Brooks was touring in the one city in which I was trying to book a hotel room. Things were not looking good. I nearly booked a room in a hotel that had multiple reviews about human feces on the walls. Luckily, with B’s help, I was able to reserve a solid-looking hotel room. As luck would have it, the public transportation system in Portland is great. The main bus route would take us just a block away from the conference.
I once spent six hours stranded in O’Hare due to an overbooked connecting flight, only to reschedule the trip and fly back home. I didn’t want to do that again, but as I booked our flights I received a notice about the airline asking for volunteers. My stomach sank, thinking about not making it, but I decided to push on.
On the morning of Saturday, April 11, I picked up B and headed into the airport. After going through security and hanging out at the gate for a while, a voice came over the PA system stating that there were mechanical issues with the plane (apparently it doesn’t steer very well.) There was going to be a delay. If we were nervous about our connecting flight times, please come to the counter.
Portland was not going to happen today.
At this point, I was suffering from a very serious case of “@#)$ IT!”, but I asked B to be the voice of reason. Should we just miss the day of workshops, and still try to hit the talks? Yeah, let’s do it. There are flights tomorrow, it’s the weekend, and we’ll still get to see all of the talks and make it to the pre-registration gathering.
Before leaving the airport we called the hotel, called the airport shuttle company, and confirmed our flight tomorrow at the airline’s counter downstairs. Even though it was too early to check-in for the connecting flight, we confirmed that we would be able to get seats. As usual, I was skeptical.
Seat Request 2: The Overbooking
Sunday morning we were back at it again. Boarding passes in hand, we cruise through security, make it to the gate, and this time see an actual plane waiting at the end of the jet way. Things are looking up.
We land in Minneapolis with about 30 minutes before our connection. The connecting flight is on the same airline. This is going to be cake, probably the next gate over or something…at least the same concourse.
Nope. Our connection was at the complete opposite end of the airport.
By the time we made it to the gate, the plane was in the middle of boarding. The two people in front of us are already standing around waiting to see if they can get a seat.
There were six of us in total without assigned seats trying to get on this flight. Luckily, we all made it. I don’t think there was a single seat to spare. Who doesn’t want to sit next to the bathroom on a nearly four hour flight? It doesn’t matter! We’re on board, and we’re going to make it.
After our shuttle dropped us off at the hotel we checked in and found a place to eat across the street. Reading the menu, we both wondered what are Northwest Fries? Yeah…they’re French Fries, exactly like everywhere else. Keep Portland Weird. :) After a full day of travel, regular French Fries with a fancy name were great, exactly what we needed.
Now to figure out how we were going to get around. Google Maps is surprisingly up-to-date with information about the TriMet transportation system in Portland, and we discovered later that there’s an app for that. Of course there is. We walked a half-mile or so from the hotel to the nearest MAX station, purchased bus passes from the kiosk, and rode down to the conference area.
After stupidly following me back in the direction we came, B offered up that we might see something more interesting if we head towards the river. He was right.
Portland is a beautiful city, and yes, it is hipster. We saw more than one person riding a giant double-decker bike, something so outlandish that it could only be found in Portland. Bikes are everywhere in Portland. I couldn’t get over a particular street we crossed downtown that was 50% bike lane, just a giant streak of green paint as far as the eye could see.
We stopped for a seat at the Pioneer Courthouse Square, where I enjoyed watching a few kids skateboarding. My inner teenager couldn’t believe it when I saw a police officer stop some kids from skateboarding in the square, especially given how relaxed Portland seemed to be. I guess riding a bicycle down the street while you’re 10 feet off the ground is cool, but skateboarding in a large open area without moving vehicles around is something to be concerned with. /shrug
After the people-watching rest, we walked back across the river to the Bossanova Ballroom, the location of .NET/FRINGE. This was it. Time to…wait in line. It was awfully lucky that there was already a line waiting to register. We weren’t in line for more than a few seconds when a guy who looked very familiar walked up and started talking to me like we were old friends. I knew I had seen him on the Web before, but I could not remember from where. I was pretty sure he worked at Microsoft. (Okay, he just used to work at Microsft) That’s how I met Noah Addy (@UXNoah).
I’m not great at breaking the ice or starting a conversation. I know that’s common amongst developers, but it always feels like I’m the only nervous guy in these situations. Noah was the easiest person to talk to and absolutely a sign of things to come in the open source .NET community at FRINGE.
Everyone there was welcoming. I never did jump into a conversation as easily as I did with Noah, but luckily other attendees and organizers had no issues with introducing themselves and showing real interest in the work I do, which is amazing considering it doesn’t involve any fun open-source community projects Remember, I’ve been a lurker.
After we made it through registration, I saw Scott Hanselman (@shanselman) showing off something to a group of people. One of the first reasons I was excited to attend .NET/FRINGE, even before the topics were announced, was the chance to meet Scott or Phil. I’ve been learning from these guys on the Web for years. Could I actually meet them and not look foolish?
Nope…well, not without looking foolish.
A short time into the party, luckily before I had finished my first beer, Noah introduced me to Scott Hanselman. “Scoooott”, I said, with my hand extended, “Joe Vetta. Nice to meet you.” Meanwhile, I can see the look of confusion in his eyes, and I can hear the way I said, “Scooott”, ringing in my head. Idiot! You don’t know this guy. You just read his blog and tweets.
Much like all the travel and planning hiccups leading up to this moment, and all good and bad moments in life, this one too passed by quickly. I stood by the side while Noah and Scott exchanged a few words, discussing an attendee that Scott had just finished excitedly talking with, Jasmine (@paladique) from Rockstar Games. Noah and a guy named Jim (I’m sorry, Jim, that’s as far as our introduction made it) immediately took off to find Jasmine.
“Oh no. C’mon Joe, say something smart. You’re talking to Scott Hanselman,” I thought. I’m not completely clear on the order of events, but I was able to ask Scott about the 3D printing stuff I had heard about. We had a fairly normal conversation, and then we checked out some of his gadgets that I had seen on his blog before. Then Scott needed to find something to eat, so we parted ways.
I remember thinking, “Wow. He’s so polite. I’m pretty sure he didn’t want to talk to me (as I’m not interesting in the least), but he never made me feel like he didn’t want to talk to me.” That and Noah’s ability to start up a conversation with anyone are two skills I hope to learn and master some day, hopefully even by attending conferences in the future.
Rockstars and Thoughtworks-ers
After Troy introduced that evenings entertainment, I turned around and gave this whole introducing myself thing a shot. I met Valerie (@enginerdlinger) and her co-worker (whose name escapes me) from Thoughtworks, and was immediately jealous. Thoughtworks is a huge name in software and a sponsor of .NET/FRINGE.
After talking for a few minutes, Noah stopped over again, this time with the aforementioned Rockstar, Jasmine. We had a good time chatting for a while. I just kept peppering everyone with questions, wondering what it was like to work for these great places, all the while feeling a bit out of place. I felt like an imposter among software legends.
Great and missed opportunities
I owe almost all of my introductions that night to Noah. Later that evening, Scott even approached me and talked some more. I got to take a picture of Noah and Scott, which was later posted on Twitter with the #DotNetFringe tag. I felt like I fit in…even with these people who do great things.
One thing I do regret is not being more proactive in trying to start conversations and meet more people. I saw Phil Haack, but never met him. I even watched him and Grigori Melnik (@gmelnik) play Ping Pong with two pros, but still avoided the opportunity to say, “Hi.”
Absolutely everyone I met there was welcoming and kind, and everyone I didn’t meet there seemed equally so. If anyone who was there is reading this, I hope to talk with you (again if applicable) next time. If you see me standing around, please invite me over. Maybe by next year I’ll have contributed to one of your projects or started one of my own. Maybe I’ll even be speaking. One can dream.
.NET/FRINGE was made up mostly of 30 minute talks. That time frame seems at first to be a bit on the short side, but after being there, I thought it was perfect. The format was long enough to really learn something, but not so long as to lose the interest of the audience, even in the dreaded after lunch slots. All of the speakers were well prepared and had great presence.
The location also seemed odd at first. There was some battling between the main stage audio system and the mezzanine audio system, but overall the entire event went off without a hitch. Even the lightning talks held immediately after lunch were fun 5 minutes blasts of information.
The food carts/trucks were some of the best food I can remember having, seriously. I also couldn’t get over how so much of the food and beverage were just covered as part of your inexpensive ticket price. I have to give huge props to the event organizers for essentially leaving me wanting for nothing, even though they crammed everything together in a few short months.
The parties were fantastic. Once again, I regret not reaching out to more people at Pips & Bounce or the Github Meetup at Rontoms, but that’s on me, not the event. I have never played Ping Pong under a black light before, and it was a lot more fun than I ever expected it could be. And finally, thank you to the person who decided to play Charles Bradley, a new-to-me Soul artist, who I will be seeing live later this summer (thanks also to Ryan Hauert (@RyanHauert) and his Shazaam client for telling me who it was).
Finally, the talks. I wonder if anyone has made it this far. This is probably the worst publicity .NET/FRINGE could get, some long-winded no-name talking about travel and social anxiety.
The talks at .NET/FRINGE were some of the best I have ever seen. These talks were so moving and honest that they’re the reason this blog exists. They finally gave me the motivation to beat the fear of looking stupid. Maybe this format is a mistake. It definitely seems too long, and of course I’m going to have to make style changes to my bare-bones Pretzel site. That doesn’t matter.
One of the biggest messages I received from the presenters at .NET/FRINGE was that you’re going to make mistakes, have awkward and angry moments, and sometimes look stupid when you join a community and play an active role. It’s okay. That’s all part of the process. It’s a part of what makes this community great. It’s a part of what makes open source actually work.
There were some cool technologies and techniques displayed at .NET/FRINGE, but for me, the talks that really stuck were the ones about being a member of the community. Up to this point, as I’ve said, I didn’t consider myself a member of the community. I felt like I was crashing the “Family Reunion” that Scott mentioned in his talk.
I won’t point out all of the talks, but I want to call out one in particular. The Joys of Being a Maintainer, was a talk given by a team of three: Brendan Forster (@shiftkey), Justin Rusbatch (@jrusbatch), and Keith Dahlby (@dahlbyk). These gentlemen were so open and honest about the challenges they faced and the mistakes they made over the years that I kind of felt stupid for being so afraid of contributing. Here were three separate individuals, all of whom maintain great open source projects, up on stage speaking at an open source conference about how badly they felt about their performance.
This was an eye-opening moment for me, much like when people discuss the imposter syndrome. Except this time I really believed it. It finally clicked. Everyone of these people feels inadequate to some degree. These people, who actively build amazing products because of their pure joy of doing so, who spend so much of their lives learning to be great, and who I look up to in so many ways, all feel the same way I do. The difference is that they don’t let those feelings paralyze them.
They get out there and do it, knowing that not every idea is going to be ground-breaking. Scratch your own itch first, and maybe others will find your project useful. Even if they don’t, you do. The journey and challenge of building it will be worth it, even if no one else uses it. Even if the world around you thinks you’re an idiot for writing a novella of a blog post, the experience of writing will make the biggest difference in your life.
This is why many of the “talks” at .NET/FRINGE didn’t feel like normal conference talks. They were messages, personal messages. They were a call to action to developers everywhere saying, “Join us. Come be a part of our family. We may argue with you or politely decline your pull request, but we’re all just imperfect human beings who love software. Come build some with us.”
Once it was all over, once I was back in WI, and once I had finally dropped B back off at his house, I turned up the radio just as Taylor Swift’s 22 started to play.
I did what any self-respecting lonely nerd would do: I cranked the volume up even further and sang along. While I was laughing at how ridiculous I am, I realized I really did feel 22 again. .NET/FRINGE had made me feel young again. For the first time in years, I was excited about software. I was excited about open source. I was excited about joining a new family, the community of open source .NET developers who welcomed me with open arms and fist bumps.
Thank you .NET/FRINGE. I hope to spend the rest of my days contributing to you all, paying you back for helping me feel this way.
Comments: Please hit me on Twitter @joevetta if you have any comments. I’m sure at some point I’ll enable Disqus on here, or generally update this site. For now, I’m “embracing the suck” and just getting this out there.