hackathon – Bitmovin https://bitmovin.com Bitmovin provides adaptive streaming infrastructure for video publishers and integrators. Fastest cloud encoding and HTML5 Player. Play Video Anywhere. Thu, 22 Dec 2022 17:26:16 +0000 en-GB hourly 1 https://bitmovin.com/wp-content/uploads/2023/11/bitmovin_favicon.svg hackathon – Bitmovin https://bitmovin.com 32 32 BitExperiments – Q2Y2020 Hackathon Summary https://bitmovin.com/blog/bitmovin-q22020-hackathon-summary/ Thu, 18 Jun 2020 08:39:56 +0000 https://bitmovin.com/?p=117213 Can’t stop us noooow – we’re havin’ a remote hackathon Throw what you will at us 2020! That won’t stop the innovation and creativity of the Bitmovin team – in fact, we’re more motivated than ever to create and innovate. Being on lockdown only allowed our team’s creativity to grow – and it’s opened up...

The post BitExperiments – Q2Y2020 Hackathon Summary appeared first on Bitmovin.

]]>
- Bitmovin

Can’t stop us noooow – we’re havin’ a remote hackathon

Throw what you will at us 2020! That won’t stop the innovation and creativity of the Bitmovin team – in fact, we’re more motivated than ever to create and innovate. Being on lockdown only allowed our team’s creativity to grow – and it’s opened up our Hackathon to even more teams outside of our Austrian offices. This June 2020 it wasn’t just the local marketing and engineering teams working on new projects, but our UK solutions team joined in to flex their brain muscles.

Hackathon Project-Image-BitmovinEmployee-WoodSoldering
One of our engineers even took on a wood soldering experiment during his free time

This quarter’s entries included improvements to cloud-based GCP workflows, availability workflows (within Slack of course), and a design experiment around a potential Light/Dark dashboard within our platform. Keep reading to learn a little bit more about each of these projects!

Project name: Snatcha

Participants: Fabre Lambeau, Levi Miller
Goal: Create a solution to allow Bitmovers to automate the transfer of very large files from various sources (S3, GCS, HTTP) into cloud targets (S3, GCS). Typical use cases are when video files are shared by customers (eg. for encoding evaluations and video quality shoot-outs), or need to be shared back to the customer (eg. results of encoding evaluations). The idea is that individuals should never need to perform downloads and uploads manually through their local machines, or spin up, configure and manage cloud instances manually to do so.
Summary of Experience: We built a cloud-based workflow in GCP, using a mix of Cloud Functions, Compute Engine, Firestore, and Cloud Logging. We created an API, and a UI, to offer 2 mechanisms to interact with the tool. 

Hackathon-Snatcha
Snatcha “Home” Set-Up parameters

hackathon-snatcha-final-output-illustrated
Snatcha – Completed file transfer

Problems faced? IAM permissions are just as tricky to get right as on AWS
Next steps?

  • Recursive downloads for whole directories (eg. DASH/HLS streams, IMF packages, etc.)
  • Unzip after upload
  • More advanced UI
  • Security review
  • Aspera, Signiant, (S)FTP

Project name: Slack States on Steroids

Participants: Lukas Knoch-Girstmair, Lorenz Schmoliner
Goal: As the Player native team is very distributed and especially during this crisis, we rely heavily on when someone is available for work, a chat, or discussion. For this, we wanted to create a solution that allows everyone at bitmovin to easily configure, set, and clear states for their Slack profiles. This way it is easily observable if someone is AFK, grabbing a coffee or actually at his or her desk. The usual way to set a state in Slack is a little tedious, especially when it comes to custom states. We decided to go for a mobile application (Android and iOS) with which someone can create custom states and set them every time, everywhere with just one tap of a button. 
Summary of Experience:
We built a cross-platform application with Kotlin Multi-Platform in combination with Kotlin/Native, targeting Android and iOS. Given the fact that we implemented the whole business logic as a shared code module, this can easily be reused from each platform and just needed to be implemented once. Also, this enables us to easily extend the application for e.g. a web (js) based app.

iOS_Hackathon-Image-iOS-Slack-States-Overview Hackathon-Image-iOS-Slack-States - Bitmovin Hackathon Image-iOS Slack States-SwipetoDelete
Overview of iOS Add new state Add new state 2 Swipe to delete

 

Hackathon Image-Android Slack States-Geofencing-overview Hackathon-Image-Android-Slack-States-AddNewGeofence Hackathon Image-Android Slack States-AutomationTriggerOverview Hackathon-Image-Android-Slack-States-AddWifiTrigger
Geofencing Android Overview Add new Geo-fence Automation trigger overview Add new Wifi-trigger

Problems faced?

  • Multi-Platform dependency hell 👿
  • Native iOS App development (Storyboards etc.) coming mostly from Android
  • Geofencing did not work very reliable in our tests

Next steps? 

  • Reliability tests/polishing
  • Feature parity
  • Start- / End time for states
  • Recurring states
  • “Reset” states after-action finished?

Project name: Dashboard Balance – Light vs Dark side

Participants: Catalin Mihut, Mariya Popel
Goal: Explore the current state of the Bitmovin dashboard and define the biggest pain points internally and for customers alike. To find a resolution that “successfully and consciously fosters a culture of sharing early prototypes with outsiders.” To further deliver on our core organizational value of “Innovate or die trying
Summary of Experience: The focus of this experience was to create a design where color is only used where it’s needed – thereby showcasing only the important factors that a user needs to focus on. This ranges from updates to the sidebar navigation, icons, organizational indicators, and our very favorite – tables! To our current dashboard users – keep an eye out for this update in the near future – there’ll many more interface updates than were listed here.
Hackathon project - dark theme presentation sample
Problems faced?
The main issue came down to color palette selection – we wanted to fit our brand tone and voice. The difficulty came in distinguishing our “dark” theme from others in the digital space while maintaining a level of uniqueness.
Next steps? (bulleted list)

  • Internal reviews
  • Further dashboard modifications
  • Create conversations are how to move forward, expand, and evolve the Bitmovin brand
  • Implementation and launch!

——————————————————————————————————————————-
We wish the best of luck to our Bitmovers and thank all of the participants! Interested in joining our team? We’re hiring all around the world and for almost all of our teams! Check out our career page to find the right position for you!
Did you like our post? Check out this other great content!

The post BitExperiments – Q2Y2020 Hackathon Summary appeared first on Bitmovin.

]]>
BitExperiments – Q4Y2019 Hackathon Summary https://bitmovin.com/blog/bitmovin-q42019-hackathon-summary/ Wed, 27 Nov 2019 16:58:14 +0000 https://bitmovin.com/?p=80050 Decode, Decompress, and HACK! Here at Bitmovin, we’re blessed to be surrounded by bright and creative minds. We understand that the stresses of daily work tasks can be overwhelming at times, especially in a dynamic start-up, where your responsibilities can change in a moment. To help alleviate these stresses, we host a quarterly Hackathon and...

The post BitExperiments – Q4Y2019 Hackathon Summary appeared first on Bitmovin.

]]>
Decode, Decompress, and HACK!

Here at Bitmovin, we’re blessed to be surrounded by bright and creative minds. We understand that the stresses of daily work tasks can be overwhelming at times, especially in a dynamic start-up, where your responsibilities can change in a moment. To help alleviate these stresses, we host a quarterly Hackathon and let our teams work on anything that might interest them for 72 hours (including the occasional beer, darts, and/or foosball breaks). This blog post covers some of the projects that our many talented individuals worked on, including an internal Chromecast application, experiments with JLang, and the content team’s very own project. The marketing team’s project was our very own version of Gary V’s content model. Keep reading to see a small sample of what we worked on!
Hackathon featured image

Hackathon Project #1: Dashmovin 2.0 – *Most fun project*

Collaborator(s): Christian Stoenescu, Mario Guggenberger, and Quentin Wendegass
Goal: For our Hackathon project, we worked on updating Dashmovin. Dashmovin is a digital signage software application that is automatically displayed on idle Chromecast displays (mostly TVs – we have a lot of them) across our offices, displaying corporate and development data (e.g. upcoming deals, encoding platform health, nightly test results) and other essential data (e.g. beer fridge temperature and office air quality).
The data is presented through a concept we fancily call “slides” that contain charts or tabular data. Those slides are each displayed for a specific time and rotate using a background scheduler. Building upon the baseline set in a previous Hackathon, we wanted to prepare Dashmovin for a rollout into more offices. Many of our offices have unique interests: the marketing team in San Francisco is not necessarily interested in the same data as the solutions team in Denver or the main developer teams in Klagenfurt, Vienna or Berlin. Additionally, different offices host multiple teams, e.x: development and finance in one of our Klagenfurt offices. We also wanted to enable faster access to specific information when Dashmovin is used interactively on a desktop computer or mobile phone.
Short description of the process: We’ve compiled feedback and project requirements to update our Dashmovin 1.0 display for a long time at this point. We came up with some improvements from one of the original features – a company-wide accessible issue tracker, which informed us of important pain points. The process was thus quite straightforward: Weight requirements, determine the most pressing ones and implement them in an awesome way.

Circle graph of top browser usage by users at the time of the Hackathon
One of many Dashmovin 2.0 views

Results: Since this software is backed by multiple services running within Docker containers; our first step was enhancing these containers to support continuous deployment. This would save us from having to manually redeploy them at every iteration – a factor which ate up precious development time in previous hackathons. Then we added a concept called “channels” – analog to TV channels. A channel is associated to a Chromecast receiver and displays a configured subset of slides, tailored at a specific office or department in a given office. Then we added a news ticker API, that broadcasts messages to various channels, which are then displayed in a “CNN-style” news ticker banner on the bottom of the screen.
This ticker is used to display office or company-wide announcements like “mail have arrived” or “lunch is here” (there is also an “everybody” channel). Next, we fulfilled a wish to directly access specific data by adding a nice interactive menu for web browsers that allows a user to switch between any channel or slide. Lastly, we added the greatest innovation of the current time – as you might have already guessed – a dark theme. Every app currently needs it and Dashmovin is now one of them! Our Chromecasts are configured with their location and automatically switch to the dark theme at sunset and back to the light theme at sunrise.
Future plans: As with almost every software project: improve and extend. Adding new slides with additional data and roll out to more offices.

Hackathon Project #2: Java Native with JLang

Goal: When it comes to compiling java to native – GraalVM Native Images are the way to go, but that is far from the only way to do that. With this project, we were trying to integrate java into the LLVM compiling landscape. 
Short description of the process: After checking for existing tools we found two contestants Vmkit and jLang. Vmkit has been discontinued for quite some time, therefore, we choose jLang. jLang needs to be compiled from a source. However, compiling any tool from source can be quite tangly and jLang was no exception. 
Results: After setting everything up we were able to compile Java code to the LLVM intermediate representation. But getting the IR is only part of the story a lot of internal libraries and JVM functionalities are needed even for the most simple of programs. Luckily jLang composes a shared library that contains most of the needed dependencies. So we only need to fire up clang link to the shared lib and voila there is the executable.
Unfortunately, jLang is missing some core features like synchronization and a few reflection calls – and though the performance is terrible, we still managed to get a “Hello World” program working.

Image of Code
Our version of the Hello World program

Hackathon Project #3: Content production model for our B2B SaaS organization

Collaborator(s): Markus Jenul & Joshua Shulman (ft. Graphic Designer – Catalin Mihut)
Goal: Display the massive output possibilities of the content team when we have the right assets on hand. To do this, we applied the Gary Vaynerchuk content production model (we highly recommend checking it out to improve your content stack). 
Short description of the process: We took this Hackathon as an opportunity to really test our output capabilities using one of our most engaging (based on social) gated asset pieces, our 2019 Video Developer Report, and stripping it down into “micro-content” that’s optimized for distribution across multiple digital channels. In our process, we were able to plan and create five new types of content (at least for Bitmovin): Polls, Graphics, Text Snippets, Slides, and Audio (Podcasts). 

Pie flow chart with a breakdown of a piece of content created for Bitmovin's Q4 Hackathon
The content model for our 2019 Video Developer Report (by Catalin Mihut)

Results: Our original Hackathon plan was to create ~20 pieces of content to distribute throughout the last week of November, but through our diligence in planning (largely tied to the method of distribution) we were able to create 44 pieces of content in total! This includes blogs, social posts (follow us!), and various outbound email campaigns.. Distribution and creation at this scale may be limited for the time being due to resources (manpower), but our most valuable takeaway was that we were able to create a repeatable process for future “Pillar” content.
Future plans: Although not live or scheduled at the point of this blog’s publication, the content team plans to distribute Audio, Video, and Instagram content in the very near future. As we refine our processes and planning capabilities, we’ll only be able to create more and more content. We have two major rules on our team – 1) Always be testing and 2) Context is king. We’ll constantly run new experiments to determine what’s working best and what’s worth investing our time into.
For our team, the type of content is of utmost importance as our audience is quite niche. Bitmovin is a SaaS B2B organization so we need to ensure that we provide the most contextually relevant content at all times, we can’t push products or sentiment the same way that a consumer-oriented organization might – we require higher complexity information to reach our audiences. So keep your eyes peeled! Per our newly defined model – we plan on releasing our process slide deck as well as follow-up “meta-post” around this model in the very near future as Micro-Content!
We had many other excellent projects in this quarter’s hackathon, so great in fact, they are withheld from our blog due to patent applications! We wish the best of luck to our Bitmovers and thank all of the participants! Interested in joining our team? We’re hiring all around the world and for almost all of our teams! Check out our career page to find the right position for you!
Did you like our post? Check out this other great content!

The post BitExperiments – Q4Y2019 Hackathon Summary appeared first on Bitmovin.

]]>