Software Developer
Budapest, Hungary
Backend Developer
January 2018 - October 2019
I may have not learned that much while I was working here, though by applying what I have already done before, I had the opportunity to test my theories and principles and make them more precise and valid. Not to mention that I got to contribute to something very meaningful to me, as this company is one of the last independent news outlets in Hungary.
My main focus was to design and launch the basics of a tailor-made e-commerce system to handle different kinds of products from donations to subscriptions through different payment gateways. It also had to produce invoices in a very customizable way to be able to apply the always changing taxation laws. And all of these had to be used easily by other applications with unknown load, therefore, I chose to separate every bigger chunk of functions into libraries and APIs. In which way, we set the functions free from frameworks and any other solutions and workarounds below the application level. So in the long run, these applications will always be able to keep their functionalities while the frameworks and transportation level solutions will be kept up-to-date or changed completely. Hence the unknown load and the already given well-separated code, we also separated our applications into microservices. The extensive time consumption of the maintaining of the microservices, we made skeleton applications with customized and very reusable libraries below application level so our microservices were able to communicate with each other from the very first moment.
#news #smallteam #ecommerce #microservices #architecture #wellseparated #futureproof #laravel #bitemporalDB
Lead-Backend Developer
January 2016 - August 2017
After the promotion, I stayed on the same project but the scope of my responsibility changed. From that time on, I was able to rethink the old architecture which wasn’t working well under heavy load. With the support of the operation, we implemented the new design. Then we had the opportunity to use Ansible for deployment in the reshaped environment. As a lead developer, I got to assess our team’s workflow and improve it. I started to do retrospective meetings where I was the moderator. Furthermore, lead developers’ issue was to build standard tools/flows to apply them in the whole company to make development faster and more reliable. So we looked for new technologies, frameworks, libraries. I went for containerization and dockerized many of our applications. It was crucial in our time because many integrated solutions support Docker containers now. Like Gitlab CI that we started to use to run our tests. To achieve this, I had to assess what we got there as a current environment and be in persistent collaboration with other departments like operation, management, UX.
#moreresponsibility #ansible #architecture #moredesign #lesscode #retrospective #PHPUnit #TDD #docker #gitlabCI #collaboration #monitorandreassess
Backend Developer
November 2013 - December 2015
Mito is a digital agency where my team built web applications for one of the company’s long-term clients. We delivered solutions from CMS to services to cover all of their web-based solutions and appearances. Another company handled the operation of the services and, at this point, the architecture was given by them (as my team joined the projects after them). Team members and other work-related circumstances changed many times because there were many other clients to work for. Therefore, we had to deal with the fluctuation by updating our workflow constantly and documenting every important aspects of our work. As a result, we had to let go of applying any kind of agile framework as a whole, but only pick some of their methods for specific problems and create our own agile workflow.
Here, I’d like to emphasize that one of the applications needed to be able to serve numerous clients at a time with live data, as fresh as they can be. Sorting and transformation in place were inevitable in most of the served responses, therefore, I chose Go as a more precise tool for this job. With it, I got the chance to make the webserver part of the application and with parallel solutions (routines), I was able to share data from memory. By the well-defined JSON structure, the application served every unit of data to the clients at the very moment when they got done, saving precious memory fields from allocation.
#git #yii #golang #PHP #Couchbase #NoSQL #workforclient #cooperation #ownCMS #ownworkflow #heavyload #streaming #memoryheavy #parallelprogramming
PHP Developer
May 2013 - November 2013
This was my first job where I worked in an agile team with all the tools like
We developed the company’s own product, mostly in PHP. It’s a globally available web application for streaming live videos. It was separated into microservices but at that time we didn’t use containers. We deployed the changes into static VMs which were in 5 different DCs around the world. What I got to learn there mainly was that how we can handle the heavy load with high availability in distributed systems.
#SVN #agile #retrospective #codereview #welldistributedsystems #CDN #globallyavailable #PHP