Teaching, training

To find a good trainer is the first step for a successful IT trainer, and it is not a trivial task at all. There are many excellent minds out there, who are expert in a given field, but most of them are not very good at communcation and transfering knowledge. Others, better at speaking and teaching, might lack the know-how and experience that can only come from running successful projects in various environments.
With almost two decades of experience as a developer, team lead, project manager, business analyst, IT architect, CEO, CIO and system administrator, I believe I can provide a unique combination of hard technical and technological knowledge as well as the ability to transfer this knowledge to people with various backgrounds. I am available on-demand both to end clients and training organizers.

Managing complexity

A little less than twenty years ago, my first public website, Hungarian TOP1000 consisted of only a few hundred lines, yet it was enough to become a market leader in the sector - serving thousands of users, and measuring the traffic on the most popular Hungarian websites at that time. As far as I remember, it ran on a 90MHz, single core Pentium CPU. In comparison, a "simple" forum engine nowadays, that can be deployed in a matter of minutes, contains tens of thousands of lines, and integrates with various external systems - such as FaceBook for registration, Google Analytics, etc., while the size of one HTML page it serves is probably much bigger then the whole memory of my first computer, the Commodore 64.
IMHO the complexity of software increases exponentially year by year, similar to Moore's Law. Software development has come up with various approaches and tools to handle this: methodologies (e.g. agile), development tools (e.g. Eclipse), libraries and frameworks, increasing levels of abstraction layers were introduced. As a result, in order to stay on top in this profession, constant learing is mandatory. It is needed as a minimum to be able to select the tools and environments for a project.

The importance of trainings

I believe in the learn-by-doing principle: you can (only) master some part of development if you start using it. However, taking your first steps while running a "live" project is risky - on the other hand, just reading and watching tutorials and "playing" with something new does not give you real, hand-on experience: when there is no pressure, most of us have lower productivity. That is, if we start doing it at all, and do not consider it a waste of time.
This makes training very important. A few days of intensive training is worth as much, if not more, than a semester at a university. Showing up at a voluntary training, where you dedicate your time to learning also predestines more motivation, thus better efficiency - in an inspiring environment, with other, making it a social experience also.


Below are a few examples of the topics I can teach - either in English or in Hungarian.

NoSQL, MongoDB

Introduction to NoSQL; using MongoDB

What is NoSQL, and what is its relation to other database types? Where and why do we, or do we not use it. Introducing some well-known NoSQL systems (MongoDB, ElasticSearch, CouchDB, etc.) Hands-on exercises: MongoDB modelling, development, commands and queries. Configuration. Replication, clusters, the aggregation framework, running mapreduce, etc.


Perl programming (various levels)

Introduction to Perl 5. Avilability, compatibility, strengths and weaknesses. Procedural and object oriented programming. Functions, structures, keywords, variables, regular experssions, I/O, database handling. Testing, debugging and deployment. Using CPAN. Writing your own modules. Modern Perl (Moose, Catalyst). Whats's next - A few words about Perl 6.


PHP programming (various levels)

An introduction to PHP. Procedural and object oriented programming. Common extensions, configuration, CLI, mod_PHP, FCGI. Functions, structures, keywords, variables, I/O, database handling.U Common extensions (composer, MVC frameworks, etc.) Different PHP versions.


Docker for DevOps

Introduction to container virtualization, using Docker. Docker and DevOps. Installation, configuration, running and maintenance; alternative runtimes. Images and containers, networking, volumes, building. Docker-compose. Scaling with Docker Swarm. Use-cases tips and tricks, best practices and workshop.