- First name: Gianluca
- Last name: Costa
- Year of birth: 1986
- Nationality: Italian
- Education: M.Sc. in Computer Engineering (110/110 with honours)
- Experience: Interactive timeline
- GitHub portfolio: https://github.com/giancosta86
- Gradle/Maven repository: https://bintray.com/giancosta86/Hephaestus
- Favorite emoticon: ^__^
I bought my first PC in June 1998 and compiled my first program - written in Delphi 1 - in January 1999: since then, I have studied and employed a wide variety of technologies, both on my own and for work.
Over the years, I have created software mainly in Object-Oriented Programming (Java, Delphi, C#, Python, ...), gradually learning the principles of Domain-Driven Design; however, since 2015, I have been passionately focusing on Functional Programming as well, as I believe it revises and extends the best ideas of other methodologies, leading to more effective design and development, with fewer bugs and cleaner code: an example is EighthBridge, my hybrid OOP-FP library dedicated to graph modeling and interactive rendering - inspired by Elm.
Currently, my favorite languages are Java 8 and Scala, because they enable a smooth transition to the concepts of Functional Programming while supporting previous investments in OOP and in the huge Java ecosystem.
Build tools are another domain I am keen on - especially Gradle, although I employed Maven and Ant too, creating custom plugins: my plugin for Gradle is Aurora, designed to be the core of every modern open source application or library I have released for the JVM (Java, Scala, Groovy), greatly simplifying software distribution; you are also invited to visit Hephaestus, my Gradle/Maven repository.
More generally, I enjoy applying patterns and ideas to several sectors and different problem kinds - as it fosters creativity; to see a range of examples, please refer to my GitHub profile.
Natural languages are even more important than software languages - as they convey a much broader stream of ideas - and I am definitely passionate about several aspects of linguistics - morphology, syntax, phonetics...
My native language is Italian, and I studied English and French at high school, later reaching certified C1 level in both.
In 2015 I decided to begin learning my 4th language - Dutch - and the result was quite positive. Therefore, in July 2016, I also started German, getting Goethe Zertifikat B1 about 10 months later, in June 2017.
In 2017 I have created a website named Farbiges Deutsch, describing German grammar via both theoretical rules and statistical rules inferred by performing Data Mining on a German linguistic corpus; learning from that experience, in 2018 I have started Marianne, a website dedicated to French language and culture.
From time to time I like approaching new languages! For example, I studied a bit of Spanish - and I am currently learning a bit of Chinese! ^__^
Education, work experience and awards
In 2003 I was among the winners of a competition, held by Rubiconia Accademia dei Filopatridi, consisting in the translation of a speech composed by the Latin orator Cicero.
I attended a scientific high school - Liceo Scientifico "Enrico Fermi" - and received my diploma in 2005, with a score of 100/100.
After graduating with honours in Computer Engineering at the University of Bologna in 2009, I spent more than 4 years in the IT industry, working on a few different activities:
- Software development on a variety of technologies, mainly in the C# and Java ecosystems - including Silverlight, ASP.NET MVC and Struts
- Teaching to junior developers - especially C# and OOP good practices, as well as brown-bag sessions to colleagues (for example, on Python and Regular expressions)
- Database querying and scripting - in Oracle 10g, SQL Server and MongoDB
- Build tools: I introduced Maven and Hudson in one of the companies I worked for, so as to vastly enhance and simplify the management of Java artifacts
In the meantime, I continued studying on my own in several fields - web technologies and OOP languages - in addition to creating open source software: in January 2014, Geertjan Wielenga interviewed me on EasyPmd, my plugin for NetBeans.
In 2014 I decided to return to University, in order to achieve Master's Degree in Computer Engineering (in December 2016) - and I am definitely satisfied about my choice in terms of acquired skills; furthermore, I worked hard to delve into Functional Programming, releasing didactic hybrid (OOP-FP) Scala projects - for the most part dedicated to Operations Research and Artificial Intelligence - such as KnapScal, Chronos and GraphsJ.
In July 2016 I was awarded the prize dedicated to the 30 most brilliant engineering students at the University of Bologna during the previous year and in December 2016 I achieved - with honours - Master's Degree.
I adore music - from classical (Mozart, Chopin, Bach, ...) to opera (Rossini, Donizetti, Verdi, Bellini, ...), up to modern (Édith Piaf, Queen, Dschinghis Khan, ...) and contemporary music (Jörn Schlönvoigt, ...).
In particular, I'm fond of modern arrangements of classical pieces, such as David Garrett's violin masterpieces and some symphonic metal, as I think they brilliantly combine classical style with modern sound and technology.
I can play the piano (although not fluently) and, since mid-2017, I've studied a bit more of Music and harmony theory.
Aristotle used to say that Philosophy is a natural aspect of mankind - born from the very act of wondering in front of natural phenomena, which leads us to posing questions and finding answers.
In this regard, at high school I passionately studied the ideas of many different philosophers - from Ancient Greece up to the XX century - and I believe it was a very formative experience in the definition of a personal view of the world.
As time passed, of course, I have developed my own preferences, and I'd say that my favorite philosophical trail is the Enlightenment - because personalities such as Voltaire, Beccaria, Goethe and many others (including contemporary thinkers like Popper and Russell) were not only brilliant philosophers, but also intellectuals caring for the evolution towards a more human society.
In my spare time, I usually like:
- Hanging out with friends
- Learning languages
- Listening to music
- Playing videogames
- Going to the theatre
- Composing poems