About Gabor Szabo
I help people, teams, and organizations improve their engineering practices, increase the speed of development, reduce the risk of bugs. Introducing and improving (Test) Automation, Continuous Integration, Extreme Programming, and DevOps practices.
The service is always tailored to the specific needs, but it usually includes some of the following:
- Help moving to a more flexible Version Control system, or improved use of the current system. (GitHub, GitLab, Bitbucket)
- Introduction to test automation including unit, integration, acceptance, and regression test. Mocking, if needed.
- Improve development, QA, and operations processes and how they interact.
- Setting up Continuous Integration (CI) (Jenkins or GitHub Actions, GitLab pipelines, etc.)
- Setting up Continuous Deployment (CD)
- Help with refactoring code.
- Introduce the use of (Docker) containers.
- Introduce the use of cloud-based systems. (AWS, GCP, Azure, Digital Ocean, Linode)
- Training and coaching people.
Sometimes my work includes building internal web sites.
I also love explaining things and provide class-room training to my clients.
Contact me if you are interested.
Frequently giving presentations and organizing workshop at meetings and conference. The Code Maven group serves as platform for that.
Some of my public presentations were recorded:
- YAPC::Europe::2008 in Copenhagen, Denmark. Padre the Perl IDE
- YAPC::Europe::2010 in Pisa, Italy. About Perl Staff going at non Perl event
- YAPC::Europe::2011 in Riga, Latvia Writing Plugins for Padre, the Perl IDE
- YAPC::Europe::2012 in Frankfurt, Germany. Refactoring Perl Code with a short introduction of Scratch at the beginning.
- YAPC::NA::2016 in Orlando, Florida, USA Getting started with modern web development in Perl.
- At PyCon Israel 2016 I had a talk titled Fight or Flight? - dealing with real world applications in Python. The video of Fight or Flight? - dealing with real world applications in Python is also available.
- At PyCon Israel 2017 I talked about Testing with PyTest. The video of Testing with PyTest.
- At PyCon Israel 2019 I talked about Fixtures and Test Doubles in Pytest
I have 4 YouTube Channels in 4 different languages. I primarily upload videos in English and Hebrew, but I have been experimenting with Spanish as well.
I have been running the Perl Weekly newsletter since August 2011, and the Perl Maven site since June 2012. The Code Maven site was launched in 2015 and the PyDigger site in 2016. There is also the Code And Talk site where we collect information about tech conferences.
If you'd like to get a more CV-like document.
Some of the contract works I've done
- Working with a 5-person QA team in a 1000-person company and helping them move from manual testing and from "writing scripts" to a more robust way of developing their code for automated software testing. Introducing Git. Introducing Python. Unit-testing the Python code. Logging. Exception handling. CI - COntinuous Integration system. (Jenkins) ELK stack for monitoring the system. Scripted maintenance of our servers. Deployment locally and to the Amazon Cloud.
- Moving several systems from Amazon AWS to Google GCP. Creating a labeling system for entities in GCP for a cost reporting system. Helping to reduce cloud expenses. Resizing Elasticseach clusters. Converting a build and testing system from TeamCity to Jenkins using a mix of Groovy, Bash, and Python. Building a Python Flask based reporting system for data in PostgreSQL, Elasticsearch, and Solr systems.
- Implementing and in-house agent-less CI system for a company that uses various small boards (eg. Firefly, Artik, and some Android based devices). Building a CI and release system.
- Implementing the API of 3rd party services in order to make it easier to test an application using that API. To test how to application behaves when the 3rd party application fails. When it response slower than expected. When it returns "out of quota" errors. etc.
- Installing Jenkins as in-house Continuous Integration system. Introducing unit-testing in Python.
- An in-house web-application to provide tools for the engineers to compare images. I used Perl Dancer while the data was kept in PostgreSQL. The front-end was using Bootstrap and JQuery.
- An application aggregating data about mobile applications from the Apple Appstore, Google Play, and various vendors that provide information about those applications. The data was provided in various formats, including CSV, XML, and JSON based feeds and APIs. The collected data was stored in a MySQL database and served via our own API and via JSON. When I arrived and initial version of the application worked collecting data from one source and using CGI to serve the data. I've converted it to PSGI and created the system that was able to accommodate data from various sources in various formats. I used Moo for OOP.
- An in-house application generating Excel reports from data in a PostgreSQL database to provide Business Intelligence.
- A workflow management application to control the whole workflow of an in-house image processing and analysis system.
- Refactored a code-base used for in-house test-automation that when I arrived had about 4,000,000 lines of code.
- Lots of log and database analysis code to provide data for Munin-based monitoring system.
A few words about myself
I was born in 1967 in Budapest, Hungary. After successfully graduating from Fazekas, one of the most competitive high-schools in the country, I thought I can learn everything. Even Theoretical Mathematics.
During high-school I got my first programmable calculator a Casio FX-702P.
Later I got a ZX Spectrum
It took two years to understand that Theoretical Mathematics is way too much for me, so in 1989 I decided to make some adjustments. It involved moving to Israel, spending almost a year in Kibbutz Na'an, learning Hebrew and then starting to learn Computer Sciences and Business Administration at the Hebrew University. I graduated in 1993 and then went on to do an MBA in the same place while working full time in various hi-tech companies.
The first company I worked for was Digital (DEC). I worked there only a few months writing automated test for the Ethernet and Fast Ethernet chips they have been developing.
When that project finished I got accepted to a company called Rosh Maarachot Chosvot, which was later renamed ServiceSoft. I worked there as a programmer writing in Awk and Scheme and slowly learning system administration on the Novell network.
About a year after I started to work there the company moved to the US and the offices, including all the employees were purchased by NetManage that was expanding at that time. I started to work on the newly setup Windows NT servers and was working on the version control system that was PVCS, the bug tracking system (DDTS). I ran the build machines for the developers. That's where I learned Perl.
A little jump here ... one day I'll have to fill in the white pages. Other companies I worked for: Agentsoft, Phasecom (later Vyyo), Goldnames.
Since about 2000 I have been providing training classes and development services in Perl and some other open source technologies. (e.g. Subversion, Git, Linux command line). I also teach Python.
I am providing these classes both in Israel and overseas.
Open Source Development
I have been writing Perl since 1995 and teaching it since 2000. I've started the Padre, the Perl IDE (2008.06-2014.10), I am the maintainer of a number of modules on CPAN, and I have contributed to the MetaCPAN. My GitHub account contains quite a few other projects as well.
Throughout the years I have contributed to several Perl modules on
Developed and maintained the CPAN::Forum a community web forum,
and the Perl Community AdServer. I had to shut down both
due to lack of interest.
In addition I created Padre, the Perl IDE.
I restarted the Israel Perl Mongers and created a lively environment for local Perl enthusiastic in Israel. With the invaluable help of other Mongers I have organized several Perl and Open Source conferences in Israel. The community now has monthly meetings both in Tel Aviv and in Jerusalem and a busy mailing list.
While the Hungarian Perl Mongers had a mailing list for some time already I have registered the perl.org.hu domain so we'll have a constant place to go when looking for Perl related information. Donated the hardware to run the web site and the mailing list and even organized with the great help of some other people two Perl Workshops in Budapest.
I organized hikes (in the near-by mountains) for the speakers of Craft Conf to facilitate opportunities for off-conference bonding and conversations. ( 2017, 2018, 2019). I organized the BOFs at Craft Conf 2019.
Mostly for my community work, in 2008, I received the White Camel Award.
Others about me
It's nice to see what other people write about me or if they take pictures of me, here are a few I found.
1st Hungarian Perl Workshop, 2002 (Budapest)
(participated as organizer and speaker)
Responses in Hungarian
(participated as speaker)
2nd Hungarian Perl Workshop, 2004 (Budapest)
Hungarian text + some pictures
YAPC::Israel::2005 (participated as organizer and speaker)
OSDC::Israel::2006 (participated as organizer and speaker)
Israeli Perl Workshop 2007 (Ramat Efal)
Israeli Perl Workshop 2007 (participated as organizer and speaker)
Many other events I should probably list
PyCon Israel 2018
Helping the organizers.
Some of my clients during the years
- Aladdin Knowledge Systems
- Amdocs - Perl training
- Apply Tech - Perl development, Python development.
- Assa Abloy (Rav Bariach) - Git training
- Bezeq International - Primarily Perl and Python training courses with some mentoring.
- BGU/Deutsche Telekom (Israel) - Git training.
- Breach - Perl training.
- Brodmann17 - Setting up agentless CI system. Handling various small devices.
- Cellex - Perl development.
- CEVA DSP - Perl Training.
- Cisco - Perl development, Perl Training.
- Checkpoint - Test Automation development using Perl.
- Deutsche Telekom (Germany) - Test Automation using Perl training
- DNV Norway - Perl and Test Automation training.
- Evogene - Setting up COntinuous Integration for the Perl-based web application of the company and introducing test writing and better Perl development practices. Implementing an in-house web application using Angular as front-end. Perl training.
- ExLibris - Perl training.
- Forescout - Development of tools for Test automation in Perl.
- Harmonic systems - Perl training
- iCarbonX - Setting up CI system using Jenkins, introducing unit-testing for Python based application.
- Inomize - Perl training
- Iskoot (later Qualcomm) - Perl development, introducing unit-tests, test automation.
- KLA Tencor Python training
- LSI - Perl training
- Mercury Interactive - 2002.03-2003.09 - Maintenance and improvement of internally written, Perl based Configuration Management System. Help in Automating several tasks in system administration.
- Migdal Insurance - Perl development
- MyThings - Subversion training
- NDS (later Cisco) - Perl training, Python training
- Norwegian Meteorological Inst - training
- Orange (Partner Ltd.)
- Perfecto Mobile Linux training
- Qualcomm - Perl training, Python training
- Radware - Perl training.
- Sandvine - Perl training.
- Screenovate - Test Automation system.
- SeaBridge Networks - A Siemens company
- Sheer Networks (bought by Cisco)
- Twiggle - DevOps
- Verint - Subversion and Python training
- Weizmann Institute of Science - Perl and Python development, Python courses primarily for Biology and Physics students and staff.
- Zoran - Perl training.