Francesco Pischedda
Via Garibaldi 129,
07049, Usini (SS), Italy
Email: francesco.pischedda@gmail.com or fp@fpsd.codes
Linkedin: https://www.linkedin.com/in/francesco-pischedda/
Current tech blog https://fpsd.codes
Main code repo https://gitlab.com/fpischedda
Secondary code repo https://github.com/fpischedda
Older blog https://francesco.pischedda.info
Even older code repo https://bitbucket.org/minasss
Searching a position in Software Craftsmanship
Bio
Hi, I am Francesco. If you are reading this maybe you want to hire me, so I want to give you a brief introduction to my experience and to what motivates me.
I’ve started my career in game development not because I wanted to be a generalist software developer but because I had a great passion for games and the technologies that made them possible. I’ve spent countless hours optimizing code, reading processors and graphics cards specs, writing game engines, tools and, fortunately, real games. That was a good time!
After noticing how the industry was evolving I have directed my attention to the next big thing, the Internet! Quickly I’ve grasped all the tech needed for the job, and I am still in this fantastic learning journey.
If you made it to this point maybe you’d like to have an idea of my past experience, if so, please continue to the next session.
Professional experience
cargo.one Full Remote, Italy 01/04/2021 - ongoing
Company
cargo.one mission is to digitize and improve the world of the air cargo business, offering better ways to spot good offers for worldwide shipments and book them with a few clicks.
The company culture is the fuel with which it has been possible to achieve ambitious goals and expand the product to the whole world. Things move fast at cargo.one and this process is possible thanks to a team filled with extremely talented and hard working people.
Role
As a Senior Software Engineer I work closely with the Product team to develop the features in our roadmap, also helping them to anticipate tech requirements and owning the product tech stack. The engineering team is also responsible for monitoring the health of the infrastructure, keeping an eye on performance and stability. We are also constantly in touch with other functions of the company to help them to automate their tasks and processes.
Red Pineapple Media, Berlin/Remote, Germany 01/07/2019 - 01/04/2021
Projects:
Red Pineapple Media is a strong reality in video Ad distribution with offices in Germany and Mexico.
As a senior software developer it is my responsibility to improve the software stack, maintain the infrastructure in a healthy state and design and implement new features based on business needs.
At RPM we aim to high quality software while carefully working to add the biggest value with a minimal effort; personal responsibility over projects is the daily bread and butter but also strong collaboration between team members is a key factor for high quality products.
Each change on the system and infrastructure is subject to careful peer review and working in pairs is a common routine; our stack is a combination of PHP (legacy system), Clojure, ClojureScript and JavaScript, deployed on AWS/ECS using a CI/CD approach.
Vimcar, Berlin, Germany 15/01/2018 - 31/06/2019
Projects:
Vimcar is the leading logbook service in Germany and now it is expanding its service offering solutions for fleet management, based on its experience in vehicle data management.
As a Python developer my role is to maintain and extend all backend services which are a vital part of the Vimcar products offer, taking care of new features as well as refactoring old monolithic code to new micro services. Vimcar uses a CI/CD approach to software development, almost every day at least a new version of some service is being deployed improving the product capabilities. Every (micro) service is based on highly tested software components usually built on top of Flask; security and privacy are just not buzz words but a key component of the services offered to Vimcar customers.
FinCompare, Berlin, Germany 04/09/2017 - 01/01/2018
Projects:
At FinCompare I am in charge of maintaining and extending the main product site which is a tool that helps people to find the right financial product for Enterprises, SME, freelancers:
- Extend application backend and REST APIs (django, django-rest-framework)
- Use Salesforce REST API to synchronize data from internal app, managing Leads, Opportunities, Accounts and Contacts
- Work together with stakeholders to understand company needs and provide support for new functionalities, help Q/A process and grow site traffic
Abinsula, Sassari, Italy 14/02/2015 - 25/08/2017
Projects:
- Data ingestion and analysis for a semi static site generator/CMS for a flight search engine: in this project I’ve been in charge of the data ingestion, normalization and analysis of a stream of flight researches coming from the frontend web site and other third party sources; my part have been divided in two micro services, one for the ingestion of the data and one used to query a third party api; the system has been developed using C# (strong client requirement) and the new dotnet core toolset, to store the data I’ve chosen MongoDB because of the often changing data model and for its beautiful aggregation framework; at the end of the project I joined the site generator part to help with statistics, queries and code optimizations
- Rifiutologo: garbage disposal calendar platform with the possibility to request the handling of special garbage types (Python3, Django 1.8, PostreSQL+PostGIS, REST API with Django Rest Framework v3)
- Plany: a suite for creating a business plan starting from the definition of the structure and expenses of a food business; this platform offers a very simple wizard (developed with angularjs and backed by Django Rest Framework API) with which a user can define its business, at the end of the process a business plan pdf is generated along with some graph that shows if the business will be profitable. In the backend the application offers the possibility to import/export all the data needed for the platform to work (mostly data presets) and to define custom logic using the python language itself; developed with django 1.8, Wagtail, Django Rest Framework 3.2, MySQL, Redis, AngularJS
- IoT infrastructure prototype: the project is built on top of MQTT protocol (RabbitMQ broker) and is composed by a client written in python that send GPS position updates, a server that collect this data and sends it to other queues that will be consumed by a web application that show the data on a web page (django + nodejs)
- IoT middleware/infrastructure: at Abinsula we are building e general purpose IoT server platform/middleware in order to simplify the creation of IoT based applications providing developers all they need to communicate with the device(s); actually the reference implementation is done with python 3, a general messaging layer with RabbitMQ and Kafka “drivers” (adding Nats and ZeroMQ soon), a new wakaama (lwm2m c implementation) wrapper for python built with cython
- Artupia: artwork exchange platform (Python 2.7, Django 1.7, API REST with django-restframework 2, MySQL, Redis, WebSockets server with django-redis-websocket)
- Municip.io : geo referential municipal problems reporting platform (Python3.4, MySQL, Django 1.7, API REST with django-restframework 2)
- busturistici.torino.it : e-commerce platform built on top of Wordpress CMS (PHP, MySQL, Ajax); customer support backoffice (PHP, MySQL)
- SNAI: rebuilding the portal of a big betting company based on Drupal 7 (PHP 5.5), redis, varnish, nginx; my role in this project has been to integrate our new code base with the existing SNAI’s pre-existing infrastructure
- MICE/Wellness pdf catalogue generator: this tool reads data from MICE and Wellness REST APIs and renders a pdf; developed with Python 3.4
- Sardex “Oracolo”: a command line tool to handle the new digital currency Digipay For Growth (or D4G) developed with Python 3.4 and Redis 3
Sysgrove, based in France, 90% remote work, 02/09/2013 - 02/02/2014 (startup closed unfortunately)
Python, PyQT4, Postgres, buildbot
- added developer to extend the in-house ERP project in development
- created a buildbot setup for continuous building and upload to Confluence; linux master, MS Windows build slaves to create the application package
BangBite s.r.l. ,Sassari, Italy 01/03/2008 - 01/09/2013
Python, .NET, RoR 3.x, RabbitMQ, Redis, AWS
- developed a code base for various promotional web sites about italian musicians
- deploy, test and debug of iphone apps
- maintenance of the www.ofootball.eu platform (bug fixing, new features, new REST API for general client platform, new service backend application powered by RabbitMQ message broker, project management )
- development of various system tools/daemons (Python, Go)
Televideocom s.r.l. ,Sassari, Italy 11/03/2008 – 25/02/2010
Java, .NET, Python developer
- design and development of a content delivery application for the MIDP2 platform;
- Java Web Start download manager integrated with a content distribuition system for an online music and movie shop
- development and maintaining of various web sites with widely used stacks such as LAMP, WAMP, ISS+.NET+MSsql
- responsable of the maintaining of our custom ffmpeg builds
- responsable/designer/writer of many e-commerce platforms
Athena s.r.l. , Sassari, Italy 01/06/2007 – 04/03/2008
Java programmer
- complete and extend an existing J2EE web application used by local healthcare organization
- data migration from the older application to our new web application's database
Framestudios interactive, Telecommuting 01/11/2006 – 31/05/2007
Lead developer
- porting of a popular 2D puzzle game to a 3D look&feel to get a Wii developer license; the prototype has been developed in c++ with the open source engine Irrlicht and lua as the scripting engine
BigBangSolutions, Navacchio di Cascina - Pisa, Italy, (five months of telecommuting) 15/11/2004 - 30/10/2006
Lead developer, game designer
- develop web application with the stack ASP + IIS + MSSql and the LAMP stack
- manage and develop flash games from concept/game design to the finished product
- development of MIDP games
- develop game prototypes with the Torque game engine and Torque 2D
Gruppo Snai, Porcari - Lucca, Italy 01/02/2004 - 01/11/2004
Developer
- re-write a betting terminal software from the ground up; the software was developed in c for an embedded linux Motif environment
- manage and maintain the build scripts for the internal libraries and code
Prograph Research, Longarone, Italy 01/05/2002 - 15/10/2002
Developer, Troubleshooter
- develop the AI of the CPU controlled players for a street basket Game Boy Advance commercial game
- contribute to the internal core engine
- test game features - peer review
- build tools for the next series of games
Facoltà di Chimica dell'università di Sassari, Sassari 01/11/1999 - 01/8/2000
Lead Developer
- develop an education tool to test student capabilities; target platform Win32 C++ developed with MFC
Freelance/Personal Projects
Python, RabbitMQ, Redis, MongoDB, PostgreSQL, MySQL
- https://github.com/fpischedda/mazeboard : an experimental full stack Clojure implementation of a board game I have created; compojure, mount and MongoDB on the backed and Rum/Citrus React wrapper on the frontend; WIP
- http://www.castelsardodomusbeach.com : Django 1.4, DjangoCMS, custom plugins, deployed on AWS with nginx + uwsgi + virtualenv
- django-virtualoffice - http://virtualoffice.taxandadvise.com : Python 2.7.x, Django 1.5
- desktop client to interact with virtualoffice suite + imap monitor: Python3, PyQT5
- django-firstcontact - http://first.taxandadvise.com : Python 2.7.x, Django 1.6
- django crm (dead project): Python 3.4, Django 1.7, Postgres
- reporting (2015): Python 3.4, Django 1.7, Django REST Framework, Google Maps integration (became the backend of the new Municip.io mobile app), hostend on Amazon AWS
- emporio caritass - http://www.emporiocaritass.org/ : A simple store and registry manager for a local non profit organization built on top of Django 1.8, Django Rest Framework v3, PostgreSQL, hosted on AWS; the best by-product of this project is a nice javascript library to handle bar code readers (keyboard emulation only)
- https://bitbucket.org/minasss/django-rss-aggregator : a rss feed aggregator prototype built with django 1.5, south for schema migrations, celery and redis for background tasks, currently a dead project but it does its job; may restart it using Elixir as a backend
- https://bitbucket.org/minasss/rest_pycheckers : a checkers game with a REST API, built on custom components, has mongodb and (experimental) redis persistence engine, a custom REST API to function mapping and ~80% automated tests (nosetests) coverage.
- http://www.digital-double.com/ : collaboration with M/A Works (https://twitter.com/madebyMA) to build the project 1984 - Digital Double http://www.digital-double.com/
- PyWeek 20 (https://www.pyweek.org/) : a simple game composed by the game client (https://github.com/fpischedda/yaff/tree/master/pyweek20) and a data feed that uses twitter streaming api and rabbitmq for messaging (https://github.com/fpischedda/pywek20_tweet_feed)
- https://github.com/fpischedda/haxebuilder a build system for HaxeFlixel based games, very early stage of development but already integrated with bitbucket webhooks; built with Python3.6, Sanic, MongoDB on the backend and ClojureScript, Rum/Citrus on the frontend (WIP)
Contributions to open source/free software projects
Please refer to my github account for most common patches, also have a look at issues I’ve solved for Mozilla Foundation:
Education
undergraduate at ITIS G.M. Angioy, Sassari, Italy, 1996
Technical skills
Programming languages
- C/C++, C#, Go, Java, Elixir
- PHP, Python, Ruby, JavaScript/CoffeeScript
- Action Script 3
- Assembly (x86, arm)
- CommonLisp, Haskell, Erlang, Clojure (learning those just for fun, and future profit)
Operating systems
Development tools IDEs
- Vim (recently Spacemacs Evil mode)
- Emacs
- Visual Studio
- Netbeans
- Eclipse
Frameworks/libs
- Flask
- Django
- Compojure
- Rum/Citrus
- Celery
- stl
- boost
- MFC
- swing
- QT
- Irrlicht 3D engine
- Opengl
- wxPython 2.8
- pySonic
- pyglet
- pygame
- .NET and newer dotnet core
- FlashPunk
- Cocos2D-X
Storage Engines
- MySQL
- Postgresql
- MS Sql server
- SQLite
- MongoDB
- Redis
Uncategorized tools
- RabbitMQ
- Apache Kafka
- Ansible
- Vagrant
- Amazon AWS
- VirtualBox
SCM
- Git
- Subversion
- CVS
- Mercurial
Also...
I like to develop games in my spare time; I'm experimenting with action script 3, haxe, python, Rust, modern C++ and JavaScript programming right now
I like sports, especially skateboarding and surfing
I like music, especially rock music...and playing the bass with my band (well, long ago…)