Curriculum Vitæ
Marco Fontani

Mobile: +39-329-2180550

Summary

I am a Free/Open Source Software user and developer. I enjoy working with Linux, networking, databases, web servers, applications, and various programming languages. 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, but do not welcome unsolicited phone calls.

Development

I have developed full-fledged applications, CGIs and scripts in various languages, but I do consider myself more proficient in Perl and C. I have used Perl, Python, PHP and Delphi to create web applications; scripted in bash, 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 langages such as Python, Ruby and Haskell.

Employment History

Freelance IT Consultant

January 2016 - present

I am currently a freelance IT consultant, working from Milan - Italy.
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 for both public and private users of The Register, Channel Register and other support sites.

The Register (Situation Publishing LTD)

April 2011 - December 2015

Tech lead
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 administator, 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.

S1 (Glasgow Herald & Times)

February 2010 - April 2011

Software Developer
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.

Dell UK

September 2008 - February 2010

Managed Services for Small Business (MSSB) - L3 Senior Technical Support Specialist
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.

IBM UK

December 2005 - September 2008

Desktop Management Services
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 DMS 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.

IBM UK

November 2003 - November 2005

South Region PCD/ITS
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 macroes for use with the internal hardware ordering/ticket management tool.

Lifretronic s.r.l

September 2002 - September 2003

Software Developer
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.

Lu.Da. Servizi Telematici

2000 - 2001

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

Juvenile Centre "Todo Modo"

2000 - 2001

Social Care
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.

Education

  • "Industrial Technician Expert" Diploma, Computer Science, Vote: 96/100
  • Various English certificates: P.E.T. and Spoken English tests.
  • Certifications: LPIC-1, Novell CLA.

CS-related skills

I have developed an advanced knowledge of Linux/Unix-based systems. I have a good knowledge of MS Server systems. I have done Systems and Networks Administration. I have a good experience with firewalls, NATs, proxies, port tunneling, VNC connections. I have participated in the integration of LANs, Internet connections. I have developed applications using SMS and smart messaging mobile telephony technologies. I hae interfaced devices using I2C, RS232, 1-wire, 3-wire, and USB. I have implemented custom network protocols. I have a knowledge of RFCs and APIs for networking protocols such as tcp/udp, ipv4/6, http, https, dns, smtp, pop3, ftp, telnet, ssh and variants. I have a good knowledge of personal computers and servers' hardware.