Jason Byrne profile

Jason Byrne

  • About Me
  • Experience
  • Projects
  • Honors
  • Let's Connect
  • Project Examples

    QA Automation

    Flagpole
    Flagpole 2018 - 2021
    QA Automation Framework, Round 1
    While at FloSports, I saw a need for a QA framework that was approachable, flexible, and powerful. It can test anything from full-browser UX testing, APIs, to video streams. FloSports still uses it and we brough it over to Echelon. It's easy to learn and fast.
    #qa# automation# puppeteer# cheerio# ffmpeg# typescript# node# open source
    QA Flag
    QA Flag 2022 -
    QA Automation Framework, Round 2
    Taking all that I learned from creating Flagpole, I have started a new project to do it better. QA Flag is still in early stage beta, but it takes on a syntax more similar to Angular and NestJS with class-based test suites and decorators.
    #qa# automation# playwright# cheerio# typescript# open source# vercel

    HTTP

    Minikin
    Minikin 2020 -
    Small but mighty web server
    Powerful but small web server and router built with TypeScript. It has a tiny footprint and zero dependencies.
    #webserver# http# router# typescript
    Scraperoni
    Scraperoni 2020
    Scrape data from website to feed
    Takes patterns to grab data from an HTML DOM and turn it into a news feed that could be used to generate RSS or injested into any sytem
    #scraper# http# data# rss# typescript

    Video Streaming

    HLS Proxy
    HLS Proxy 2018-2020
    Manipulate M3u8 Manifest on the fly
    Load a master HLS playlist (m3u8) and dynamically filter or re-sort it, or load an HLS chunklist and dynamically prune the segments
    #hls# live streaming# m3u8# manifest# typescript
    Trickplay
    Trickplay 2018-2020
    Generate iframes only renditions
    Generate iframe only renditions from a master playlist, using ffmpeg to identify the byte range of the keyframes.
    #hls# ffmpeg# ffprobe# trickplay# iframes# m3u8# manifest# typescript
    Parse HLS
    Parse HLS 2018-2020
    Parse M3u8 files into JSON
    Strongly-typed HLS manifest parser, written in TypeScript. Fast. Zero dependencies.
    #hls# m3u8# manifest# typescript
    Live Streaming
    Live Streaming 2017-2021
    Achitected FloSports Streaming Platform
    We migrated our legacy streaming system to an entirely custom build. This included orchestration of starting and stopping EC2 instances running Wowza, a management and monitoring console for our NOC, Live to VOD automations for entire broadcasts and also realtime clipping based on sports meta data, piracy blocks, CloudFront CDN integration, and much more.
    #wowza# hls# live streaming# vod# typescript# java# aws# cloudflare workers
    FloFX
    FloFX 2017-2020
    Realtime Sports Data
    Architected and built initial MVPs for FloSports Sport Data system. This includes a webapp to manually collect data and integrations with various physical and cloud-based third party data systems to pull in stats. These stats power on-screen graphics on live streams, rendered as a webview on top of the stream in Wowza. This metadata also powers on-website and in-app stats views and trigglers automatic live-to-VOD clipping. The system also integrates with our home-built management system of our NOC and software run by production crews (either remotely or locally) to integrate with at-venue scoring systems and video production software like OBS or vMix.
    #wowza# html# javascript# css# typescript# node# firebase# firestore# serverless

    Machine Learning and OCR

    FloCR
    FloCR 2018
    Character recognition from camera input
    Wrote a skunkworks project where the production team can point a camera at a scoreboard. Input can be adjusted for contrast and bounds to turn the realtime video input into data and glyphs to show scores, clock, and other sport data on the live stream.
    #webapp# ocr# sports metadata# live streaming
    FloCR for Streams
    FloCR for Streams 2018
    Character recognition from incoming stream
    At FloSports we often simulcast received streams from other production companies. Consequently, we did not have the live score and other data from the game. As a Hackaton, wrote an application that grabbed frames every 500ms from Wowza stream and ran OCR on the graphics to extract the data in realtime, pushing it to Firebase.
    #webapp# ocr# sports metadata# live streaming# wowza# firebase
    ML to Auto-Trim VODs
    ML to Auto-Trim VODs 2019
    Used ML to trim pre-game slates
    Before games started, there would often be several minutes of spinning slates or other graphics. This wasn't a good user experience. I trained an ML model to regonize slate graphics from real camera input to give the timecode of the first real frame, in order to trim the pre-game fluff off.
    #machine learning# google automl# video streams
    Customer Support ML
    Customer Support ML 2020
    Salesforce integration
    Used dataset of tens of thousands of tagged CS tickets to train an ML model to recognize the problem from emails received from customers. Salesforce integration automatically fed incoming emails to this system to pre-tag them for the issue and, in some cases, immediately email them a solution with no CS interaction.
    #machine learning# salesforce# cusomter support# efficiency# zapier# google automl
    Spam or No Spam
    Spam or No Spam 2019
    ML Model to moderate forum
    Took dataset of thousands of forum posts, labeled spam or not spam, created an ML model and API to properly identify the difference. Model was 99.9% accurate, despite the wide variety of content inputs.
    #machine learning# google automl# moderation

    APIs

    Echelon API
    Echelon API 2021-2022
    Based on NestJS
    The team and I launched a new API shortly after I joined Echelon. The goal was to modernize and unify the a host of disparate APIs, so that our clients had a highly standardized RESTful API to use. This allowed faster development and fewer bugs.
    #typescript# node# nestjs# rest api# docker
    StatX
    StatX 2020
    Firebase Functions
    Architected and built original MVP for FloSport's API that handled sport data in an abstracted way so that it could serve dozens of different sports with unique data schemas.
    #typescript# node# firestore# firebase# rest api# nosql
    Serverless API
    Serverless API 2017-2020
    We migrated FloSports' live streaming API off of a legacy PHP-based system into a strongly-typed API built on the Serverless framework and running on Lambdas. This worked well for a while, but we ran into issues with the scalability of Lambads, and we ported it over to NestJS to run in Kubernetes on Google Cloud.
    #typescript# serverless# aws lambda# api gateway# kubernetes# gks

    Random

    JasonByrne.net
    JasonByrne.net 2022
    Personal Homepage, built with Svelte
    Heard all of the hype about Svelte. I decided to learn it and built this personal homepage less than 24 hours after writing my first line of Svelte code.
    #svelte# javascript# html# css# cloudflare pages
    RaceTab
    RaceTab 2007-2015
    Track & Field Meet Manager
    Created a full-fledge timing and race management program called RaceTab, which received wide market praised and marketshare. Despite not being supported for years, continues to have a loyal user base. Integrates with various video and chip timing systems, registration services, and imports and exports various formats. Still the most flexible software on the market.
    #windows# application# vb.net# winforms
    Gravity
    Gravity 2004-2008
    Professional Service Industry Suite
    Created internal software at Florida Industrial Scale that the owner and I spun off as a separate company. We sold licenses to scale service industry companies for $10-30K per install. The software ran the entire business: sales, service, rentals, inventory, accounting, collections, customers, leads, customer support, sales tax, purhcase orders, quotes, integrated with third party software like QuickBooks, and had a separate tablet-based app for our service techs where the service orders two-way synced over-the-air with customers signing acceptance on the screen. Keep in mind this was before smart phones were invented. This software is still being used by many of these companies.
    #windows# application# vb.net# winforms# crm
    MileSplit Live
    MileSplit Live 2007-2015
    Track & Field Live Results Platform
    System multiple components: Windows-based app (Electron) that runs on timing company's machine, an API powered by Firebase Functions (database is Firestore), and a frontend built with Angular (hosted on Firebase Hosting). I managed the outsourced team in Mexico that built the Electron application, while myself and my team built the web-based components. It syncs with various timing systems and pushes results to the web in real-time. It integrates with the MileSplit database to add metadata like team logos, badges for personal bests, and ranked performances. It also gives timers custom landing pages, domains, and branding.
    #angular# typescript# firebase functions# firestore# pubsub# firebase hosting# outsource# electron