Is there any powder in the flasks? Hackathon Radio Canada 2018 (Part One, Building a Team)

In this article I want to introduce myself, to tell what pushed me to participate, how I was able to assemble a team, what conclusions I made for myself and just share my experience of participating in my first hackathon.

Sorry, it didn’t work out briefly, there is a lot of text and not everything on the topic.

image

I hope that it will be interesting to Habr’s readers not so much from the technical point of view as from the point of view of broadening their horizons and the desire to know “how it is there”.

Preface, where the author recalls that no one is interested
I have not been a student for a long time, but in my student years there were neither hackathons nor the opportunity to especially leave the country and see "how it is there."

Today I understand that the world has changed a long time ago and now there is an opportunity to participate anywhere and in anything, and, nevertheless, I think this article should find its reader.

I have long dreamed of participating in a hackathon, in any. There is some magic, envy and respect for people, for professionals who gather for a couple of days and give out super-mega-ready solutions or even crack digital bastions.

As I already said, I am not a newbie in programming and many years have passed since I received a diploma with a proud record “PC and ACS Programmer” in 1994 in Chisinau. It so happened that at the end of the college there wasn’t much work in the specialty. There was a “big” break when I, like many who graduated with me, switched non-programming areas and worked as “computer scientists” or went into commerce or any other profession for which they paid. After these post-perestroika years, not many friends returned to programming. And I was one of the few who were lucky.

I want to say that, since then, I, as it were, are not confident in my abilities and knowledge. In our business, since the 80s there has been a wild development. And if I want to stay afloat, it turns out I need to learn a new language and other technologies (which appear and disappear, albeit not at the speed of light, but at a speed that frightens me) every 3-4 years, and even better every year.

I try to keep up with the world of technology and programming, remaining a sought after professional, reading smart books before and no less smart articles now. I understand that I'm definitely not Linus Torvalds, not Björn Straustrup, not Denis Ritchie or Rasmus Lerdorf (whom I saw at arm's length when he introduced PHP7 innovations, which was quite a big event for me a couple of years ago). But I know that I can write code better than many with whom I have worked. And I want to know how good I am? It may sound selfish, unethical, or just plain stupid, but yes, I want to be better than others and have an idea of ​​how good the trousers surrounding me are. And, it seems to me that a hackathon is a good way to test your strengths, get acquainted with new technologies,

So, a couple of weeks ago I found out about the upcoming hackathon organized by Radio Canada and Microsoft in our "native" Montreal.

The hackathon theme is Artificial Intelligence.

Since I had long been thinking about participating in something like this, I decided that I should try and began to study the goals and conditions of participation.

Basic requirements for a prototype in French
Cette compétition amicale vise cette année à expérimenter sur la place de l'intelligence artificielle dans l'industrie des médias et à développer un prototype d'application web ou mobile.
  • Les prototypes proposés doivent obligatoirement respecter les critères suivants:
    Utilization d'une des sources de données de Radio-Canada
  • Développement hébergé dans la plateforme Azure ou avec un de ses services intégrés
  • Interfaces conformes aux critères d'accessibilité WCAG 2.0 AA
  • Chaque équipe peut également utiliser d'autres sources de données ouvertes et des services publics

Tous types de code, design ou autres éléments servant à la conception du projet devront être créés exclusivement durant l'Hackathon 2018 et devront respecter la propriété intellectuelle des tiers.


The prototype must meet the following requirements:

  • The application must use Radio Canada data (provided through a non-public api, access to which will be open to hackathon participants)
  • Development should be carried out / based / using the cloud services of MS Azure
  • The interface should comply with the requirements of the WCAG 2.0 AA standard (an interesting fact - on Wikipedia there is no Russian version of this page, well, I didn’t look much, maybe there is a bit different)
  • Teams may use other public services and data sources
  • The entire prototype, from architecture design to code and other elements, must be created during the event. (Let's remember this, I will return to this criterion later)

At that time, 10-15 teams were registered on the site and 7 of them looked officially registered. Teams of 3-5 people are allowed to the tournament, so that individual participation has disappeared by itself.

But a little unexpected question arose for me: how to assemble a team as soon as possible, and in fact find a few adventurers with whom, on the one hand, it would be nice to spend the weekend, but on the other hand, to create something similar to a “prototype”?

Team building - the key to success, or the reason for failure?
Unfortunately, the colleagues with whom I work are now quite difficult to lift and I did not want to “go into intelligence” with any of them.

But I was lucky, or maybe I always planned everything like that, my daughter is now studying for a programmer in the second year of college and shows her abilities. My relations with her are quite friendly, so this was the first person to whom I offered my adventure. In truth, it was unfair, since she probably could not refuse me. I didn’t think about it right away, but she agreed pretty quickly without trying to evade, which gave me hope for productivity during the hackathon.

I will call her further Asterisk.
I asked her to start a search among classmates, this is exactly what they should be interested in. But everything turned out to be not so simple. as in my case, not many classmates look attractive to her as an ally for an intensive project, of which she already had enough in college to understand what a project / task is and how people work or don’t work in a team and under pressure, so the circle of suspected candidates quickly narrowed. She brought two people to call them Mercury and Phaeton.

Local Mercury - this is important. As it happens in Montreal, French comes first. As you can see, even the description of the hackathon is not translated into English. I don’t want to go deep into details, but the point is that the language (French) becomes one of the key success factors. So Mercury is fluent in both and is a good developer, proven in battles in various student projects, with whom Zvezdochka will work comfortably.

Phaeton is a Russian-speaking developer who recently graduated from the same college and has friendly relations with Zvezdochka. At the moment, it works in C ++ (it seems) from morning to evening, processes it day and night, and apparently on weekends. Real skills are not known, an attempt to identify them before the start of the hackathon was unsuccessful.

At the time when it became known that we already have 4 people in the team, I was quite calm about participating with anyone. And Zvezdochka continued to search for the latest developer. Moreover, the scariest in the opinion of each of us was the phrase Artificial Intelligence, about which I had some general idea, but the Asterisk was absent altogether. Well, how do we all know about Skynet ? and about EX_MACHINA , but that doesn't count, right?

Just at that time the weekend happened. And my friend and acquaintance (let's call him Plato) with my wife came to visit us, so to speak, for tea with bagels. It should be noted that most of my friends and acquaintances are somehow connected with IT and development, well, or with telecommunications.

We met Plato a few years ago in one project where we both worked, but did not intersect on the same team. Plato has been and is still engaged in embeded systems, will come mainly in C (yes, yes they still write on it), which makes me very impressed. I also once wrote of course in assembler, too, something like 2 + 2 100 years ago. But I have long gone to higher levels of abstraction and the Docker container for me looks unambiguously simpler than a C function and compilation options. On the other hand, the magic of the words RESTful api sounds very mysterious to Plato. And somewhere deeply I understand, or maybe I just want to believe that if necessary I can master the magic of picking up C code, and Plato will figure out the code in my favorite PHP.

Despite the rather different specifics of work, Plato and I have long become friends with families and maintain a lively relationship. But we are adults and I know as always Plato's tight with time. Therefore, it never occurred to me to invite him to the team, despite the fact that I knew that a year ago he signed up for a rather serious course on systems for self-driving cars, including working with neural networks (that is, the notorious AI).

Well, we are sitting with our spouses over a cup of tea, exchanging news. Naturally, I could not help but talk about the hacking adventure in the form of a hackathon. To which, very unexpectedly for me, Plato caught fire, I would even say - flared up, and said: Cool, I also want! For me, it was a great success and support, since I was afraid to remain in the team alone among students who might lose focus, interest, just not work together, etc. In Plato, I was sure that I would stand to the end and would not let you down (whatever that means in the case of our hackathon). I immediately unsubscribed to Zvezdochka that we have a kit and more people do not need to be searched yet.

So the team is formed.

Need to register a team? It was easy.
Need to register - everyone? It seems everyone has registered.
Need to fill in the presentation? Now I am almost sure that it was not necessary.
We tried to clarify this question through the site but the organizers answered a bit slurred.

The main absurdity that was alarming - they requested a presentation in PowerPoint format and provided a template of 6 slides:

  • Title page with the Radio Canada logo and a place holder for the team name
  • Title for the project itself with its brief description
  • Description of the project idea
  • Description of reasons for ... Probably target audience and / or value for users
  • Value for business, ways of monetization
  • And the last slide is a presentation of team members

For me it was like a template for the final performance of the team, scheduled for the last day of the hackathon. But the Agorize website insisted that without a submitted presentation, our team would not be officially registered. So, despite the internal disagreement with such a statement of the question, we did fill out the provided template and sent it.

Final registration. Pay off for the first second!
Think it's easy? No matter how!

No, the problem is not with registration as such, but with time each member of the team, well, a little with French.

I appointed an asterisk as an unspoken captain and administrator. She registered first, then me.
I wrote to Plato, he only found free time after a couple of days.
We got a little luck, the site extended the registration deadlines for another week.

Mercury registered in a week, all this time I pulled the Asterisk, and she, in turn, him.

At the same time they pulled Phaeton, but it was practically useless, he answered all the time not immediately, but always after a couple of days, which began to strain me already at this stage. Suspicions that good team work might not work out accumulated and I asked how many times the Asterisk should I find a replacement if the person is busy or not configured or whatever the reasons, but it may be better for everyone if the replacement is not made at an early stage. But Asterisk did not hear me. But on the last day of registration and, as I later found out almost at midnight, Phaeton still registered as expected.

We had 3 weeks from the moment when we knew the names of all the team members to the start date of the hackathon. It would be logical to use this time for preparation, wouldn't it?

I sincerely believed that it was necessary to prepare and tried to convey this to the team. I tried to arrange a meeting, just to shake hands and see the faces of future associates. Did not work out.

Why didn’t you get together? Well, completely uninteresting and trite
I am a family man. Work from 9 to 5, plus the road to work in the morning and evening for another hour. Total at home on business days is roughly 6. Evenings Monday, Wednesday and Thursday are busy (sports with a child, I drive back and forth). On Saturday, I take him to a Russian school at 9 and take him away from there at 3. Just at the same time, on one of the Saturdays there was a competition so the day was knocked out. It’s just me that I’m always busy, with a few exceptions.

Plato is the same story. That is, there are windows in the schedule, but synchronizing them with my “windows” is already a task.

The asterisk learns and works. Plus, there was some time for passing all kinds of laboratory exams and tests. After studying and on the weekend, she always works, she tries not to depend on anything from her parents. By the way, for the hackathon herself, she took time off from work, so she took time off (having sacrificed real under-earned money)

Mercury turns out in the same situation, although she’s not sure if he works. But the fact that I’m busy studying at the most I can’t - that's for sure.

Phaeton - as I already wrote, it works 60 hours a week. I practically did not answer calls and messages.

So after a couple of days of trying, I realized that organizing a meeting is unrealistic.

I have spent two days writing this part, it turns out it is not as simple and fast as I expected. Let's check whether it will be interesting to someone, and if so, then I will try to present the second part as quickly as possible.

Constructive criticism and questions are welcome.

Second part here

Also popular now: