Giacomo Grasso
About me

A non-linear but consistent path: understanding how things work, before building them.

Technical skills

  • Python
  • Odoo Framework
  • Django
  • SQL & reporting
  • TDD
  • REST API
  • Git
  • HTML · CSS · JS
  • Business Intelligence & KPI
  • Neural networks & AI (studies)

The path

  1. 2003–2004

    Erasmus in Heidelberg

    Ruprecht-Karls-Universität Heidelberg

  2. 2006

    Bachelor's degree in Philosophy of History

    University of Turin — thesis on the economic-philosophical debate on economic planning between the two world wars

  3. 2007

    Master's degree in Philosophy of Science

    University of Turin, 110 cum laude — thesis on neural networks, connectionism and agent-based simulation. Plus a course on neural networks and evolutionary algorithms in Tübingen, Germany. My thesis →

  4. 2010–2011

    Corporate Audit Assistant — Dyckerhoff AG

    Germany — financial audits and internal control system reviews, business process mapping (Visio) and documentation, GRC software management and compliance audits

  5. 2011–2014

    Controller and BI Reporting — Geodata SpA

    Building and running the internal reporting system, information flow analysis and process mapping, training and supervising the accounting of foreign branches, company internationalisation (international taxation, transfer pricing, internal control system) — alongside the ACCA programme

  6. 2013–2014

    Executive Course for CFO

    Fondazione CUOA — executive programme focused on the CFO role, alongside my work at Geodata

  7. 2015–2017

    Business Analyst on Odoo

    Several Italian Odoo partners — requirements gathering, client support and training

  8. Since 2017

    Python Developer on Odoo

    TDD development, custom modules, community contributor — the Odoo Treasury Forecast app is born and grows, 170 copies sold

  9. Since 2021

    Everphone

    Main project: ERP, logistics, sales, accounting, infrastructure

Foreign languages

My thesis

A great example of cross-disciplinarity

My master's thesis brings together the two ends of this path: philosophy of mind and agent-based simulation on one side, economics and implementation in code on the other — complexity theory, neural networks and a model built in Python.

The thesis starts from complexity theory: systems made of many simple agents that, by interacting, produce collective behaviour that is hard to predict from the individual rules. To study these phenomena I built agent-based simulation models in Python, observing how aggregate behaviour emerges from the bottom up.

The simulation was built entirely with Python models: a virtual environment reproducing a stock market, populated by agents that each contain a neural network. Every agent observes the market, decides and interacts with it, and the overall trend emerges from the interaction of all the agents.

The second part covers artificial neural networks as a connectionist learning model, an alternative to explicitly programming rules. I describe the structure of a network (input, hidden and output nodes, weights and bias units) and the backpropagation algorithm, which updates the weights by minimising the error through gradient descent on the surface defined by the error function.

Diagram of an artificial neural network
Diagram of a neural networkInput, hidden and output nodes connected by weights, with their bias units.
Error function surface
The error surfaceLearning as gradient descent on the error function defined by the weights w1, w2.
Backpropagation formula
BackpropagationThe weight update rule, a generalisation of the Delta rule.