Ferenc Erki

independent IT advisor

PostgreSQL performance tuning

The performance of a PostgreSQL database is the combined result of several factors from the environment (hardware resources, operating system), through the PostgreSQL configuration and housekeeping, to the database layout and workload patterns specific to the given application.

Suboptimal circumstances often contribute to a mix of slow queries, high resource usage, low reliability, and low cost efficiency – especially when scaling during high-growth periods.

I can help identifying bottlenecks through an evidence-based comprehensive overview, and creating an actionable improvement plan.

Gentoo Linux

I am using Gentoo Linux as my daily driver since 2008 on all my personal machines. I contribute back to the community via my personal ebuild overlay, the official GURU project, and as being a proxied maintainer of several packages in the main official repository.

I also had the chance to work on scaling up a Gentoo-only production environment from a few dozens of servers in a single data center to a few hundreds distributed globally.

I offer system administration, performance optimization, and ebuild packaging services for your Gentoo-based solutions.

RexOps family

I am contributing to the RexOps family of projects since 2013. As lead maintainer of Rex, the friendly automation framework, I provide a wide range of related services, including consultation, training, and development.

Modern Perl

While I find the history and ecosystem of Perl fascinating, I consider myself fortunate enough to gain all my experience already in the modern Perl era.

Whether you are planning to kick off a new project, or tackling challenges of legacy code bases, I'd be happy get involved around development, quality assurance, and test automation.

DevOps

IT infrastructure and platform solutions

Designing, building, and maintaining IT infrastructure and platforms have been among my responsibilities throughout my entire career. These projects often enabled cost optimization, or even opened new revenue streams.

I am passionate about lightweight, simple solutions (KISS), and love to optimize for high performance. I have helped my teams to scale solutions up to a few hundred managed endpoints in both bare metal and cloud environments, handling 350k+ events per second with low latency, and making sense of data on the petabyte scale.

I can set up or optimize infrastructure as code (IaC), automate processes, introduce test-driven infrastructure operations, and enable insights into the systems through monitoring, metric collection, and log analytics.

Among others, I worked with private and public cloud based on OpenStack, hyper-converged infrastructure with Proxmox, as well as popular Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) ecosystems such as AWS and Heroku.

Version control systems

Introducing or improving version control strategy is often a straightforward way to improve development processes. Git enjoys quite widespread adoption nowadays, but merely using it does not automatically mean everything else around it is also getting better.

I can set up version control systems based on Git, train colleagues about effective and efficient usage patterns, and design a development workflow fitting the team and environment.

Test automation

Identifying problems at earlier stages (“shifting left”) can greatly reduce the cost and time to fix them. Automating the verification steps can further improve the speed and consistency of the results.

In my experience, getting started with static code analyzers, such as linters and formatters, may already lead to increased maintainability and fewer bugs.

I can help teams to get started with testing suites or to optimize existing ones at various levels (unit, integration, and acceptance tests) with different approaches (TDD, BDD).

Continuous integration, delivery, and deployment (CI/CD)

Executing the test suite on each proposed change automatically in a separate environment helps reducing integration efforts and increasing confidence. Delivering a new version of the software to a repository after each successful change allows greater flexibility for deployment decisions. Ultimately, the deployment itself may be done directly at the end of the pipeline, leading to rapid iteration cycles.

I gained my first CI/CD experiences with Jenkins, and since then I worked with Travis CI, GitLab CI, GitHub Actions, and even with custom solutions based on Laminar CI, or Git hooks.

I can help getting such systems up and running both on-premises and as hosted solutions, or even optimize existing ones.

Open source

Open source is widely recognized for delivering high quality outcomes, while enabling collaboration between volunteers, or even competitors.

Inner source enables adopting open source-like culture and principles within organizations, through open collaboration, open communication, and quality assurance.

I rely on open source solutions both for my personal and professional computing needs since 2005. I am most active in the Rex, Perl, and Gentoo communities, while also contributing to various projects via code, documentation, package maintenance, translation, and management. I founded and organized Open Source Contributors' Session meetups to enable others to participate as well.

I can help you navigate the open source landscape by preparing projects to be open sourced, understanding license implications, and getting started with applying best practices to your organization.