Over the years, I worked on several projects. Some of them was maintenance, some were new features. Most had totally different stacks which just come and go.
On this page, I’m going to showcase some that I’m the proudest of, focusing less on tech stacks, abbreviations and key/buzzwords, and more on motives and outcomes.
GoToConnect – Microsoft Teams Connector
What Acted as engineering feature owner for a telephony integration automation of GoToConnect to Microsoft Teams.
Why Microsoft Teams provides a native calling experience, and users want to hook GoToConnect up into this “Call tab”. There’s a service dashboard available with an API to connect GTC users to Teams, and this integration automates the setup flow, whether it’s 2 users or 200 who need to be connected.
How This product is a collaboration among developers, solution consultants, telephony engineers, sales, finance… Telephony is not simple in Teams (or anywhere), as this requires a low-level SIP connection through an SBC – there are a lot of domain details involved.
As feature owner I first needed to get into the flow and discover all the technical specifics, related APIs, teams and products that we need to interact with.
The goal was to facilitate communication between product, engineering and UX, acting as a catalyser for progress and a go-to consultant when problems or questions arised.
The goal was to have an MVP first and roll the integration out in phases, first for internal testing only, then for general availability.
Although there was a lot of project work to be done here (organizing, communicating, onboarding, clarifying), I went ahead to lay down the foundations of each area (frontend, backend, E2Es, authentication & authorization, core sync logic) so that the team could proceed with features.
The backend is state-of-the-art Spring Webflux, connected to several internal and external APIs but funnily holding no state on its own. The frontend is part of a larger (legacy) Angular project housing various integration pages. It’s a price to pay to have a ready-to-use infrastructure (authentication, PBX selection etc.) on the frontend.
Results I can’t show screenshots because the integration is not officially available yet. 🙂 Internal tests are progressing nicely, and we are in the last phase of development before general availability.
GoToMeeting – Microsoft Teams integration
What Participated in developing an integration that helps users invoke GoToMeeting functionality without leaving Microsoft Teams.
Why Users are increasingly ‘living inside’ various platforms such as Teams or Slack. They wish to be able to interact with their apps without getting distracted by context switches to other websites.
How Bootstrapped the frontend part, a React application that integrates into Teams via iframes.
Cooperated with UX to utilize a new component library for the company’s new design system.
Pushed the discovery process of technical features (Teams manifest files, app structure, oAuth flow).
Worked on the backend, a Java microservice that provides chat bot functionality.
Took part in security review of the final product.
Results The product was launched in the Microsoft App Store in Q2 2020, with several thousand daily users. It features a neat dashboard and a chat bot which allows sharing GoToMeeting meeting cards with colleagues.
ECSET – trainings module
What Volunteered to develop a ‘training courses’ module for the Hungarian Scout Association’s registry (‘CRM’) system, ECSET.
ECSET is the source of truth and central database of everything Hungarian scouting.
Why Our Association’s member count has been rapidly increasing during recent years and the online registry system needs to keep up with features. I’m a training program leader myself and although we have been using Moodle for years now, we feel the pain of not having a proper archive for course participation statuses.
How ECSET is a pure Django + Bootstrap application, currently maintained by a small team of volunteers. The business functionality is actually quite complex, the database has roughly 100 tables, storing years worth of data for more than 10.000 Hungarian scouts.
I discovered the current codebase and available functionality, while discussing the specification with ‘stakeholders’ (paid employees of the Association).
Next, I isolated MVP features, then introduced some constraints that greatly decrease development time by better integrating with current data structures.
Results Development is in progress, the first ‘MVP’ version is due to be deployed in Q1 2021. Once finished, the module will be used by hundreds of trainers and course participants each season.
Labcup – statistics module
What I developed a statistics module for Labcup, a chemical inventory and laboratory management SaaS.
Why In Labcup, users (chemical lab researchers, assistants etc.) keep track of their chemical inventory, which often consists of thousands of items distributed in several buildings.
They want to extract as much information as possible from their data, in order to assess their inventory’s conditions and make better purchase and storage decisions.
How In this full-stack project, I got complete freedom to implement features. I used the user’s inventory, asset and user data and the third-party chemical catalog.
Developed a linear regression model which estimates the user’s inventory value based on their catalog numbers, with a confidence interval.
Created a flexible backend API in Node.js serving data for various configurations of X and Y axes, data grouping intervals (month/year etc.), start and end dates.
Designed a frontend interface with Vue.js and eCharts.
Results Users can access, visualize and export their insights in a convenient way.
Labcup – third-party catalog
What I created a data scraper of chemical vendors to pull in a millions of chemical item records into a central database.
Why Labcup manages inventory data which mostly consists of stock products. If the serial number is known, users want to have as much data prefilled in their records as possible. (Like e.g. packaging size, price, melt point, hazard classes or safety data sheet PDFs)
This data is freely available from chemical vendors’ web stores.
How I created a Node.js command-line service which can be run as a scheduled job and a database schema consisting of structured and unstructured JSON columns.
With tools like Puppeteer, cheerio and simplecrawler, the service discovers new items from central listings, adds them to the database, then proceeds to crawl and parse unprocessed records with custom CSS selectors.
Vendors often try to block or otherwise hinder scraping activity (usually a side effect of DDoS protection), hence the project involved several hacks regarding proxies, cookies and HTTP headers.
Results Collecting catalog data is beneficial for vendors and users alike, because users can conveniently order new items if they are identified in a catalog.
The catalog opened up several new possibilities by connecting it to the existing inventory system.
What I turned into a Fedora Linux package maintainer.
Why I admire the FLOSS ecosystem and have been using Fedora Linux since I started my software development career. It’s a very flexible system with an awesome community.
How As a new packager, there’s quite a lot to digest, like getting a sponsor, learning packaging guidelines and the review system, learning how RPM specfiles and macros work. It took some time to get the hang of it!
What I’m one of the co-maintainers of the gamepad-to-keyboard mapper AntiMicroX.
Why This FLOSS software has a rough history. Originally developed by Travis Nickles, then abandoned, then a fork maintained by Jagoda Górska became pretty popular.
When she decided to abandon the project, I was in the right/wrong place at the right/wrong time (pick one…) and took over via another fork.
How I can’t develop in C++, but I’m fairly good at packaging. Created flatpaks, a Fedora RPM package, cleaned out the repo, improved builds while the other maintainer kept on fixing more complex bugs.
Results It’s fun volunteer work, with the occasional conflicts that can emerge in open-source projects. Nevertheless, this keeps the project alive and distributed to Arch, Fedora, Ubuntu, Debian etc. users. The Github page itself receives about 200 views a day.