iTwin.js Hackathon

Roop Saini
iTwin.js
Published in
5 min readOct 4, 2019

“Some of the stuff they are making in these hackathons is rubbish.”

A fellow programmer declared, as he smashed the ping-pong ball with his paddle. We were in the middle of a game.

The ball whizzed past me as I blankly stood there. I had just wrapped up a week-long hackathon at the company’s HQ and was feeling a mix of exhaustion and exhilaration. I had no idea of how to respond.

It did get me thinking. People may not know what an iTwin.js hackathon is about. What’s the value of it? Why do we do it? What’s the experience like?

Let’s break it down.

You may have heard of hackathons as programming competitions in which the best team wins an award. In this case, there is only one team. The only thing we are competing against is the clock. And the only award we get is a visit to the local sushi place.

Hey, I’ll take it.

day 1

We start Monday morning in a conference room with my team (iTwin.js developer outreach) and a visiting team. Last week’s team was from within the company and their goal was to build a prototype of a new iTwin.js dashboard app. They arrived with some mockups to describe their concept:

These mockups sparked off the usual discussion about the desired workflow of the application. Once the outreach team had a good understanding of the use-cases, we broke them down into requirements. Some were achievable within the week and some were not :)

Finally, all developers split into teams based on their area of expertise and converted the requirements into self-contained tasks. The tasks were slapped onto sticky notes which were then slapped onto a whiteboard.

Our view at lunch.

And the hacking began!

Generally, the big requirement of day 1 is to have at least one demo. It doesn’t matter how small. The goal is to end on a positive note as preparation for what’s to come next. In this case, it was an array of data.

day 2, 3

Things were starting to get serious. The code was breaking, along with all of our dreams. The task list was looking increasingly audacious.

There usually are two types of tasks on this list; stuff that has already been done in a previous hackathon and stuff that hasn’t. The outreach team has a role in each category:

  • Old stuff: Provide support to visiting developers in the form of code samples, blog posts or training videos. This acts as a training ground for testing and improving existing onboarding material. Eg. in this case, a developer needed to use markers and was successfully able to use this post to get started.
  • New stuff: Consult with the core team and design effective strategies to tackle these tasks. The solutions uncovered in the process help generate new training material for the iTwin.js community. Eg. last week we explored the idea of exploding marker clusters and heatmaps.

These new features become candidates for addition to the iTwin.js library. Any bugs found during implementation are reported back to the core team for maintenance. This process makes iTwin.js better.

day 3 had ended and there was so much left to do. Talking was at a minimum; the only sound was the clicking of keyboards.

day 4

The demo was scheduled for the next day at 10:30 am. This was our last chance.

It felt like SNL, the show was going live with or without us.

If you are not ready, improvise.

Something about day 4…maybe it’s the adrenaline or the idea of presenting, but this is where a lot of the innovation happens. We pushed through the challenging tasks, one last charge towards the finish line.

Finally got to move the really sticky sticky notes.

The flock migrates to the east.

At the end of the day, we got our demos together and did a quick dry run. Everything worked!

day 5

We did another dry run just-in-case the last one was a delirious dream. Everything was still working. People went over their demos and took suggestions from the rest of the team; right up until showtime.

All the bosses (judges) filed into the conference room. Everyone looked up at the screen and we started to present. Here are some highlights:

Exploding marker clusters: If you click on a cluster, it zooms into the markers that are being clustered.

Heatmaps: a new type of decorator that can paint gradient heatmaps on an iModel given a set of points with intensity values.

After the demo, we opened the floor for discussion between the visiting team and the iTwin Platform core development and management. Topics ranged from technical review to business feedback and advice.

We then wrapped up the meeting, discussed future plans, shared a few laughs and said our goodbyes. Some people left for their flights, some stayed back for lunch. Myself, I visited the good folks at our Philly office and enjoyed a game of ping pong.

Overall, the hackathon experience is a humbling process that allows us to discover some of our blind spots…as a team, and as individuals.

Plus there is sushi.

-Roop, reporting live from the basement.

<- previous post | home | next post ->

--

--