A brief history of time
I'm a developer from Italy with an excellent eye for clean, elegant code. I'm a problem solver with years of experience, particularly in backend development. I've worked for an enterprise search technology – Funnelback – in London for more than 3 years, where I served as a support consultant and dev-ops engineer. I then moved to Tokyo to work as a full stack developer for an Airbnb housing management platform at Zens, as a freelance developer at the Milan-based tech house, Mikamai, and am currently a Ruby on Rails developer at Octopi.
I am always very willing to learn new technologies and techniques to add to my already large toolbox of expertise, so that I may always use the right tool for the job. Ruby, Ruby on Rails, Javascript, Coffeescript, Vue.js, jQuery, HTML5, CSS3, SCSS/SASS, Nginx, Git, Solr, Elasticsearch, Ansible, Jenkins are just some of the technologies I am familiar with. I am extremely comfortable with Linux and the command line. I also have the ability to learn new technologies with relative ease. I am a bilingual Italian & English speaker, and can speak business-level Japanese and some Korean. Well versed in Object-Oriented as well as Functional programming principles, I enjoy spending my time playing guitar, drawing, solving difficult problems and writing clean, elegant code.
I'm quite good at
Ruby enthusiast and Rails aficionado. Very comfortable with MVC development and PostgreSQL is often my database of choice.
Proficient with server setups, user creation, package management, bash scripting, log rotation, automated backups, server synchronization, etc.
Familiar with crawlers, faceted & contextual navigation, content indexing, n-gram edit distance, semantic searches and much more.
GNU/Linux geek since age 14. I am familiar with everything from kernel compilation to fstab setup. The command line and Vim are my best friends.
I want my work to consistently be pixel perfect - from internal code to outward design.
I like to add a bit of dynamics to my web apps, so I tend to make things slide and bounce :)
If something needs to be done more than once, DevOps tools are key. I deploy apps, manage systems and crush complexity.
I've often setup web servers, proxy passes, round-robin load balancing and the like.
Version control has saved my bacon more than once! I use Git religiously.
My professional experiences until now
Developed and maintained the Octopi TOS (Terminal Operating System)
Developed bulk data import features
Developed berth planning tool
Maintained and enhanced terminal gate operations flow
Developed and maintained data reports
Developed and maintained Non Riservato's CSM
Co-founder of the first total restaurant management solution
Developing backend API in Rails 5 & frontend in Vue.js + Nuxt.js
Worked on Allens Training Rails 5 application
Developed and maintained survey and reward system, Surveyeah.
Infrastructure configuration and management.
Assisted in development of IFS Italy platform (international operator of specialized postal services)
Developed and maintained company's events app.
Developed long-term apartment booking platform, Zens Home.
Helped manage and support company infrastructure (AWS, Docker, Heroku, Jenkins).
Mentored interns
Developed and maintained company's internal booking management platform. Integratd with official Airbnb API.
Linux (CentOS, Scientific, Ubuntu) & Windows system administration, as well as AWS setup and remote configuration.
Developed a Ruby on Rails dashboard to monitor SaaS instances.
Provided user support for Funnelback's enterprise search technology via SSH, VPN or on-site.
Ensured all tickets in support ticket queue receive prompt reply within agreed SLA time.
Maintained documentation for internal systems and client setups.
Bash & Groovy workflow scripting.
Created backups and archives where necessary. Rotated logs when necessary.
Deployed disaster recovery (DR) servers.
Nginx / Openresty setup & deployment.
Provided guidance and mentored the company's interns.
Used Vagrant & Ansible playbooks to facilitate workflow automation.
Translator for software in second generation GPS systems for Hyundai and KIA automobiles.
Assisted in writing and editing sales and marketing materials.
Handled arrangements with third party providers, bookings and logistical support, amongst other things.
Responsible for overviewing daily course material with students.
Organised lesson structure, provided students with guidance.
Handed out and monitored tests and exams.
Maintained a daily log for the class’ permanent professor and report any mishaps at end-of-day.
Cashier for Abercrombie & Fitch in Tokyo’s glamorous Ginza district.
Assisted with Abercrombie store grand opening.
In charge of hiring process for new Abercrombie staff.
Responsible for assigning shifts to new staff members and ensuring staff availability.
My academic background
Honors Bachelor of Arts in East Asian Studies (language of focus: Japanese).
Received Anne Marjorie Beer Scholarship in 2008 (In-course award for academic performance).
Two-time president of Margaret Addison Hall, University of Toronto Student Residence (2006 & 2008).
Summer course in Japanese for intermediate learners.
Summer accelerated course in Korean for beginners.
Single year accelerated course in Japanese for advanced learners.
Additional experiences
Checked for lexical & grammatical errors in Korean journalists’ articles.
Double-checked facts and assisted with research.
Checked beta print publication for mistakes, redundancies and inaccurate phrasing.
Assessed social and environmental risks in order to avoid huge data losses and halting of development projects.
Monitored and proposed countermeasures to potential 9/11 style attacks.
Translated documents from Mitsubushi’s Tokyo branch into English.
A few proud moments
Silver medalist for essay contest on international image of South Korea. (http://bit.ly/UU7FOr)
Silver medalist (November, 2010)
Notable entry (July, 2011)
Always challenging myself to learn
Deep learning is driving advances in artificial intelligence that are changing our world. The course covered Convolutional and Recurrent Neural Networks, Generative Adversarial Networks, model deployment and more using PyTorch. The course instructors include: Sebastian Thrun, Ian Goodfellow, Jun-Yan Zhu, and Andrew Trask.
This course teaches the foundations of AI with Sebastian Thrun, Peter Norvig, and Thad Starner. It covers Game-Playing, Search, Optimization, Probabilistic AIs, and Hidden Markov Models. Projects include a Sudoku solver, a Pacman game that uses search to travel through a maze, a planning agent to determine air cargo transport systems and a word recognizer for American Sign Language video sequences, using probabilistic models.
The course covers algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms and dynamic programming. This course also covers how sorting data helps for searching; how to break a large problem into smaller pieces and solve them recursively; when it makes sense to proceed greedily and how dynamic programming is used in genomic studies.
This course covers search engine technologies, which play an important role in data mining nowadays. It investigates how search engines and recommender systems work. Concepts such as stemming, 'bag of words', probability ranking, Vector Space Model, Term Frequency (TF), Inverse Document Frequency (IDF), pivoted length normalization, BM25, Unigram Language Model, Rocchio algorithm, PageRank, HITS, and many other concepts (along with their benefits and weaknesses) are discussed.
In this course students learn programming in R, reading data into R, creating data graphics, accessing and installing R packages, writing R functions, debugging and organizing R code.
This course investigates the basic concepts behind programming languages, with a strong emphasis on the techniques and benefits of functional programming along with many other topics, such as modularity and the complementary benefits of static and dynamic typing. Languages used in this course include SML (functional programming), Racket (multi-paradigm) and Ruby (object oriented).
A collection of my thoughts
Deep Learning has taken the world by storm in recent years. Whereas computer algorithms were already able to beat the leading world chess players in the late ‘80s, the most famous success story being the victory of Deep Blue over then World Chess Champion Garry Kasparov in 1997, other games...
Logs are an important part of any web application. Too few logs make debugging issues a problem. On the flip-side, too many logs can make a disk max out of space, or finding a specific error harder than it should be.
I was recently tasked with setting up hourly log rotation for a server...
Forget everything you’ve been told about working the standard 9 to 5 and do yourself a favor, read this.
The Industrial Revolution commenced in Europe in the mid 18th and lasted until the early 19th century. This phase in human history saw millions of people...
What is the most efficient way for an army to traverse a battlefield given a river blocking one portion of the terrain, a hill blocking visibility in another portion and a wall in yet another? What is the quickest way to travel from London to Cambridge? Finding the shortest path from point A...
The article, written by the DeepMind Team, explains how a Go playing program was developed based on a combination of deep neural networks and tree search. This AI consistently played at a...
While updating my DigitalOcean droplet, I noticed there was a newer release of PostgreSQL 🐘 so I decided to migrate my Rails apps to use that.
Whereas I initially thought it would be a harrowing endeavor, it turned out to be relatively simple. Here are the steps I used to...
If one wished to find a book in a library before the digital age, one would seek a librarian and request the book either by title or by author. The librarian would then go through stacks of books and retrieve the desired text. If one knew that the library organized its books by ISBN, one might...
Dokdo is an island comprised of two islets, Dongdo (East islet) and Seodo (West islet). This small plot of land is located in the East Sea and is almost equidistant from Japan and Korea. Several other names have been ascribed to Dokdo as foreign countries encountered these rocks: in 1849, the...
A very small showcase of some of my work