Pier's cv further details

To avoid overloading the main CV.

Personal traits

  • Learner, problem solver, motivated by challenges, systematic, accepting responsibilities, accepting failures as chance for learning, interested in activities that can be analysed according to the PDCA approach.
  • Objectives. People have needs, with knowledge extracted from direct or indirect experience one is able to find better solutions to those needs and therefore make people happier.

Experience and projects

  • Bash library to use vault APIs
    • Link: internal project Aperto
    • Timeline: Summer 2018 – Ongoing
    • Details: vault is a neat secret storage and it was introduced in the team. I liked it relatively quickly and slowly I started to build a library of useful functions that are often used. Like get a token from a approle, get passwords, get other secrets, write them, update them and so on.
    • Contributor(s): Pierfrancesco Aiello, Aperto infrastructure team.
  • Contributions in Puppet modules
    • Link: internal project Aperto
    • Timeline: October 2017 – Ongoing
    • Details: One configuration management tool used in Aperto is Puppet, with quite a library of manifests and modules. I learned the language, now I am quite proficent in it. As usual it is not something that is hard to pick up, it takes only some time. The contributions I am proud of are: the global values module for values useful for many manifests, the extension to the bind module, some puppet functions, some roles, and many little but helpful changes here and there (templates, codes, etc..) especially organizational.
    • Contributor(s): Pierfrancesco Aiello, Aperto infrastructure team.
  • HyperV Virtual Machines automated provisioning
    • Link: internal project Aperto
    • Timeline: October 2017 – Ongoing
    • Details: Using Rundeck (or another tool that offers a webgui and APIs with parameters like Jenkins or gitlab CI) through ssh connection to trigger Powershell commands on a windows hyperV cluster. The powershell commands are developed and then packaged in a module. Create VM, delete VM, move VM, rename VM, avoid mac addresses duplicates (if you have hundred of machines an a pool of thousand mac addresses, the birthday problem happens), integration with the rest of the infrastructure and so on.
    • Contributor(s): Pierfrancesco Aiello, Aperto infrastructure team.
  • Library of documents related to math and calculators
    • Link
    • Timeline: May 2017 - Ongoing
    • Details. The HP community mentioned over time tons of interesting documents and math problems (or concepts), it is a pity to lose them when internet pages become unavailable so I started to collect and order them. I think it should be done in whatever community or group of people that share interesting information.
    • Contributor(s): Pierfrancesco Aiello, HP calc community.
  • Library of small problems about lists
    • Link
    • Timeline: May 2017 - Ongoing
    • Details. Inspired by Manufactoria, I started to devise and collect problems on lists. One day I may expand it to general problems.
    • Contributor(s): Pierfrancesco Aiello, HP calc community.
  • Contributing on wiki4hp (general resources and code library)
    • Link
    • Timeline: May 2017 - Ongoing
    • Details. Try to collect useful websites for the community, useful (technical) information and code that may be helpful to speed up the development of small routines to solve math problems.
    • Contributor(s): Pierfrancesco Aiello, HP calc community.
  • Various relatively small projects, mostly script based
    • Link
    • Timeline: August 2014 - ongoing
    • Details. Small projects to solve small needs but useful needs. For example: backup of a reddit wiki through openwrt embedded device, random videos from the same youtube channel, tons of little scripts to solve small problems and so on.
    • Contributor(s): Pierfrancesco Aiello.
  • My central index that tracks my contributions online
    • Link
    • Timeline: 2012 - ongoing
    • Details. Wiki based.
    • Contributor(s): Pierfrancesco Aiello.
  • Gladiabots statistics
    • Link
    • Timeline: December 2016 - January 2019
    • Details. Code in PHP (and Perl and Bash and AWK and sqlite). Analyzing over 500k entries. Creating tournaments for the community based on a db dump kindly offered by the developer. Also checking meta statistics to support the usage of the Arpad elo's formula, and various player improvements. Discussions: tournaments, meta statistics.
    • Contributor(s): Pierfrancesco Aiello, Gladiabots' community.
  • /dev/urandom wrapper
    • Link
    • Timeline: April 2017
    • Details. Written for sh/ash/bash. In some small environments with linux (see openwrt) there are no quick ways to use the random generator behind /dev/urandom and that's a pity. So I decide to code a script to make use of it with the less possible additional tools apart from the shell interpreter and /dev/urandom itself.
    • Contributor(s): Pierfrancesco Aiello.
  • Computations to determine which tournament format is the most reliable
    • Link
    • Timeline: March 2017 - April 2017
    • Details. Done in the mathematical environment of the hp 50g computer (userRPL). Findings: knockout tournaments are not so reliable to reward strong teams if the strength difference between teams is small. Round robin tournaments are more effective. In general playing more matches between teams rewards the strongest teams.
    • Contributor(s): Pierfrancesco Aiello.
  • Scrolling reader for linux terminal
    • Link
    • Timeline: January 2017
    • Details. Written for shell interpreters (ash/dash/bash). I did not want to scroll manually long files, so I wrote a script to do it for me at a proper speed.
    • Contributor(s): Pierfrancesco Aiello.
  • Generic wrappers for scripts and files copy over ssh for Nagios and saltstack
    • Link: internal project bmsoft
    • Timeline: October 2014 – June 2016
    • Details: Written in sh. Saltstack and Nagios, old versions at least (Nagios 3 and Saltstack 2014), do not have built in commands to copy/execute scripts or send files over ssh. Wrote a wrapper for both, to be generic. One has to give to the wrapper which script (or file or directory) is saved on the master server, which actions one wants to execute, and that's it. Not developed continuously but in brief periods.
    • Contributor(s): Pierfrancesco Aiello.
  • Openwrt wan and hardware redundancy for main gateways.
    • Link: internal project bmsoft
    • Timeline: February 2015 - March 2016
    • Details: Written in sh. Wan redundancy achieved with mwan3 script. Hardware redundancy achieved with a script internal to the company developed by me, with loggers and monitoring scripts. With two systems (one active and the other passive), one could have taken down the active system, switch the cables to the passive system and the passive system would have taken over the main gateway role. Not developed continuously but in brief periods.
    • Contributor(s): Pierfrancesco Aiello.
  • Computing an approximation of probability of failures for raid setups
    • Link
    • Timeline: December 2015
    • Details. Written in awk. Computed on a low power system (32 mb ram). Employing bernoully probabilities. Result: as the sysadmin community suggests, do not use raid5 or any combination of it unless you need space. Code on assembla's git repository.
    • Contributor(s): Pierfrancesco Aiello.
  • Initramfs with ssh for LUKS unlocking.
    • Link: internal project bmsoft
    • Timeline: January 2014 – December 2015
    • Details: Written in sh. Based on the debian initramfs, a modification that allows to unlock LUKS volumes over ssh, getting the key from a known keyserver. Same concept applied for the boot of debian based systems. Not developed continuously but in brief periods.
    • Contributor(s): Pierfrancesco Aiello.
  • Backup reddit wiki
    • Link
    • Timeline: August - September 2015
    • Details: Written in sh. Given a reddit wiki with static links, downloads the entire wiki and also the different versions. This because reddit does not offer wiki exports.
    • Contributor(s): Pierfrancesco Aiello.
  • Exporting contacts, sms, calendar, Todos from Nokia symbian s60 phones
    • Link
    • Timeline: Summer 2015
    • Details: Written in python.
    • Contributor(s): Pierfrancesco Aiello.
  • Csv to XML parser (from OTRS:ITSM to remote desktop manager datasource)
    • Link
    • Timeline: December 2013 – February 2014
    • Details. From the OTRS:ITSM database of computer items to the Remote desktop manager application to let system administrators having a better way to manage connections. Written in PHP.
    • Contributor(s): Pierfrancesco Aiello.
  • Contributing on wiki4hp
    • Link
    • Timeline: September 2013 – October 2013
    • Details. My main objective was: find insightful discussions done in the past on main forums used by the HP calculator community and organize them. An unreachable knowledge is not so useful, I think that all discussion places must have a "best of" section well maintained.
    • Contributor(s): Pierfrancesco Aiello, wiki4hp editors.
  • Some userscripts for greasemonkey
    • Link
    • Timeline: January 2013 – June 2013
    • Details. Quora shuffle improvement; copy multiple links or urls.
    • Contributor(s):Pierfrancesco Aiello.
  • User guide on userRPL in Italian
    • Link
    • Timeline: December 2012 – June 2013
    • Details. A manual about userRPL programming that explains the basics of the language by examples (these are the solutions of some project eulers' problems). There are others similar manuals online in English. However these are too simple or too "full of stuff" (for example the math marathons available on hpcalc.org) so I guess that this project has some utility.
    • Contributor(s): Pierfrancesco Aiello, hp calculators Italian community for error fixing.
  • Aim training map for zDoom
    • LINK
    • Timeline: April 2013
    • Details. A map for aim training for zDoom, done with doom builder and ACS scripts.
    • Contributor(s): Pierfrancesco Aiello.
  • Emule ZZUL TRA TL
    • Link
    • Timeline: May 2011 – December 2012
    • Details. A modification of emule ZZUL TRA client that adds new improvements. It's a Visual C++ project.
    • Contributor(s): Pierfrancesco Aiello, emule team, emule zzul tra team.
  • Digital lecture notes of course "Artificial intelligence" at University of Calabria
    • Link
    • Timeline: November 2011 – February 2012
    • Details. Written using a wiki. (In Italian)
    • Contributor(s): Pierfrancesco Aiello, University community for fixes.
  • Network management on linux *wrt systems
    • Link
    • Timeline: October 2011
    • Details. Written in sh. A solution to balance the use of bandwidth when several computers are connected, caring also about latency, using the Hierarchical Token Bucket Filter.
    • Contributor(s): Pierfrancesco Aiello.
  • Self-chord simulator
    • Link
    • Timeline: June 2010 – November 2010
    • Details. Done in Java, statistical analysis in Excel and Visual basic for applications. For my contributions see http://pier4r.wikispaces.com/Math.Simulation.SelfChord .
    • Contributor(s): Pierfrancesco Aiello, ICAR-CNR section of Università della Calabria.
  • Digital lecture notes of course "Modeling and Identification" at University of Calabria
    • Link
    • Timeline: January 2010 – April 2010
    • Details. Done with MS Word and MathML. In italian, over 80 pages.
    • Contributor(s): Pierfrancesco Aiello, University colleagues for fixes.
  • Digital lecture notes of course "Digital Control" at University of Calabria
    • Link
    • Timeline: April 2009 – June 2009
    • Details. Done with MS Word and Mathtype. In italian, over 150 pages.
    • Contributor(s): Pierfrancesco Aiello, University colleagues for fixes.
  • Simplex Method for HP50g
    • Link
    • Timeline: April 2010 – July 2010
    • Details. Written in UserRPL.
    • Contributor(s): Pierfrancesco Aiello, HP calculators' community for small fixes.
  • Simple reflex game
    • Link
    • Timeline: February 2009 – March 2009
    • Details. Written in Java. A game that helps to train the aim of the player in a 2d environment in Java.
    • Contributor(s): Pierfrancesco Aiello.

Skills

Skill or knowledge self assessment levels:
++++ proficient whatever is the task, I am on it quickly.
+++ productive At least I can help with some subtasks, I need more familiarity for bigger ones.
++ basic I need to learn a bit more and then I can help.
+ novice I know an overview of the topic and I will like to learn it.

General

++++ Personal organization.
++++ Tasks planning1. Technical writing. Design procedures, processes and checklist
+++ Coordinating with a team, team player.2
+++ Documentation.3
+++ Mathematics (focused on the real of Computer Science).
+++ Statistics. It is extremely important, especially for KPIs
+++ Logic.

Programming skills

++++ Imperative, declarative, procedural, object oriented languages; scripting languages for OS administration; stack based languages.
++++ userRPL, dash or ash or Bash, AWK.
+++ Assembly languages, relational databases, numerical analysis frameworks.
+++ Mysql, Sqlite, Postgresql, PHP, Javascript, Python, Powershell, Autoit, Sed, Jscript, Prolog, C++, Vbscript, Visual basic for applications, Postgresql PL/pgSQL.
++ Assembly, Datalog, Object Pascal, Delphi, Basic dialects (visual basic, Realbasic, Vb.net), Tcl, Mathematica, Matlab, Per, Javal.
+ functional languages.
+ Nosql, Redis, Haskell, Ocaml, Lisp, Scala, Clojure, F#, C#, Fortran, Lua, Ruby, Rust, Go, Actionscript, Smalltalk, Sysrpl, Forth, Spark.
Interested to be involved with Databases, data mining approaches, dynamic programming approaches, algorithm optimization, functional languages, object oriented laguages, coding conventions to increase software maintanability and in general programming challenges.

System administration / Devops skills

++++ configuration management Puppet, virtualization ( hypervisors type 1 or type 2; Vmware vsphere, HyperV)
+++ Microsoft Windows servers and clients, Linux servers and clients (Debian, Ubuntu, Centos), Powershell/Bash/Autoit scripting, webserver management (Apache), content management systems (wiki), database administration (Mysql, Postgresql), monitoring systems administration (Nagios, Icinga), configuration management Saltstack, gateway and firewall configuration (Openwrt, Linux), vpn services (Openvpn), software packages deployment systems (Opsi), software deployment (Jenkins, Rundeck, Gitlab CI), containerization (Docker)
++ Email services (Microsoft exchange, postfix, Open Exchange).
+ Apple Mac OS servers and clients, containers (Docker, Openstack), cloud services (AWS, Azure). hypervisors Xen , libvirt.
Interested to be involved with All the concepts listed in this section plus: change management, containers, cloud services, infrastructure as code, infrastructure as a service, knowledge management systems (wiki).

Other IT knowledge

+++ Paradigms such as markup languages, revision control systems.
+++ Markdown, Mediawiki markup, Dokuwiki markup, Xml, Git, RCS, Subversion, Html.
+++ Microsoft Office suite, Libre Office suite.
++ Css, Latex.
+ Jinja, Twig, Xmhtl

Jobs

System Engineer

  • Where: Aperto GmbH (IBM company), Berlin, Germany
  • Timeline: August 2017
  • Details
    • Notable contributions:
      • Main responsible for the deployment of the infrastructure of several customers.
      • Responsible for Docker and Kubernetes standards.
      • Documentation of some technical topics.
      • Changes in the company-made Puppet modules and contributing to Puppet standards.
      • Rundeck job to run powershell scripts to manage VM on an hyperV cluster.
      • Pushed for organizational changes and improvements.
          • A collection of lessons learned is very important to reduce the errors for the next project.
    • Used
      • Administrative tools: puppet, rundeck, powershell, shell scripting.
      • Continuous development: jenkins, gitlab CI, rundeck.
      • Documentation: jira, confluence, markdown.

System Administrator

  • Where: Mgt-Commerce GmbH, Berlin, Germany
  • Timeline: June 2017 - August 2017
  • Details
    • Introduced to Amazon Web Services (in particular Ec2, RDS, Cloudwatch, S3, Route53, CloudFront, ElasticCache). Followed courses about AWS Solution Architect Associate and AWS Sysops Administrator.
    • Used, configured and maintained: Nginx, Varnish cache, Redis to support several Magento webservers.

System Administrator

  • Where: Bmsoft information technologies GmbH, Berlin, Germany
  • Timeline: November 2013 - June 2017
  • Details
    • Responsible of the functionality of over 20 networks remotely managed in Berlin, Hamburg, Düsseldorf, Frankfurt, Stuttgart, München, connecting 750+ IT systems and serving 250+ users during their workday.
    • Main responsible for the network infrastructure (20+ networks), openwrt gateways (35+ gateways) and most of the <b>linux based systems</b> (20+ servers).
    • Responsible of the company's wiki content organization (500+ articles).
    • Continuously try to find suggestions to improve the effectiveness of the team and prevent risks.
    • Responsible for the company's IT infrastructure availability, from servers to workstations (40+ servers, 10+ workstations).
    • Responsible of the company main backups on site and off site (veeam, shell scripts).
    • Active contributor in defining processes and procedures.
    • Algorithm design, testing and implementation (mostly scripting languages such as bash, powershell, php) for system administration.
    • Managing small teams of 2 or 3 persons for limited projects.
    • System administrator of networks of computers with different OSes (windows workstation, windows servers, debian/openwrt/linux systems, vmware, embedded devices, etc.).
    • Algorithm design, testing and implementation (mostly scripting languages such as bash, powershell, php) for system administration.
    • IT engineering tasks (design and maintain IT infrastructures, documenting and/or devising IT processes).
    • Creation of scripts for automatic deployment of applications through the 'opsi' middleware.
    • Improvement of personal communication skills, personal organization and teamwork.
    • Contributing to the knowledge assets of the company through documentation of procedures, networks, etc.
    • Installation and maintenance of servers in various customer locations.

Education

Additional courses

  • Udemy
    • AWS Certified SysOps Administrator - Associate 2017

languages

  • German
    • Volkshochschule Berlin: B1
  • English
    • PET certificate: B1
    • Self assesment: B2
  • Italian
    • Self assesment: C1/C2 (native speaker)

Bachelor's degree in Computer Engineering, University of Calabria.

  • Thesis: Statistical analysis of the bio-inspired peer to peer system Self-Chord.
    • Abstract: Show the statistical effectiveness of new methods for the distribution of resources indexed through a DHT based on the bio-inspired peer to peer network Self-Chord. Description of the working logic of Self-Chord and formal definition of some property of the system itself.
  • Subjects learned:
    • Foundations of linear algebra.
    • Mathematical Analysis (from limits to differential equations).
    • Foundations of physics (Classical mechanics, electromagnetism, thermodynamics).
    • Foundations of Chemistry.
    • Object oriented programming (Java).
    • 2d graphics (Java).
    • Foundations of electrical engineering (Circuits, Transistors, Logical gates, Systems of logical gates).
    • Foundations of Operating systems.
    • Concurrent programmming (Java).
    • Foundations of operational research.
    • Computational complexity theory; data structures and sorting algorithms.
    • Signal theory (physics).
    • Assembly, logical circuits design and computer architecture.
    • Probability (foundations of queueing theory).
    • Databases and information systems.
    • Software engineering and patterns.
    • Linear systems control.
    • Java EE and web development.
    • Programming language implementation.
    • Computer networks.
    • History of Mathematics.
    • Introduction to Economics.

Master's degree in Computer Engineering, University of Calabria.

  • Note: Interrupted in 2013 for personal reasons.
  • Subjects learned:
    • Foundations of distributed systems.
    • Declarative programming.
    • Foundations of discrete mathematics and complex analysis.
    • Positive linear systems control.
    • Design of real time applications and applications with agents.
    • Operational research.
    • Statistics for performance evaluations.
    • Dynamic programming and common useful algorithms (string manipulation, computing flows on networks and so on).
    • Linear algebra 2 (decomposition of matrices techniques and theory).
    • Logical circuits design 2 and Assembly with SIMD instruction sets.
    • Numerical Analysis.
    • Information Theory.
    • Foundations of Artificial Intelligence and Game Theory.
    • Declarative programming on databases.
    • foundations of data mining.
  • Unfinished subjects:
    • Mobile and Grid applications.
    • IT in business.
    • Thesis.

Useful books

  • The Practice of System and Network Administration (ed 2007 )
  • To copy all the useful ones from my goodreads account. Sharing is always useful.

Used tools

  • Microsoft Windows;
  • Markdownpad;
  • Css, html;
  • Firefox;
  • Notepad2;
  • Notepad++;
  • Letter Gothic std, Lucida Sans;
  • Wikidot;
  • PrimoPdf.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License