My portfolio

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.

Process Street – Process AI (2023)

Go to project

What As squad lead, I led the development of an AI-driven business workflow form generator & importer.

Why Process Street is an amazing workflow management tool, but customers have to face the “empty Word document” issue when creating their first workflows. The company already had thousands of process templates, and as ChatGPT was released, we were looking at ways to leverage the new technology.

How We’ve been working on AI-related features for almost six months, including hackweeks to discover new features. The workflow generator utilized special ChatGPT prompts, streaming responses to the backend and sending completed units of work to the frontend through websockets.

The document importer uses a Node.js AWS lambda with LangChain vector search to find large documents.

Results After a beta test phase, the feature was released in Product Hunt with over 200 upvotes. Every week, customers are generating hundreds of business workflows using AI.

Process Street – Form Fields Autofill (2022)

What As feature owner, created a feature that automatically fills form fields via variables, and keeping them in sync via updates.

Why Users have been experiencing the toil of manual data entry, sometimes employing third-party tools (e.g. Zapier) to fill Process Street form fields for them.

How There was a lot of ambiguity around this project, and edge cases to sort out, but in the end we have managed to extend our existing variable system. The backend employs the reactive framework Akka, with events firing when form field updates happen. So-called actors react to these events, in this case, re-evaluating existing variables to keep auto-filled form fields in sync.

On the technical side, we needed to take special care around performance and doing updates during workflow version updates – the migration happens in a database transaction, and we used Postgres’ savepoint rollback feature to manage errors.

Results Customers love the feature and it turned into an important enchantment of Process Street’s already powerful form field system.

GoToConnect – Microsoft Teams Connector (2021)

Go to project

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 that 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.

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 Spring Webflux backend connected to several internal and external APIs but 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 The integration was released to GA.

GoToMeeting – Microsoft Teams integration (2020)

Go to project

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 (2021)

Go to project

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 (2019)

Go to project

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 (2018)

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.

Fedora packaging

Go to project

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!

Results I’m maintaining 4 packages in Fedora and 1 in RPMFusion, with more to come soon. Unfortunately, these repositories don’t provide user counts since they can be freely mirrored.


Go to project

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.

Share this post