Marco Fontani

Marco Fontani

Freelance IT Consultant

Personal Profile

I am a Full-Stack Web Developer / Senior Software Developer / Systems Administrator / Technical Lead with more than ten years' professional experience.

I enjoy working with Linux, networking, databases, web servers, applications, and various programming languages. I value simple and elegant solutions. I have written closed-source applications in C and Perl on multiple platforms, in use to this day. I track and publish my code via Git, and enjoy Test::More testing. When I was living in Scotland, I had founded the Glasgow Perl mongers group and organised the monthly technical meetings.

I am currently working as a freelance Perl software developer, and welcome the opportunity to assist on Perl software development and system administration projects. I speak fluent Italian and English. I welcome unsolicited e-mails about job prospects or collaborations on open source projects.

Key Skills

Software Development

  • Modern Perl
  • mod_perl2
  • DBIx::Class
  • Moose
  • Template::Toolkit
  • Text::Xslate
  • Mojolicious
  • Dancer
  • Plack
  • HTML5
  • JavaScript
  • CSS3
  • MySQL
  • Postgresql
  • NoSQL
  • Redis
  • Memcached
  • Git
  • Subversion
  • Bash
  • Vim
  • Object Orientation
  • Agile
  • Kanban

Systems Administration

  • Debian Linux
  • SSH
  • Apache
  • nginx
  • Exim
  • cron
  • Bash
  • Scripting

Software Development

Over the years, I have developed full-fledged applications, web applications, and script programs in various languages, but I do consider myself more proficient in Perl. I have used PHP, Perl, Python, Ruby and Delphi to create web applications; scripted in bash, zsh, VBA, VBScript and Javascript; written low-level x86 and PIC assembler code; designed GUIs in Visual Basic and Glade. I regularly use Modern Perl's modules such as Moose, Mojolicious, Template Toolkit, Memcached, Redis. I am furthering my knowledge of other programming languages such as Node.js, Lua, Python, Ruby and Haskell.

Systems Administration

I have administered Windows and Linux servers, both for personal use and for customers. I mainly administer Debian and Ubuntu Linux servers, either "bare metal" or virtualised via LXC, VirtualBox, VMWare, ESXi, and Docker. I use tools such as ssh, mpssh, Ansible, and custom/clients' scripts, usually written in Bash and/or Perl. I am furthering my knowledge of newer automated system administration tools, but value having a strong knowledge of the most basic tools.

Work Experience

Freelance IT Consultant

January 2016 - present

I am currently a freelance IT consultant, working from home in Milan (Italy). I architect solutions using mainly open-source products for customers; conduct Perl, JavaScript, HTML, CSS, Bash code reviews for individuals and teams; help stakeholders define business goals and help clients take projects from inception to deployment and continued support/delivery. I administer a number of Debian Linux servers, using a number of scripts and in some cases system automation tools like Ansible.

My main contract is being in charge of the technical team for The Register, and working on releasing new features and fixing bugs for the dynamic web applications and APIs for both public and private users of The Register, Channel Register and other support sites.

Tech Lead at The Register (Situation Publishing LTD)

April 2011 - December 2015

I was in charge of The Register's technical team, and worked on projects ranging from maintenance to creation of new features. In my role as "tech lead", I was a mix of software developer, system administrator, and a project manager. As a developer, I primarily used Modern Perl, DBIx::Class, Template Toolkit, Moose, MySQL, Postgresql, and (some) Redis. As a system administrator, we mainly used Debian Linux. I managed all servers, and created all necessary custom Debian packages required by the codebase.

I headed a project in 2014 to in-place rebuild and upgrade the servers to the new stable Debian distribution. In 2015, the whole infrastructure was revamped and I headed the project to upgrade to the new stable Debian version and move servers to a new provider, bringing the Cloudflare CDN in the mix and reducing the number of servers required for the overall infrastructure.

Perl Software Developer at S1

February 2010 - April 2011

As a back-end software developer, my role consisted in fixing bugs and adding features to S1's websites. I mainly worked on the s1cars and s1homes websites, and contributed to back-end modules which are used across all of S1's websites. I have developed the back-end for the Evening Times Local Businesses and the Herald Scotland Local Businesses sections, a set of modules and templates that could be plugged in any internal sites. I mostly wrote Perl modules which run under Apache's mod_perl and Perl scripts scheduled via cron, but I was also involved in work projects which use Python running under Google's AppEngine.

L3 Senior Technical Support Specialist at Dell UK

September 2008 - February 2010

My role consisted in overseeing the delivery of the MSSB service by the help desk's L1 and L2 agents, and being the point of escalation for any technical issue concerning the products and technologies the service desk supported. I was also the subject matter expert for Linux, and chaired the sub-team responsible for the design, planning and implementation of chargeable services. To aid with day to day work, I created a "ticket queue view" application which interfaced with the department's Remedy ticketing system. This application was written in Perl, using HTML::Parser, ORLite, Moose and a patched ARSTools module to interface with the proprietary Remedy ticketing system.

L2 Technical Support Specialist at IBM UK

December 2005 - September 2008

Part of my role was owning escalations paths and providing advice and support for the rest of the department. I have acted as technical advisor during sales, and documented all technical changes for the other support groups. I have contributed to the smooth deployment of the service to many customers in EMEA, supporting the on-site deployment teams on technical issues and developing new solutions. As part of my other role, I have developed solutions to unprecedented problems within the boundaries of the Desktop Management Services design, working with Testing/QA and other resolver groups in order for the modifications to become standard practices within the department. I have been a subject matter expert for scripting and any software development done by the department, for multiple languages and multiple operating systems. Common tasks included the development of tailored VBScript, batch, Perl, gVim, and C code to aid problem determination and solving, or to better automate processes. I have developed (in C/Perl/CGI/MySQL) a multiple-server "Tivoli Storage Manager" monitoring and reporting tool for daily backups, and various Perl/Tk and VBA applications for translating data sets between various formats, and automating common Systems Operations and Financial procedures. I have helped testing the deployment of Tivoli Provisioning Manager, for Software and OS Distribution.

Technical Support Specialist at IBM UK

November 2003 - November 2005

I have provided Software and Hardware support for IBM/Lenovo ThinkCentre and ThinkPad machines. I have sold and delivered enhanced technical support. I have been nominated twice for the "Customer Satisfaction Championship" in the HelpCentre. I have delivered quick and satisfactory support throughout the years. I have developed and presented an Innovation regarding the usage of a web server to be used as a repository of "Problem Determination" hints and tips for the whole team, a custom wiki written in Perl/CGI. I have delivered high figures based on number of cases closed per day and fixes provided on the fly (T/Fix). Examples of tasks automation I have performed include the creation of various VBA-like macros for use with the internal hardware ordering/ticket management tool.

Software Developer at Lifetronic s.r.l.

September 2002 - September 2003

I have developed the software for a custom-made “SMS station” and a “Vantage I/O Station” in C and x86 Assembler. My main responsibilities included Embedded systems programming, implementation and documentation of custom network protocols. I have used PICs, ATMEL micros, IPC@CHIP and Rabbit boards. I have mainly developed under Linux, although some devices could only produce code from a Win32 compiler running under Windows.

Internship at Lu.Da. Servizi Telematici


I have been involved in the project "Linux LUDA". I have administered Linux servers including the now offline I have developed and administered a multi-user textual game, Anacronia, along with day-to-day system administration.

Social Care at Juvenile Centre "Todo Modo"


I have been involved in the activities in the Centre, mainly regarding music and computing. I have been hired as a part-time teacher by the centre, teaching basics of computing and C software development.


I.T.I.S. G. Galilei - Livorno

"Industrial Technician Expert"

Computer Science High School diploma. Vote: 96/100


LPIC-1, Novell CLA.


Have English language certificates: P.E.T. and other spoken English tests.

Last modified 2016-07-28