||Guest Lecturer at Weizmann Institute of Science
- Before I started to teach students in 2018 I taught several courses to the researchers and the internal system team.
- Every semester there is 1, sometimes 2 sessions of the "Programming Bootcamp for Scientists" course
- At first if was a 5-days long 8 hours a day intensive session before the semester.
- During COVID I recorded the whole content of the Programming Bootcamp for Scientists
- Since then the course is back in the class-room. This time 5 half-days before the semester and 5 half-days in the first 5 weeks of the semester.
||Independent DevOps Engineer, Developer, and Trainer
Some of the services provided by Gabor
Some of the Contract Works I've Done
- Introducing Unit~, Integration~, and Acceptance testing.
- Introcuding best practices for Version Control Systems.
- Developing and introducing test automation frameworks.
- Setting up Continuous Integration using Jenkins, Travis-CI, Bamboo, Bitbucket Pipelines, or a set of in-house tools.
- Setting up Continuous Delivery and Continuous Deployment.
- Converting teams to use Virtualization (Docker, Vagrant+VirtualBox).
- Implementing Continuous Learning practices.
- Introducing Pair programming.
- Handling cloud infrastructure (Google, Amazon, Linode, Digital Ocean).
Main areas of contracting works:
- 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.
Convertiung 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 uss 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 the Perl Dancer framework 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.
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 Perl Moo for OOP. Later we converted the application to Python and Django.
files for data storage without any additional back-end.
- An in-house application generating Excel reports from data in a PostgreSQL database to provide Business Intelligence.
This project was built using Perl
- A workflow management application to control the whole workflow of an in-house image processing and analysis system.
This was implemented in Perl handling a number of data formats (CSV, XML), connecting to web-based APIs via HTTP and
to a PostgreSQL database.
- Refactored a code-base used for in-house test-automation that when I arrived had about 4,000,000 lines of Perl code.
- Lots of log and database analysis code to provide data for Munin-based monitoring system. Mostly Perl with some Python.
- Took over the maintenance and further development of an event-based application written in Perl. The application was monitoring the
file system for Excel files uploaded by the users. Then it analyzed and converted the Excel files to XML files that needed to be injected
in a Java-based application. The results were then received in XML format and had to be converted back to Excel. The queues were using
an SQLite database.
Main areas of training provided:
- In-house process automation
- Introducing test automation systems
- Configuration Management and Build Automation - setting up customized Continuous Integration systems
- In-house Web Applications
- Data processing
- Refactoring large code bases
Some of the customers I had during the years:
- Beginner and Advanced level of Python programming
- Beginner and Advanced level of Perl programming
- Test Automation using Python or Perl
- Unix/Linux for power users (using the Linux shell)
- Bash programming
- Version control with Subversion
- Version control with Git
- Introduction to MongoDB
- Aladdin Knowledge Systems
- Apply Tech - Perl development
- Assa Abloy (Rav Bariach)
- Bezeq International
- BGU/Deutsche Telekom (Israel)
- CEVA DSP
- Deutsche Telekom (Germany)
- DNV Norway
- Harmonic systems
- Iskoot (later Qualcomm)
- Mercury Interactive
- Migdal Insurance
- NDS (later Cisco)
- Norwegian Meteorological Inst
- Orange (Partner Ltd.)
- Perfecto Mobile
- SeaBridge Networks - A Siemens company
- Sheer Networks (later Cisco)
- Weizmann Institute of Science
||Personal Projects and Involvement in the Open Source Community
Open source projects, code contributions:
Conference organization, presentations:
- My GitHub account github.com/szabgab contains quite a few other projects.
- pydigger.com analyzing Python packages. It is written using Python Flask
- tracert.com, a web site that provides lots of resources for network administrators. (currently not working)
- dwimperl.com a Perl distribution to make it easy for people to get started using Perl on Windows
and to make it easy to deploy Perl-based application on Linux servers.
- Padre, the Perl IDE. (padre.perlide.org).
An IDE written in Perl 5 with special features for developing Perl 5 and Perl 6 scripts and applications. Initiating
and leading the project. Attracting more than 50 contributors. (2008-)
- Developer and maintainer of the Perl Community AdServer ( pcas.szabgab.com ) (2007-)
- Developer and maintainer of the CPAN::Forum ( http://cpanforum.com/ ) (2004-2014)
- Several Perl modules on CPAN, the Comprehensive Perl Archive Network. (metacpan.org/author/SZABGAB) (2001-)
- Participation in several open source projects including metacpan.org.
Mostly writing unit tests and refactoring code.
- Talks, presentations at several Israeli and international conferences such as YAPC in Europe and in the USA,
German Perl Workshop, Nordic Perl Workshop, Belgian Perl Workshop, LinuxTag Berlin, FOSDEM (fosdem.org), GoLinux (Israel),
August Penguin (Israel) (ap.hamakor.org.il), PyCon (Israel) (pycon.hamakor.org.il/2016/
- Leader of the Israeli Perl Mongers (Users Group) perl.org.il/
- Organizer at the Rehovot Perl Mongers (Users Group) rehovot.pm.org
- Organizing 4 Perl Conferences in Israel perl.org.il/YAPC/
- Organizing the Open Source Developer Conference in Israel osdc.org.il/
- Help organizing Perl conferences in Hungary
- Participating on lots of mailing lists and IRC channels
Personal projects (closed source)
- White Camel Award for contributing to the international Perl community (2008).
- HaMakor prize for contributing to the Israeli Open Source and Free software community. (2009)
- Traceroute and Speed-Meter Gateway system for
monitoring performance of web sites and helping resolve technical
problems on the Internet. In the best times there were more than 50 measurement points installed
worldwide. (Not available anymore)
- Development of a distributed database of Internet Service Providers called EUISP
with 6 mirrored sites of the site in 6 countries: USA, Australia, Spain, Finland, Hungary and Israel. (Not available anymore).
- Hypolit, an automated, multi-server, add-based free web hosting
site. (Not available anymore)
||Infrastructure Manager at Goldnames
- Setup and administration of the internal infrastructure of the
company's computer systems with 60 Win2000 clients, 2 NT 4.0, 10 Linux
and a SUN server. Rebuilding the Intranet and improving security.
- Setup and monitoring 3 versions of the website at various complexity
levels: small and static; multilingual with 7 languages on a dedicated
server; two-tire system with Linux web and application server (JSP with
Jakarta) and Oracle database on SUN/Solaris.
- Development and maintenance of a system to hold 35.000 domain names
and related websites, increasing the daily hit rate by 50% within one
- Development of various tools for fast website development including
and editor for the 35.000 domain names. This provided the company's
business team with the capacity to independently make rapid changes to
the splash pages.
- Providing various statistics on the performance of the companies
- Introducing automatization in several parts of the development.
- Training employees and teaching web programming languages (HTML,
CGI, Perl, PHP).
||Application and Integration Engineer at Phasecom Ltd. (later Vyyo)
- Evaluating third party technology in order to include them in the
networking side of the product.
- Writing Application Notes for the different systems.
- Training the Marketing and the Support team of those
implementations. Working with switches, routers, VPN Data Encryption
(RedCreek, VPNet) and Quality Of Service (Packeteer, BandWiz, Allot)
devices. Accounting information, SNMP managers.
- Designing and developing an asynchronous, telco return system for
Phasecoms' cable modem system.
||System engineer at AgentSoft
- Design, setup and maintenance of the companies computer infrastructure from scratch.
- Installation WinNT 4.0 domain based network with Win95 clients. Adding UNIX and Macintosh to the system for portability testing.
- Evaluating and setup of version control system and bug tracking system.
||Developer and System administrator at Netmanage in Jerusalem
- Development: Worked on hypertext (SGML) creation, compilation
and viewing system. Wrote part of a compiler to translate between two
- Worked on the development of a file mirroring software based on FTP
written in C++, part of the Chameleon suite.
- Created several internally used interactive Web-pages using shell
scripts and Perl. (used C, Object Oriented LISP, AWK, VB)
- System administration: Lead the transition from a badly
designed Novell network to an NT domain cross-connected with other
- The administrated local network was composed of several Intranet
servers and more than 50 PCs each of them configured for three operating
systems. Installation of Intranet.
- Automatization (build and bug tracking system): Implemented
some major improvements to automate the time consuming tasks of the
distributed build system and to improve the working environment of the
engineers. Improved the common bug tracking system (DDTS now ClearCase)
and the common version control system (PVCS) used by the company.
||Project at the R&D center of Digital in Jerusalem, writing scripts in C--
||Translations from Hebrew for the Hungarian Television.
||MBA in Finance and Information Systems (IS) at The Hebrew University of Jerusalem.
||BSc. in Computer Sciences and Business Administration at The Hebrew University of Jerusalem.
||Hungarian (mother tongue), Hebrew (fluent), English (very good). Spanish (intermediate)