Hi! I'm a self-taught developer and software engineer, originally from Hungary, but having grown up in Manchester. I'm currently studying Philosophy & Linguistics at St Hugh's College, Oxford, and hope to go into NLP and AI in the future. I have experiences from working on a wide range of freelance projects in my spare time alongside my side-projects, many of which have primarily focused on web development but also branched out far beyond that. I'm particularly interested in taking on projects that stretch my boundaries and allow me to develop new skills in AI, algorithm development, and software and hardware engineering.
If you're interested in learning more about any of the projects listed here, would like to collaborate on something exciting, or would simply like a chat, please feel free to email me at the address listed below.
Manchester • geza@kerecs.com
BA in Philosophy & Linguistics
I was a member of the Programming Society and a founding member of CyberSoc, the school's forum for talks from both students and outside experts on the world of tech and software development. I participated in the Informatics Olympiad, achieving the highest score in my school. I created various pieces of software for my school, including a data entry, query, and display system for the annual Sports Day 🡥, a chip-timing system 🡥 using ESP32-enabled custom-programmed RFID scanning for the alumni running race, a registration system for school parents' evenings, and a graph-theory optimised allocation system 🡥 for distributing prefect roles, as part of my position as the school's Vice Captain.
When our school reached the final round of the Ritangle mathematics competition, the team nominated me to lead the development of an algorithm for finding a solution to a domain-specific travelling salesman problem, which I approached through a Monte Carlo-based regression using a neural-network trained heuristic function in C/C++. These results were then manually vetted through a series of "equations" I had made in an instance of the Desmos graphing calculator, exploiting glitches in the calculator tool to enable Turing-complete computation through a mathematical "standard library" I had developed some years prior.
A Level subjects: Maths, Computer Science, English Language, English Literature, Russian, Classical Civilizations
One of my first ever large-scale programming endeavours, the creation of CodeDragon - a Blockly based platform for learning to write HTML and CSS using real syntax - has been an incredibly rewarding experience. Through our non-profit The CodeDdraig Organisation, our platform - which features our open-source editor, called the "Ffau" 🡥 - had amassed thousands of users, with hundreds of schools from around the world signed up to use our teacher-specific classroom tools. Beyond the implementation of a Blockly sandbox, I led the creation of a "reverse coding" feature that translated edits to the generated HTML code back into Blockly XML through manual parsing and interpolation steps, as well as creating a custom trending and recommendation algorithm for users to discover new projects, powered by a custom neural network trained on both visual and textual content of the users' work.
Alongside the primary product, various other tools created in the process for the non-profit involved custom streaming overlays for our marketing team's livestreams during the pandemic (made using Unity), and a Kahoot-style classroom game creator made in React with Firebase.
Initially starting out as a freelancer, I was asked to take over the development team of the Singaporean start-up OpenForum, currently in the process of building a social media platform centering on community interaction and bridging the gap between Western and Asian social networking cultures. Notably, the site itself is styled as a giant platformer game, wherein users browse posts by moving their avatar through a physics-enabled bento grid of content.
The complexity of this project hinges on the need for user interaction to be at the forefront of all experiences on the platform, which has pushed me both as a developer and a product designer. Ranging from integration of "tipping" of creators through Stripe Connect, to proximity-based voice-calling features, keeping the site performant while simulating the physics of hundreds of avatars moving at once across dynamically-loaded content has required experimentation in WASM, a mixed Rust/Node.js back-end, and attention to detail at every stage of the development process.
When I was chosen to be Editor-in-Chief for my school's Magazines Committee, it became apparent that mandating every designer on the team to purchase a copy of Affinity Publisher would not be a sustainable approach. Therefore, I was inspired to create a free-to-use, open-source piece of publishing software, which seeks not only to implement but to improve upon many of my favourite features of industry-standard software like Affinity Publisher.
The project employs a homebrew object-oriented rendering system in Typescript to handle the visual viewport, and features layer-based editing functionality with property adjustment alongside WYSIWYG inputs. The core design philosophy of the interface is reusability of components for rapid production capacity following the initial design stage, leading me to implement the concept of "super-masters": effectively, groups of objects - be they text, images, or design elements - which can be dropped into the canvas and follow context-based rules, programmed in by the user through a custom-made node editor environment. This allows for functionality such as using mathematical operators in expressing relationships between objects' positions or the size of various sections of text, which can remain flexible even as the page content changes.
The design of the node-based markup language required much consideration from a theoretical standpoint, so as to ensure that all possible "programs" are fully reversible. For instance, in the case a user defines a rule whereby the height of an image depends on a textbox's position, but the user then uses the WYSIWYG functionality to alter the height of the image directly: in this case, the program needs to run the relationship definition "in reverse" to work out what to set the position of the textbox to.
As part of my interest in linguistics and partially inspired by some (painstakingly, manually assembled) examples of etymology trees 🡥 on social media, I decided to create a tool to automatically generate such graphs (which show words in various different languages that share a common root with a provided word) for arbitrary user input. Intending to use openly-available Wiktionary API data for this purpose, the development turned out much more difficult than initially anticipated, as between parsing the human- (and not machine-)readable Wiktionary entries and throttling requests to avoid rate limiting, the process of requesting all of the necessary data distributed between often hundreds of entry pages required complex GCP configurations to minimise server costs, especially while still figuring out how to solve the frequent infinite-loop issues in a deeply recursive searching environment. In the end, a Node.js script spawning instances on GCP to manage the requesting using a domain-specific NLP parser, while progressively dumping partial results into a livestreamed Firebase Firestore database so the user doesn't just stare at a blank screen until the generation is complete, worked a charm.
By the invitation of Youtuber George Collier, I joined the team responsible for developing a musical training mobile application. My particular role was to create a set of back-end tools that allowed the musical team to generate content for the application: specifically, to allow for easy creation of vast sets of pairings of musical notation and their corresponding audio equivalents, as played by MIDI instruments, as well as the metadata required to allow for importing these into the application.
This undertaking eventually morphed into Highscore, a completely custom, fully-functional programming
language based in its syntax loosely on Lisp and PHP, but with various declarative-flavoured
elements, specifically designed to handle musical notation and easy reading/writing of large amounts
of data. To bring it in line with the strengths of the other team members, I wrote the runtime in
Node.js with Typescript, with a command-line utility for running programs written in the
.hsc
format. This would in turn read through the provided script file, providing standard
libraries for all important music-related datasets (keys, modes, notes, etc.), and having support for
musical datatypes as primitives and for generating musical engraving and audio through native syntax.
Frustrated by the available offering of freelancing websites, we decided to design and develop a new type of freelance platform, whereby the site itself decides on socially-optimal prices for any given pairing of buyer and seller using an ELO-based algorithm. My role was to design the formulae, which numbered in the hundreds, for various actions on the site, including the effects of user interactions and local economic conditions (supply/demand for a given service on the site) on price, the effects of subject-specific and global ratings on buyer and seller ELO scores, and the effects of ELO on a given price match-up. I implemented these formulae in Go, while Node.js was selected for running the actual webserver for the site, with Protobuf streaming between the two servers. As the platform required a wide range of different processing features, ranging from payment handling through Stripe Connect, to image and video preview and processing, and even video calling capability, we adopted a microservice-based approach with Kubernetes clusters to manage the connection between them.
Over the years, I have taken on many commissions and freelance projects alongside my own work, a small selection of which I have included here. While I am likely unable to share precise details about these here on contractual grounds, I may be able to describe more if you get in touch 🡥 directly.