@Hack 2024: The Timeless Meta-Narrative

In hindsight, this event nearly exactly follows the “Hero’s Journey” as outlined by the late Joseph Campbell that was later abstracted to a more cohesive structure. This article will delineate the event’s planning and execution through the guise of Hero’s Journey in 12 distinct steps as seen in the diagram below.

The Hero’s Journey

Call to Adventure and Refusal of the Call

Around August 2024, I received a call by Dr. Hanna. “We want to run a cybersecurity hackathon, and I want you and Anis to do it.” I immediately began to grit my teeth; there is no shortage of disruptions to finishing a PhD. I’m in the fourth year with only two papers submitted and a seemingly infinite set of milestones and experiences gating my completion. I told him, “For now it’s a no, but let me talk to Anis.” 

Anis and I spoke, and we both had our “oh boy” moment. But, given Anis and I have a knack for putting in good work all the while suffering conflicting deadlines and pressures, we could at the very least imagine carrying it out with a decent level of success. We both agreed to do it only if the other did, for we knew together we could do what alone we could not. After some deliberation, we called Dr. Hanna and gave him a “Yes”.

Meeting the Mentor

We were immediately introduced to our co-hosts; Technation. They offered to provide financial support for running the entire event given the costs were spent with reason. As well, they have relationships to many relevant organizations, such as the Communications Security Establishment (CSE). 

Our main point of contact was Tim Sidock – the event’s enabler, or the mentor. He represents the provider of artifacts necessary to complete the journey; we only needed to use them appropriately.

Crossing the First Threshold

With the power of financial backing, it was time to officially take the first step into the unknown. We lacked many crucial elements; leaders, members, a vision, and a roadmap. We knew absolute zero in regards to throwing such an event and frankly less-so did the conceivers. Technation let us know the event would need to be thrown before the end of March, and thus we had roughly 7 months to resolve all unknowns.

We began asking our close graduate colleagues to join us as team leads in launching this event. Surprisingly, Anis and I were joined by several brilliant members of our department. Some were more experienced in their particular responsibilities than others, but when work is unpaid and volunteership is required, it’s due time to emote acceptance and understanding.

As we began to assembles the heroes of this narrative, each with their respective superpowers, we approached the threshold after which the journey would be in full-swing. Lucky for us we were put in contact with an outsider, the Iranian powerhouse that is Luna (our Design Lead). Though seven months may seem like ample time, if we consider the leads to be preoccupied fighting other fires in their careers, in truth we had only weeks of work hours to spare.

Tests, Allies, Enemies

Each member was assigned a role leading a particular team, and each team had their responsibilities. The only problem was, the teams were yet to be filled. Thus began the arduous task of looking for more volunteer help. Here, Dr. Hanna is largely to thank as he assembled students from his many computer science courses to join the Dev and CTF challenge design teams. Those teams were amply filled with varied student skill.

As teams began to fill-in, a new problem emerged. Around January 1st, we had about 32 registered participants only two months before the event date. Here again, Dr. Hanna proceeded to advertise the event in all the ways he knew. Over the course of three weeks, we amassed 623 registered participants.

I spent some time going classroom-to-classroom in an attempt to draw more volunteers for the day-of responsibilities. We amassed 27 volunteers, each with their own preference, availabilities, and as I’d find out, willingness to follow-through. I met with each of them in person roughly a month and a half prior to the event. It is key to meet those you work with, as the bond formed through physical presence is an intimate phenomenon. It puts everyone together upon a common frame of reference, temporally and with respect to responsibility.

As the logistics-responsible, I was slowly introduced into the world of Hospitality at Concordia University. Here I met Ricardo, who was the next helper along the way. Ricardo is a powerhouse organizer; he took care of composing floor plans alongside me, labeling needs such as chairs, tables, electrical outlets, 51 room reservations over 7 floors, catering sponsorship, and more. He abstracted away all these concerns for us, him being the interface between the known world, and the unknown chaos-inducing complexities of hospitality logistics at Concordia University.

I had visited the 2024 edition of a similar event (event name redacted by request of the event organizers, in full consent by myself, the author) to get a visual on how they ran things. They meant to track meals with their badge system, which had a QR code that, when scanned, displayed information pertaining to the particular participant. When I had visited their cafeteria area where food was served to participants, I noticed their QRs were not being scanned by the volunteers, but rather etched with markers or hole-punched to track meals. It seemed the QR scanning had somehow had the opposite effect, and slowed down the serving process. Generally the QR scanning is necessary to assure A) only one meal is eaten per participant, B) to track how much food is eaten relative to the order size to adjust for future iterations (cost saving), and C) measuring how many participants attend in comparison to the confirmed number.

Our badge system was different. We had both a QR and name printed upon it. In-fact, we went as far as building a QR redirection system, where a particular participant could be re-assigned a different QR on-demand (in the case we or they lost a badge, or if they never received a QR from our side due to spreadsheet fuck-ups). For this, we printed additional “dynamic” QR badges without names so that they may be assigned to these edge cases.

Ordering T-shirts for an event at large quantities (500+), one must pay attention to what’s called an order “lead time”, which is the time it takes to satisfy and deliver the order. For such a quantity, it was marked at about 2.5 weeks. With the event less than 1 month away, we did not have the official confirmation numbers. So, we quickly improvised with our co-hosts to determine just how many participants we could afford (catering and merch scale harshly), picked a number of around 550, and ordered those many shirts by interpolating the current T-Shirt size responses from 300 to 550. The order was made and the T-shirts came in on time.

Approach to the Innermost Cave

Roughly two weeks before the event, it was time to truly check-in with the team leads and assure that “everything is perfect on our end” was factual as opposed to mere laryngeal futility. It turns out that things were far from perfect. The QR scanning app that had allegedly been ready-to-go didn’t have a backend. Application-side requests were responded via a mocked server. I could not believe my ears. Our printed badges required this functionality, and it became a real problem that we didn’t have a backend. The problem began to snowball as the Dev and Infra teams could not seem to agree on who was at fault (as if that mattered), and who was responsible for building the backend. 

A key lesson here is that failing communications only began to surface at the point where correct execution of things became a necessity. All the unresolved micro-issues once assumed to be complete surfaced as havoc-causing incompletions. As simple as it seems, there are complexities to deploying even the most basic backend. And it isn’t just a backend to deploy; the teams responsible for this new problem already have dozens of other pressing issues and responsibilities searing their backside like a cattle prod. They didn’t need more.

In parallel, we continually had participants email us who had claimed to register and confirm, but never receive word from us (and thus I did not have a printed badge for them). The issue here is that multiple leads had access to the same email address, and when one would read an email, it would be marked as read for all others. Over time, this caused us to lose track of emails as the lead first reading an email was not responsible for taking action on it, while the second lead who would be responsible had assumed it was already read. Thankfully we had dynamic QRs which we could quickly assign to new participants when this problem surfaced.

Infra quickly put together a backend for the QR-App, but a day before the event, new problems surfaced. Certain phones could only scan a single QR before the camera would stop functioning. If we wished to quickly check-in participants, or serve them breakfast, we needed quick scanning. As I looked at the code (Logistics, right?), I noticed that some probably-problematic state change calls were being made. Written in React, state changes cause entire components to reload. When working with a hardware device like a camera, component reloading is a complicated affair, and thus our main QR-App developer suggested commenting out some of the state changes. Once he did that, the App began to scan like a machine gun. We were satisfied.

Two nights before the event, I pulled out a sleeping bag and slept in the War Room with Alireza. I slept near three tiny garbage bins, and around 7 AM a custodian rolled in three giant garbage bins. He banged every atom of those bins on the war room doors to make the whole experience all the more enjoyable. As he rolled up to my feet, he realized my presence. I sat up and stared at him with tired squinty eyes from within my little cocoon. His first morning words to me were “Why are the small garbage bins in here?” His concern being that he just rolled in three giant bins, and there were already smaller bins in the room; not that he just woke me up, nor that it was strange to find me there on the floor, and certainly not that he entered the room like a one-man marching band.

Here is an excerpt of my state just days prior to the event

24/03/2024

Let your team work at their pace. You are trying to micromanage and you are not getting answers. Leave them be. If they screw up, you did what you could; any more checking-in and you will not get better work but will accrue agitation. They know what they need to do, now let them do it for god’s sake. As the time is approaching, remember the breath, relax the reactivity. Calm yourself, remain level headed, keep your body and mind sharp but swift and measured. Breathe. You will achieve all of it with success; even in the failure. Your life is much more than this event, so you are required to keep your mind about you

The Ordeal

The event finally arrived, and I made myself present at 5 AM to make sure all was in order. And all was in order. I prepared my opening ceremony points in about 30 minutes, but most of it was improvised.

Volunteers showed up on time to their prescribed location, knew exactly what to do, and were extremely respectful. My shadow Nilly helped come up with a more fluid check-in process which I had somehow both over and underthought. Check-in went smoothly thanks to our functioning QR-scanning App and Nilly’s revised plan, and breakfast arrived on time. The coffee provided by caterers contained massive amounts of coffee grains, so we called them for a replacement. Unfortunate but nothing to stress about. Nilly suggested to demand a refund, but I thought such was an unnecessary response and simply getting a new batch would suffice.

The opening ceremony also went smoothly. Luna’s brother Hirad had prepared a fantastic event teaser to kickoff the ceremony. Such talent appears at random and to our convenience. When you let people’s powers surface and let them do it their way (as much as you can), they will bring treasure. It is only that we think we have to control and micromanage every decision that kills creativity.

It became obvious that Alireza’s excitement (our Marketing lead) for the event was stronger than the forces that composed him. Just seconds before I took the stage, he attempted to explain an elaborate plan for surprising the President of Technation (Angela Mondou) with a signed event T-Shirt, and later asking her for a single word to describe the event. As much as I tried to listen, I could not comprehend his desired sequence of things – or rather, he could not explain it. It wasn’t even an issue with his Iranian accent, but rather the energy which excited him that took away his ability to properly communicate a basic plan. After asking a ridiculous amount of clarifying questions, I understood his point and proceeded to the stage. It was good he brought it to light, as the gesture heightened the relationship with our co-hosts.

At 11 AM, hacking and problems simultaneously joined the event. Infra had set up a few monitors to help assess the situation and answer Discord tickets. The problems piled up as participants were having VPN issues. After hours of debugging, cussing, emotional and character breakdown, the problem was found to be an implicit limit in our usage of the Google Cloud Platform (GCP) that only allowed 100 participants to have access to certain resources. The infrastructure team was severely taken aback by its severity and thus their morale and grit were tested straight away.

Lunch, career fair, and workshops ran without a problem. Some participants had food poisoning from lunch (2-3 reports from what I can tell). We had a man request to join our workshop agenda just hours before workshops ended. I could see he wanted it, so I carved out a space for him and let him have at it.

Supper was flawless. We had 220 pizzas come in, a quarter of which contained pineapple (that was my choosing by the way, and I will fight you until the end in its defense). I sat just meters away and monitored the supper queue. When it would die down, I’d call the next set of participants via their colored badges through Discord. This kept a bearable flow where participants could get their food without overwhelming volunteers and each other.

A few hours after supper, I put out the remaining breakfast muffins and snacks to empty our stock. What I didn’t expect was the greed of some of the participants. With a clearly limited remaining quantity of snacks, some participants grabbed one of each snack. Perhaps I should have been clear about this, but it is inconsiderate behaviour. I proceeded to explain to the hungry participants in line “I know you want your snackies but please only take one and have respect for the hunger of others behind you.” One seemingly devilish participant who wore a Boston hockey team tuque proceeded to boo me. I held my tongue; he would return the next day for breakfast and request to take more portions than was allocated to any given participant, as if the entire event was catered for his overbearing needs.

The night event had a DJ (Enrico Riccio) come and provide lounge music as we distributed final snacks and mingled. Clearly the participants had better things to do as the lounge had at most 20 people at any given moment. Most wanted to keep hacking, or sleep.

Concordia security rubbed up against my patience a few times. They locked the doors to the sleeping quarters overnight, so participants wanting to use those rooms to sleep could not enter. They deactivated my access card to the War Room because I hadn’t returned it for over a day. Next, they visited me in the War Room to ask if I had the access card, because they could not find my ID that I had given them as collateral. On the one hand I am responsible for not losing their card, and on the other, they could not find mine. Eventually they found it.

Breakfast the next morning ran well despite only a single volunteer showing up. I sat with her for a few minutes and discussed her life in India, and how she is adapting to Canada. Breakfast was served and we prepared for the closing ceremony, which turned out to be a fiasco.

The first mistake we made was to bring all the winning teams into the War Room and tell them that they won. This was predicated on the mistaken judgment that teams would leave before getting their reward. Since the scoreboards were hidden in the hours preceding the award ceremony, top-performing teams would clearly show-up to see if they won.

Alireza was extremely excited to appear and manage the marketing aspect of the event. So much so, that he wanted to take the stage at the closing ceremony. I’m not going to get in the way of someone’s desires, so we agreed that I would open the award ceremony, and pass it to him for award disbursement. When it came time to announce the winners, with the air of certainty only a general could have, he proclaimed “Now it is time to announce the first place winners.” I giggled and decided I would let him make this glaring error. In the end, this isn’t a life-or-death situation. Mistakes can be allowed to pass through in the name of learning a lesson. After some time, we did mention that 3rd should be mentioned first, and he quickly adjusted before ruining what remained of the surprise-factor. The rest of the closing ceremony felt like an unrehearsed circus, but that was OK. We had already made our efforts to win the hears of our participants, and here we simply gave them one more interesting story to go home with.

Reward

With the closing of the event, we were inundated with inspired and joy-filled participants. Our co-hosts were content, my supervisors were satisfied, and participants had varied but heavily positive experiences. The reward was in the satisfaction of throwing our very first CTF event in a short span of time, getting as much right as we could, and leaving the rest to fate. It is my view that we achieved greatness that day, even if it was only the start; greatness begins with failures that help shape the next iterations and attempts.

The Road Back

Organizing an event of such a magnitude took months of our lives. You could say a significant portion of our lives was devoted to the event. Despite its finality, our emotions still sought the existence and goings-on of the event. This happens in proportion to the weight one gives the event’s experiences in gauging one’s self-worth. In this, one can begin to feel depressed, as if lacking some experience. It is simply a misapprehension of reality. 

Be steadfast in the performance of your duty, … abandoning attachment to success and failure. Such equanimity is called Yog (Union with the Supreme).

Bhagavad Gita, Chapter 2 Verse 48

This verse explains that one should not ride the waves of success and failure, but rather to focus on performing the duty at hand. It is backed-up by a preceding verse that better explains the concept:

Fight for the sake of duty, treating alike happiness and distress, loss and gain, victory and defeat.

Bhagavad Gita, Chapter 2 Verse 38

And thus the agony of failure will produce mental agitations in the same manner tightly gripping to the heights of happiness will only cause you to drop from erratic joys. In this way we have seen members of the team enter frustration, anger, and mental fever when infrastructure took a hit, as well the depression some members felt once the joys and excitement of the event were over. 

I’m suggesting here that the road-back will largely be affected by how you conducted your energies (perception, breath, reactivity, expectations) during the ordeal itself. This part of the journey has you questioning your actions and behaviour in handling the challenges faced. It is a road because there time always precedes destination, where time is spent in contemplation, and destination, the spirit of resurrection. 

The Resurrection

Many of us took the time to contemplate our conduct, and those who do so will certainly benefit in the resurrection stage. I know I personally was very fortunate that most of the logistics went exactly as planned, and thus my point of contemplation is how I would have handled more dire situations. Would I have been able to handle a fight breaking out? An allergic reaction? Highly frustrated participant(s)?

Most of the organizers took the road of contemplation and felt imposter syndrome, self-directed disappointment, failure and dissatisfaction, extreme highs that lead to extreme lows, lack of composure, hasty decision making with improperly scoped reasoning, egotistical defense of ideas – it goes on.

The road of contemplation must heed with resurrective intent, but we can just as easily head towards self-hatred. To believe that such contemplative thoughts are a direct indication of one’s self worth, and/or that these feelings are not beckoning you to reflect and improve is a sure cliff-dive. The transformative nature of self-inspection, when drunk as a reflexive antidote to one’s prior failings, is the path to resurrection. In this phase, your reflections become embedded in your being as sign-posts for improved action in the future. In fact when framed as such, we minimize negative emotion felt towards ourselves because such framing does not place us at the center of failure, but rather upon the abode of necessary success and failure – and neither success nor failure should be seen as more beneficial than the other.

Return with the Elixir

With the proper self-inspection and follow-up self-integration towards a higher being that encompasses prior realities into an amalgam of memory to serve the purpose of micro (self) and macro (cosmic) level evolution, we bring answers to the table. We now know what we learnt and how better to respond. The elixir are the lessons we’ve integrated that will resurface when needed. They are our developed weaponry for round 2. With all the prior steps followed, there is no helping the triumphant return, which is one of pride in all actions taken and events experienced. 

We now rejoin regular living with these experiences at the ready for what comes next. Alas the cycle begins anew.

05/03/2024

We ran a smooth event; just finished @Hack 2024 this weekend and it was beautiful. The challenges, the keeping calm, the stress, fatigue, lack of sleep, all of it a fantastic chaos. Under such moments of stress, we get to see the jagged edges of character. If they are well equipped, they could use their skills to gauge their deficiencies and improve themselves through those experiences. In particular, X was very disappointed in himself; he focused on the bad and caused himself a depressive outbreak forcing him to leave the war room for some time.

The amount of students inspired was remarkable, from the words of encouragement, to the words of thanks, this was the right thing to do.

As for me, there are logistical loose ends I need to handle for the next iteration; seeing career fair folk IN and OUT of the event, making sure the closing ceremony does not feel like an unrehearsed mess, developing a better scanning App by getting involved with the Dev team a little more, and telling career fair folk how to get into the WIFI for scanning purposes. 

You kept your cool the whole time, always smiling, respecting everyone, and bringing moments of joy to whoever you could. It is truly incredible how you’ve changed over the years. I love you

Leave a Comment

Your email address will not be published. Required fields are marked *