Architect and Tech Lead2018 - PRESENTEY
Technologies: Python, TypeScript, Node.js, Flask, Pandas, Vue.js, RabbitMQ, Postgres, Docker, Kubernetes, Azure, RHEL, Windows, Vagrant, Ansible, Trifacta
- Architected (and implemented the core of ) an enterprise-grade ETL and data processing system: The system is used by a Fortune 100 enterprise’s employees and clients, in production, at the global level.
- Managed relations and product buy-in with and for partners, C-suite execs, engineers, and end users—onsite and remotely.
- Helped the distributed team embrace and use sound engineering practices like proper documentation, code reviews, code and configuration revision management, and CI/CD. The full system is able to be deployed and run on laptops, distributed cloud systems, or on-premise data centers. Production (and test/QA/UAT) systems are tested and deployed using CI/CD.
- Singlehandedly designed and developed a high performing Docker-based pipeline and job processing system, initially to emulate an in-development enterprise system and later to completely sunset the aforementioned system in production. Achieved huge savings in development and operational costs.
- Designed and developed an advanced, data-driven, and configuration-driven orchestration system able to handle all the highly-custom data processing flows.
- Designed and helped implement a data identification subsystem able to identify, pre-process, and clean/fill heterogeneous and unreliable input data and formats.
- Designed and developed the core libraries for configurations management, logging, notifications, and data processing. All systems passed strict info-security implementation, deployment and legal checks.
Senior Node.js Developer2017 - 2018Johnson & Johnson
Technologies: Node.js, Apigee, Azure Table Storage Service
- Developed a proxy REST service to transparently handle national data residency requirements for Salesforce services.
- Created a Node.js server running inside the Apigee Edge Proxy system taking advantage of all the provided functionalities for endpoint, target, and error handling.
- Architected multi-tenant data storage using Azure Table Storage Service.
- Fully documented the software using OpenAPI specs.
- Wrote a small custom data-driven stress test suite to validate implementation and performances.
Lead Software Architect2017 - 2017Alive5
Technologies: Node.js, TypeScript, Express.js, Socket.IO, Twillo, DynamoDB, AWS RDS, Redis, Docker, Mocha
- Designed a scalable, plugin-based microservice architecture for an SMS and chat management and payment system.
- Developed the core framework implementing the proposed architecture using Node.js and TypeScript.
- Provided extensive documentation and guidelines to allow the team to continue the transition from the legacy application to the new platform.
- Designed and implemented a custom data store abstraction for DynamoDB and SQL-based systems.
- Implemented easy to use and scalable event sub-systems using Socket.IO and Redis.
Lead Software Architect/Developer2015 - 2017Auction Mobility
- Designed and developed a REST API service that controls the whole company infrastructure: automatic EC2 instances provisioning, custom application deployment based on specific client settings and configurations, service monitoring and incident notification via Slack, PagerDuty and other external services, and DNS management.
- Designed and developed a distributed web socket service for real-time event filtering and propagation to web, iOS, and Android client applications.
- Designed and developed a REST API service that automates client configurations and asset generation for back-ends, web, iOS, and Android clients with an internal distributed job queue and a lightweight asset proxy.
- Designed and developed a Node.js SDK for the CardConnect credit card processor API.
- Designed and developed a Node.js SDK for the Bill.com invoices processor API.
- Designed and developed many internal tools like a SQL-like Redis querying tool for event analysis and management or AWS SNS integration.
- Integrated external services like payment processors (Stripe, CardConnect, NMI, PayPal), DNS services, AWS services, email/mailing-list services, push notifications (APNS, GCM), and proprietary API services.
iOS Game Developer2009 - 2016Kismik
Technologies: Objective-C, C, Python, Lua
- Founded my little game company to publish my own games for iOS.
- Developed and published my first game, "Be2 - Escape from Pingland," which was featured in the "News & Noteworthy" section of the USA Apple App Store (and almost all the other app stores as well).
- Created a custom game engine based on Cocos2D, with an integrated Lua scripting engine, in-app purchase support, level auto-reload from the external editor, a networked debugger and control system scriptable in Lua, and integration of various analytics/social libraries (Flurry, OpenFeint).
- Developed a multi-platform custom level editor using Python and Qt. The editor can connect to a running game instance (simulator or device) and update levels/configurations as the game is running.
iOS Developer2015 - 2015Westwing Home & Living GmbH
Technologies: Objective-C, Auto-Layout, Size Classes, Facebook SDK, REST APIs
- Integrated with the existing team and successfully converted and extended the company's iPad application to an Universal iOS 7/8/9 application using size classes, Auto Layout, and some magic.
- Implemented unit tests for UI and business logic.
- Performed daily code reviews.
- Handled extensive debugging.
- Implemented new UI features and animations.
- Worked in an Agile environment.
Software Developer2015 - 2015Currency Cloud
- Created the Python client SDK for the Currency Cloud platform.
- Implemented unit, integration, and pep8 tests. Integrated with Travis CI.
iOS Developer2015 - 2015Development Agency
Technologies: Objective-C, iOS SDK, Realm, MetaIO, AFNetworking
- Developed an augmented reality catalog for a light manufacturing company (Linea Light AR).
- Handled catalog synchronization with a remote server: optimized updates and enabled downloading of required assets.
- Implemented searchable catalog content. Used Realm.io for all database related tasks.
- Handled positioning of augmented reality 3D assets on a 2D image acquired from the device camera.
- Implemented pattern scanning and linking to a product's 3D asset or catalog entry.
- Developed an action system to bind the MetaIO AREL scripting system to the internal application catalog API.
iOS Developer, Back-end Developer2014 - 2015Drawp.it
Technologies: Objective-C, iOS SDK, Core Data, OpenGL, Python, Django, MongoDB, Parse, S3, Stripe, Ext JS
- Implemented new iOS client features. Refactored, extended, and debugged the OpenGL rendering system (Drawp).
- Implemented the iOS asset storage and management system for offline and online modes, with content synchronization within multiple devices and with the back-end.
- Added multiple signup/login support options (local, Facebook, Twitter) on the client and server. Implemented, refactored, and debugged the UI system and animations.
- Implemented the shop website using jQuery and Django. Developed the user gallery management system and the product order/editing system. Used external APIs for payment processing (Stripe), tax calculation (TaxCloud), asset management (Parse), and photo/canvas printing and shipping (WHCC). (www.drawp.it).
- Implemented the back-end administrative interface using Sencha Ext JS. Handled user and asset management, report generation, and usage analytics.
- Implemented the server's asset management system, including caching, automatic asset generation, CDN support, integration with Parse and S3, and new asset rendering from shop orders (zoom, crop, rotation, color space adjustments, etc.).
Software Architect, Developer2010 - 2015Freelance
- Developed a multi-platform mobile application (using PhoneGap/Cordova and Sencha Touch) for operational instructions consulting and report input and submission by machine operators.
- Developed an iOS application for the top soccer market news site in Italy.
- Designed and developed the API service for a luxury hotel auction site (using Node.js). Supported clustering and managed authentication (local, Facebook), authorization (using roles), real-time auction notifications (via Socket.IO, Apple, and Google push notifications), payment processing, and back-office management. Stored all data in MongoDB and Redis databases.
- Reverse engineered PLC code and developed data collection systems.
- Configured and managed Amazon EC2 instances.
iOS Developer2013 - 2014Sibyl Vision, Inc.
Technologies: iOS SDK, Objective-C, Core Data, Shinobi Charts, AFNetworking, Facebook SDK, Twitter SDK, Google+ SDK, Git, JSON
- Developed an iOS real-time data visualization application interfacing with an external API server.
- Made extensive use of Core Data with custom extensions like circular buffer records.
- Interfaced with a remote REST service using AFNetworking and JSON data structures.
- Developed custom widgets, like a hierarchical/expandable UITableView.
- Created an extensively configurable application ready for branding.
- Integrated Facebook, Twitter, and Google+ API.
CEO, CTO1999 - 2009Startup
Technologies: Python, C, C++, Perl, SQL
- Designed and developed a multi-platform (Linux, OS X, Windows, Solaris, IRIX), multi-user (with RSBAC security), multi-tier (native graphical client using Python/QT, central configuration server, distributed agents, and collectors), seamlessly distributed (all the nodes where seen as a single machine/API) platform for process automation. Written completely in Python except for a few lines of C.
- Managed a development team of six people scattered all over Europe.
- Managed large deployments of our system (>500 retail points) while developing custom solutions like electrical spike prevention, refrigerator control, and remote PLC configuration and data collection.
- Designed and implemented custom 3D visualization systems (using OpenGL) for real-time display of the operational status of production plants using data collected in real time from the plants' PLCs.
- Developed a geographically distributed surveillance system featuring real-time video analysis for motion detection (with priority and inactive zones), sensors' data acquisition and analysis, and programmable custom response logic (email, SMS, lock activation, etc.).
Software Developer, System Administrator1998 - 1999Freelance
Technologies: Perl, C, Assembly x86, SQL
- Developed software to optimize paper production planning and cutting for a paper mill company. Used a customized bin-packing algorithm to manage nine different variables. Reduced the planning process time from ~5/6 hours to ~5 minutes while enhancing the paper/waste ratio to an almost constant ~97% (3% up from the previous manual process).
- Developed software tools used to control, integrate, and enhance the functionalities of not-interoperable systems like cash counters, electronic scales and refrigerators.
- Developed and published on CPAN several extensions/libraries for the Perl programming language.
- Implemented IT basics and networks and taught programming courses held by European Community projects.
- Managed a few Windows networks.
Software Developer, System Administrator1997 - 1998Network Provider
Technologies: Perl, C, SQL
- Developed dynamic websites and eCommerce solutions using Perl.
- Developed network management and data collection utilities used to facilitate network and client administration and billing.
- Designed, configured, and administered database servers, web servers, file servers, proxy servers, and firewalls used by clients in both the private and public sectors.
- Configured and managed international VPNs.
- Configured and managed Linux, Windows, and Cisco networks.
Software Developer, System Administrator1992 - 1996Freelance
Technologies: Assembly Intel x86, Assembly Motorola 68000, C, Perl
- Co-developed a 2D graphic engine for the Commodore Amiga using a mix of C and Motorola 68000 assembly language. Used the engine to show advertisements and information.
- Co-developed software to serve as a driver for the Commodore Amiga to control a massive display used for showing information/advertisement during public events.
- Configured and administered MS-DOS and Windows 3.1 networks.
- Developed software to perform data extraction and analysis from proprietary databases using Perl.