In late February, Okta put on the ITERATE conference which they describe as a new type of conference. It was a one day experience themed around being the best developer you can be. The event was a free event centered around technical best practices, developer culture, security, productivity, and passion.
I was able to sneak away from our booth for two sessions both of which had a significant impact on me as a developer.
The keynote speaker was Jeff Atwood the co-founder of StackOverflow and Discourse. Jeff spoke about how games influenced his thinking when it came to building software. He exposed the difference in thinking that informed the building of these two platforms. Jeff stated that StackOverflow was designed to solve problems and not for discussions and chit-chat. He spoke to the fact that StackOverflow is a strict peer-based game focused on questions and answers and building reputation.
Discourse conversely was described as a discussion game based on empathy, fun, and storytelling instead of solving peoples problems.
At Atlassian, we use discourse for our community and this talk gave more context for why the tool works the way it does and how to maximize its use by understanding the underlying thinking. Also the idea of thinking of this platform as a multiplayer game that rewards types of behavior intrigued me as a developer. I was able to walk away with Jeff's book Effective programming given to all attendees, and I can attest it is an informative read.
Breakout Session: API Throwdown
The other session I was able to attend was the API Throwdown with Nate Barbettini. His talk focused on API design, and he compared the design styles of RPC to REST and GraphQL. He addressed the debate about which pattern is best. While remaining neutral, he described the different use cases and advantages of each. He stressed there is yet no one size fits all solution and like any tool, they each work well for their purpose.
Nate explained RPC as a good pattern of calling endpoints that relate to functions. This simple protocol works well for high-performance environments with medium network noise. RPC Applications become problematic because of its tight coupling to functions he advocated.
RESTful application architecture, on the other hand, has a goal of decoupling the client and the server. He defined REST as not an endpoint that returns JSON using HTTP verbs but as a way of modeling resources and links to resources and metadata without the need for creating functions for every use case. That is to create stable systems that used for years after being built. Nate suggested using REST specifications like Ion, HAL, and JSON-API to help you with modeling your REST API.
GraphQL is the newest kid on the block and is the most complex of the three mentioned here. Which uses queries to bring back the exact data you are looking for in fewer calls to the server. Some of the advantages are; create low network overhead to remove latency, the ability to query deep linked relationships between resources.
I felt this talk was especially relevant for our developers as they design and maintain their APIs. To determine which style is best ends up depending on who consumes your API and why.
What Atlassian did at ITERATE
Atlassian partnered with Okta on a booth where we created a trivia game dubbed "Geek Out()" with prizes. ITERATE gave Atlassian a chance to build some awareness with the event attendees about our tools and developer opportunities.
The game consisted of 150 dev related, nerdy, and geeky trivia questions. Up to 4 players could play together for prizes, with the best prizes only available if there were 4 players. This incentivized people to get others to try and play our game, and created immediate social interaction.
We put the questions and answers in a slide deck, question first then answer, and projected them on a screen. Each player was given a buzzer in a Jeopardy-like fashion to press when they knew the answer. The first player to press and guess correctly would score a point. The player with the most points would win the prize.
Questions ranged from things like:
How many bytes are in 16 kilobytes?
How many seasons did Star Trek : The Original Series have?
What is Satoshi Nakamoto's claim to fame?
People seemed to genuinely have fun, and in between sessions we had many repeat players. People would come back with a friend, or they would even ask a random person to play so that they could have a shot at the better prizes. There was an instant social impact on the crowd and people would stand around watching other people play with intrigue and then step up to play themselves.
This was a successful, fun, engaging and repeatable way to engage the community. ITERATE itself was an informative conference with excellent content that complimented Atlassian.