Gergely Bódi, Developer in Budapest, Hungary
Gergely is available for hire
Hire Gergely

Gergely Bódi

Verified Expert  in Engineering

Go Developer

Location
Budapest, Hungary
Toptal Member Since
October 10, 2016

Gergely is a developer with 13 years of experience. He specializes in Go and web technologies that supplement Go back ends. He has a strong familiarity with unit testing, SQL, and NoSQL and is also interested in cross-platform front-end development through Flutter, where he has two years of experience. During his university years, Gergely studied many programming languages. The most vital skill he acquired was the ability to learn new technologies on the fly and solve engineering problems.

Portfolio

Freelance
Videos, JavaScript, Google Cloud, Linux, gRPC, HTML5, Vanilla JS, Unit Testing...
Shib.io
Go, Ethereum, Blockchain
HTEC - Main
Go, Internet of Things (IoT), Unit Testing, Agile, REST, OpenAPI...

Experience

Availability

Full-time

Preferred Environment

Linux, Arch Linux, Git, LiteIDE, Geany, Visual Studio Code (VS Code), Slack, Google Meet, GitHub

The most amazing...

...thing I've made for a currency exchange app was the Ext JS front end, parts of the Python back end, C++ calculations, and a fantastic AI algorithm.

Work Experience

Full-stack Developer (Contract)

2015 - PRESENT
Freelance
  • Developed multiple back ends in Go with different SQL and NoSQL technologies.
  • Wrote unit and functional tests for Go with table-driven subtests and high coverage.
  • Developed multiple front ends in Vanilla JS, CSS, HTML5, React, and Angular.
  • Developed desktop user interfaces in Qt C++ and wxPython.
Technologies: Videos, JavaScript, Google Cloud, Linux, gRPC, HTML5, Vanilla JS, Unit Testing, Functional Testing, Protobuf, Parse, PostgreSQL, Git, SQL, Microservices, Go, CSS, AngularJS, Python, Back-end, Performance, Google Cloud Platform (GCP), Distributed Systems, Databases, APIs, REST APIs, Amazon Web Services (AWS), Back-end Development, GitHub, REST, MariaDB, AWS Lambda, Desktop App Development, Test-driven Development (TDD)

Senior Go Developer

2023 - 2023
Shib.io
  • Learned blockchain mechanism with a Polygon-fork cryptocurrency.
  • Helped upgrade the company's fork of the cryptocurrency code by a major version and fixed minor related issues.
  • Learned about self-sovereign identity and made comments on implementing it.
Technologies: Go, Ethereum, Blockchain

Go Back-end Developer

2023 - 2023
HTEC - Main
  • Created and refined a Go directory structure for multiple projects.
  • Made PostgreSQL database layer functions for CRUD operations of many tables with unit tests.
  • Created and improved an OpenAPI descriptor for a REST API layer, integrated it with generated Go code as a service layer into the back end.
  • Wrote integration tests for the back-end system using HTTP requests and responses.
  • Mentored colleagues to learn to Go with previous Java background so they could continue to develop the system. Focused on teaching idiomatic Go style and best practices.
Technologies: Go, Internet of Things (IoT), Unit Testing, Agile, REST, OpenAPI, Code Generators, Swagger, Auth0, Auth0 API, Mentorship, Team Mentoring, PostgreSQL, Docker, Docker Compose, Gin-Gonic, Ginkgo

Senior Go Developer

2022 - 2022
Reddit, Inc.
  • Migrated already collected metrics to Prometheus, including unit test coverage in Go, for a popular social news platform.
  • Handled server configuration changes from command-line flags to YAML file sources in Go.
  • Refactored single-function unit tests to table-driven subcases in Go.
Technologies: Go, Microservices, Prometheus, Unit Testing, GitHub, Jira, Agile, Test-driven Development (TDD)

Flutter Developer

2021 - 2022
Self-employed
  • Developed two mobile and web apps to schedule appointments for horse riding schools.
  • Managed multiple layers of accessing data in Google Cloud Storage and Firestore NoSQL database.
  • Developed a tool to easily import existing data to the new system.
Technologies: Flutter, Go, Firebase, Firebase Hosting, Cloud Firestore, NoSQL, Dart, Back-end, Performance, Docker, Google Cloud Platform (GCP), Databases, APIs, REST APIs, Back-end Development, GitHub, REST, Mobile Development, Android

IoT Developer

2020 - 2021
Spin
  • Managed connectivity events and the state of multiple types of electric scooters with unit tests.
  • Connected 3rd-party APIs to the system: Datadog monitoring/logging and APM span traces.
  • Debugged low-level IoT functions in cooperation with people from other teams.
  • Reviewed many pull requests of other team members thoroughly.
  • Wrote and debugged resource-critical multithreading code.
Technologies: Go, Unit Testing, Redis, APIs, Internet of Things (IoT), GitHub, Jira, Agile, Test-driven Development (TDD)

Senior Go Developer

2020 - 2020
Raven Ops
  • Developed a Go CLI that parses real-time flight data and encodes it in a more readable format in GRPC in a multithreading server.
  • Developed a Go CLI that parses a sky map from a huge ASCII formatted file and saves it to a more readable format in PostgreSQL tables.
  • Created some small Go CLI utilities that query data from the PostgreSQL table (previous bullet) based on given input data.
Technologies: Multithreading, gRPC, Unit Testing, Parse, PostgreSQL, Git, SQL, Go, Performance, Distributed Systems, Concurrency, Databases, APIs, ETL, Test-driven Development (TDD)

Go Developer

2019 - 2019
Rendered Text
  • Developed a CLI to save, overwrite, and delete files on Google Cloud Storage on a per-client basis with unit tests.
  • Developed a gRPC service to check the cloud storage service's health state.
  • Made it available through a gRPC service to check cloud usage on a per-client basis.
Technologies: Go, Command-line Interface (CLI), Viper, Cloud Storage, Unit Testing, Google Cloud Platform (GCP), Google Cloud Storage, gRPC, Test-driven Development (TDD)

Go Developer | Web Developer

2019 - 2019
Baldor Technologies Pvt Ltd
  • Developed a React-based front end of a web app for capturing the user's video with a journey of multiple screens.
  • Built a Go-based back end with robust error handling based on the status information.
  • Managed the storage of the captured video on the Google Cloud Platform.
  • Provided useful unit test templates for both the back and front end.
Technologies: Video Streaming, Videos, JavaScript, Google Cloud, HTML5, Vanilla JS, Unit Testing, PostgreSQL, Git, SQL, Go, Google Cloud Storage, Video Capture, React, Performance, Databases, REST APIs, Back-end Development, GitHub, REST, Test-driven Development (TDD)

JavaScript Engineer

2017 - 2017
Exponential
  • Conducted R&D about the new video technology including live-streaming technologies like HLS and MPEG-DASH.
  • Looped a portion of an HTML5 video with JavaScript.
  • Understood and provided a solution for the new mobile sound playing issues and for desktops as well later on.
  • Made multiple 360-degree videos visible on web pages.
  • Joined the framework development. Understood the existing huge codebase, fixed bugs, wrote new code, and collaborated with people from all around the world.
Technologies: JavaScript, HTML5, JavaScriptCore, HTML5 Canvas, HTML5 APIs, Object-oriented JavaScript (OOJS), CSS, iOS, Video.js, Responsive Frameworks, Node.js, EaselJS, Bower Front-end Dependency Manager, Adobe Muse, PhantomJS, Agile Software Development, Responsive Layout, Gulp, Scripted Animation (JavaScript), 360° Video, HTTP Live Streaming (HLS), Unit Testing, PostgreSQL, SQL, Git

Back-end Developer | Front-end Developer

2013 - 2014
National Information Infrastructure Development Institute, Budapest
  • Contributed to the Drupal module development for the company web site.
  • Created standalone Python scripts for different purposes.
  • Supported cloud development for ELTE University using OpenStack.
Technologies: Linux, HTML5, Unit Testing, Git, SQL, CSS, Python, Back-end, Performance, Docker, Back-end Development

Front-end Developer | Back-end Developer

2010 - 2013
Genome Finance Solutions Kft., Budapest
  • Created a complex GUI in Ext JS and maintained it during Agile development.
  • Assisted in the Python back-end development, using multithreading computations.
  • Wrote and updated unit tests for a Python back end.
  • Assisted in the C++ development of CPU-intensive calculations.
  • Wrote my own trading algorithm based on machine learning, which was the most successful among all the strategies.
  • Developed a JavaScript-based charting module, open-sourced it, and made it available at Sourceforge.net/projects/jsplot.
Technologies: Multithreading, JavaScript, Linux, Agile Software Development, Waterfall Development, HTML5, Machine Learning, Evolutionary Algorithms, Neural Networks, PostgreSQL, SQL, C++, Python, Ext JS, Back-end Development, Subversion (SVN), Agile, Trading, Algorithmic Trading

Front-end Developer | Back-end Developer | Summer Intern

2005 - 2005
CM et CFA du Gers, France
  • Took part in the development of the new administration system in PHP.
  • Contributed a custom CSS theme for the application.
  • Took part in hardware and software maintenance of the local computer classroom.
Technologies: HTML, CSS, MySQL

Firebase Auth Claims Manager in Go

https://github.com/vendelin8/firemage
A CLI written in Go that can edit Firebase Auth Claims. It can handle different permissions that a normal application can only read and only for the currently logged-in user.

The idea is to be able to list and modify privileged users easily. But listing users with only a special claim, or even any claim, is not a feature of the Firebase API. That's why listing all privileged users works only by looping through all Auth users and filtering to the ones having at least one of the interesting claims. This is slow. That's why the result list of privileged users will be saved in a Firestore document, and updated on later changes.

FEATURES
1. Refreshing cached list of privileged users. This can be useful for:
• Building a cache for the first time.
• Building a cache after the list of interesting claims has changed.
• Considering a refresh because of suspicious manual changes to the Firestore cache or the Auth claims.
2. Printing a cached list of privileged users.
3. Printing a search result based on email or name. This also uses Firestore because searching in Auth is not possible.
4. Changing permissions on the listed users and saving them to Auth claims and the cached Firestore list of privileged users.
5. Undoing yet unsaved changes.

Flutter Demo

https://github.com/vendelin8/elements-flutter
A small cross-platform mobile and web app that prints daily data based on the Chinese five elements zodiac system. The user can swipe or choose another day in the calendar.

The app is available in the Google Play Store https://play.google.com/store/apps/details?id=io.github.vendelin8.elements

JavaScript Charting Library

https://sourceforge.net/projects/jsplot/
This library is a part of a bigger project. The GUI for that project was written in ExtJS, and it conflicted with the charting modules available at that time. As a solution to this, we decided to write our own library, which was my task. The CEO and other team members let me open-source it.

It is an HTML5 Canvas-based chart module.

FEATURES
• It can show candlestick charts, line plots, bar charts, and distribution diagrams.
• The x-axis can contain date/time values or data indexes.
• The y-axis limits fit automatically to the displayed data.
• Under the chart, a zoom panel is shown if necessary. The user can zoom in and zoom out with a mouse scroll and pan the shown window left or right.
• Mouse hover shows a tooltip about the current value at the mouse position.
• If showing multiple plots at the same time, a legend is shown with the names and line colors.
• Indicators can be created that are calculated based on the loaded data.
• Data can be loaded at any time, appending after or inserting before the current data.
• Different color schemes are supported.

The online demo is located at Jsplot.sourceforge.net/index.html.

The documentation can be found at Jsplot.sourceforge.net/wiki/index.php/Main_Page.

Golang CLI Demo

https://github.com/vendelin8/elements
A small CLI that prints daily data based on the Chinese five elements zodiac system. The user can move the calendar by one day, month, or year to check different dates, and the console updates without adding new lines.

Hobby Project for a Non-profit Org in Flutter

A Flutter-based web and mobile app to display information from the Chinese five elements zodiac system. It uses a Firebase back-end. There's a personal page where users can look at their own personal formulas. There's a consultant page where experienced users can look at their clients' formulas and calculate more complex information.
2004 - 2012

Master's Degree in Computer Engineering

Budapest University of Technology and Economics - Budapest, Hungary

2009 - 2009

Participated as an Exchange Student in Computer Engineering

Simon Fraser University - Vancouver, Canada

Libraries/APIs

REST APIs, Protobuf, React, HTML5 Canvas, HTML5 APIs, Node.js, EaselJS, PhantomJS, OpenAPI, Auth0 API

Tools

Git, Geany, Subversion (SVN), Slack, GitHub, Jira, Bower Front-end Dependency Manager, Adobe Muse, Gulp, Terminal, Firebase Authentication, Auth0, Docker Compose

Languages

Go, SQL, JavaScript, HTML, Python, CSS, C++, HTML5, Dart, Object-oriented JavaScript (OOJS)

Storage

PostgreSQL, Databases, Google Cloud, Cloud Firestore, Google Cloud Storage, NoSQL, MongoDB, MariaDB, MySQL, SQLite, Redis

Paradigms

Microservices, Unit Testing, Waterfall Development, Agile Software Development, Functional Testing, ETL, REST, Mobile Development, Responsive Layout, Agile, Desktop App Development, Test-driven Development (TDD)

Platforms

Parse, Linux, Google Cloud Platform (GCP), AWS Lambda, Amazon Web Services (AWS), Docker, Arch Linux, Android, Firebase, Visual Studio Code (VS Code), iOS, Ethereum, Blockchain

Frameworks

Vanilla JS, AngularJS, gRPC, Ext JS, Flutter, Viper, JavaScriptCore, Video.js, Responsive Frameworks, Swagger, Gin-Gonic

Other

Back-end, Performance, Back-end Development, Multithreading, APIs, Internet of Things (IoT), LiteIDE, Video Capture, Videos, Video Streaming, Machine Learning, Evolutionary Algorithms, Reinforcement Learning, Neural Networks, Artificial Intelligence (AI), Firebase Hosting, Google Meet, Distributed Systems, Concurrency, Prometheus, Cloud Storage, Command-line Interface (CLI), Scripted Animation (JavaScript), 360° Video, HTTP Live Streaming (HLS), Algebra, Console Apps, Google Play Store, Google Pay, Google Play Console, Code Generators, Mentorship, Team Mentoring, Ginkgo, Trading, Algorithmic Trading

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring