Enrico Carniani, Developer in Barcelona, Spain
Enrico is available for hire
Hire Enrico

Enrico Carniani

Verified Expert  in Engineering

Software Developer

Location
Barcelona, Spain
Toptal Member Since
May 18, 2022

Enrico is a software engineer with broad experience in several IT fields and languages, including Objective-C, C++, C, Java, PHP, JavaScript, and Python. His prime concern is managing and designing things at their best and delivering his clients the most excellent solutions depending on their requirements.

Portfolio

Freelance
TypeScript, React Native, iOS, Android, Loopback, AWS Lambda...
Midokura Iberica (a Sony Company)
Java, Azure, Cloud, C, Interviews, Technical Hiring, REST APIs
Freelance
CSS3, ECMAScript (ES6), PHP 7, Swift, JSON, HTML5, Mobile, PHP, Bitbucket...

Experience

Availability

Part-time

Preferred Environment

MacOS, Python 3, C++, React Native, Swift, iOS, Git, MySQL, Visual Studio Code (VS Code), Debian Linux

The most amazing...

...thing I've made is an iOS C++ and Objective-C++ integration for King games presenting interstitial video ads from providers such as Facebook, Google, and King.

Work Experience

Senior Full-stack Developer

2021 - 2022
Freelance
  • Developed an Express Node.js back end using IBM LoopBack 4 with RESTful API services for a mental fitness platform with media content and guided health exercises.
  • Integrated an Auth0 framework for OAuth authentication of users and resource access authorization.
  • Implemented an Android and iOS app in React Native that consumes back-end resources, serves video, audio, and text media content, and keeps track of users' progress.
Technologies: TypeScript, React Native, iOS, Android, Loopback, AWS Lambda, Amazon S3 (AWS S3), Amazon CloudFront CDN, Amazon Elastic Transcoder, Python 3, Content Management, Cloud, Espresso, JSON Web Tokens (JWT), Auth0 API, Auth0, Full-stack, CTO, Push Notifications, PHP, Flask, Flask-RESTful, Docker, Docker Compose, PIP, Bitbucket, Binance API, XGBoost, Cryptocurrency, Architecture, Cross-platform, REST APIs

Senior Engineering Manager

2019 - 2020
Midokura Iberica (a Sony Company)
  • Reorganized the company into multiple teams divided by responsibilities.
  • Tracked product and teams' key performance indicators.
  • Reset the way of working in favor of happiness, trust, and efficiency as the teams' core values.
  • Interviewed engineers, focusing on C++, iOS, and Java tech skills and behavioral aspects. Actively participated in the hiring process.
  • Worked as a senior engineer manager to assess and calibrate direct reports.
Technologies: Java, Azure, Cloud, C, Interviews, Technical Hiring, REST APIs

Senior Full-stack Developer

2019 - 2020
Freelance
  • Designed and developed a full-stack solution for advertisement. The back end is written in PHP 7, and both the web server and API server are built via RESTful and JSON.
  • Wrote a web client using HTML5, CSS3, and ES6. Built the mobile app using Swift and iOS via RESTful and JSON.
  • Integrated the Phrase platform for translations to enable multilingual support in the back end.
Technologies: CSS3, ECMAScript (ES6), PHP 7, Swift, JSON, HTML5, Mobile, PHP, Bitbucket, Fat-Free Framework, Architecture, Cross-platform, CSV Export, REST APIs

Tech Lead and Line Manager

2017 - 2019
Skyscanner
  • Led the development of the hotels' pillar app in React Native.
  • Tracked the team's main tech KPIs as defined by the company, such as availability, throughput, and response time.
  • Empowered the team with best practices to set it up for success and deliver good software at speed.
Technologies: Objective-C, React Native, Python, Cross-platform, REST APIs

Senior C++ Engineer

2016 - 2017
King Digital Entertainment
  • Developed a framework to integrate different advertisement services from Google, King, and Facebook in the iOS and Android app core to serve interstitial video ads in the app.
  • Built a testing environment using Selenium and Appium drivers adapted to King's custom game operating system.
  • Conducted tests on real devices, integrating the end-to-end tests in the production pipeline.
Technologies: C++, JNI, Java, Objective-C++, Objective-C, Python 3, Architecture, Cross-platform

Senior Mobile Engineer

2015 - 2016
Drayson Technologies Limited | ML, Mobile, and IoT
  • Created a C++ framework from scratch to process events in real time and collect information from mobile device sensors and additional BlueTooth devices connected to the phone.
  • Developed ML models embedded in the framework fed by sensors and used to classify user behavior and inform about the electromagnetic pollution in the area a user was or intended to be in.
  • Integrated the platform in iOS and Android. The company registered a couple of patents worldwide because of its unique and valuable characteristics.
Technologies: C++, Objective-C++, Objective-C, iOS, Android, Java Native Interface (JNI), JNI, Android NDK, Java, Machine Learning, Cross-platform

Senior Full-stack Developer

2010 - 2015
Freelance
  • Developed PHP and web projects with CodeIgniter for small-medium enterprises like Play5, managing and deploying multiple radio players per account.
  • Created iOS apps, such as radio players, for small enterprises.
  • Managed Debian, Ubuntu, and CentOS Linux clusters to balance and optimize services, including my software.
Technologies: PHP, Objective-C, Objective-C++, Python, iOS, Web, HTML5, CodeIgniter, CSS, Web Content, Hospitality, IT Services, Linux, Ubuntu, Debian, CentOS, Architecture, Cross-platform

CTO

2006 - 2010
Retina Technologies
  • Acted as a product owner on behalf of our clients to manage expectations and continuous delivery.
  • Created software for clients from scratch, such as the Pyroshow Revolution app for Windows—pyrodigit.it—to design, simulate, and drive pyrotechnical devices in musical shows, supporting the implementation of thousands of fireworks.
  • Designed and implemented Jinglebox, a web tv and radio streaming solution based on white label hardware. The firmware was based on Embedded Linux with Python on top for all services. The device was capable of adding personalized ads via CMS.
Technologies: Python, Embedded Linux, Architecture, Cross-platform

Bee | Web, ML, Crypto.com, and Binance

A Flask-based back-end app written in Python3 that can track cryptocurrencies and invest automatically via exchange APIs of Crypto.com or Binance.com.

The app's UI allows the user to create multiple token models based on hundreds of features. Some statistical tools automatically assist the model creation, favoring the best parameters and synthesizing new compound features.

Once the model is trained, it can be further enhanced by an assisted hyper-parameter tuning. Its performance in time is also monitored to signal the degradation and necessary retraining.

The machine learning part is written using Python's scikit-learn framework and some other libraries, such as XGBoost. Models can support different classification algorithms, including time-based ones.

The app, supporting multiple operation queues to exploit multiprocessors and foster interactivity, runs continuously in the background, saving crypto-market values to a MySQL MariaDB instance.

Model instances are then run against the latest values to trigger actions such as selling or buying new cryptocurrencies. The app can handle an arbitrary number of currencies/tokens connected to the crypto.com exchange.

Peak State Mental Fitness | App and Back-end API

https://mettle-studio.com/projects/peak-state/
A React Native app for both iOS and Android aiming at helping people to reach and maintain their mental fitness. The app serves media content, such as video, audio, images, and texts, divided into classes of different levels. The routine is gamified and users assign badges depending on their activity.

I also wrote the back end in LoopBack 4 on top of Node.js, available as RESTful APIs with JSON. The authentication and authorization are performed through JWT with Auth0 as the provider. The content is hosted by AWS S3, distributed via CloudFront CDN, and the server has been turned serverless and boxed into an AWS Lambda instance.

As middleware, I also wrote a simple CMS in Python 3 as an agent able to upload, transcode, and distribute content for the app to AWS.

Play5 | Web, Php, and HTML5

https://www.newradio.it/player-html5/
A multiuser platform written in CodeIgniter4 (PHP7), ES6, CSS3, and HTML5 for NewRadio s.r.l., a company specializing in services for the radio industry and managing multiple web-radio players per account.

The player's skin can be picked among many standard ones, or they can choose one specifically designed for the client, as the player is pure HTML5 with a well-defined structure able to host flexible CSS themes. Special CSS effects like animations are available for stunning effects.

The current track title playing is supported via API services. The back end acts as a proxy and a cache for the different available sources, including Icecast, SHOUTcast, and others.

The web client player written in ES6 is obscured and encrypted through an API license. Almost all web audio decoders are supported through a fallback mechanism that ultimately launches a Flash player in the background. Play5 aims to play music anywhere.

Track art (covers) are also supported and loaded automatically by the client from Apple iTunes services or custom software specialized URLs. This is one of the many features that the company owning the player can switch off.

Casino Bonus Club | CMS, Web, and App

https://casino-bonus.club/
Developed a PHP-based site offering coupons to online casino players. Explicitly not written in React, but still exploiting full Ajax support and using ES6 on the client side.

I wrote it all from scratch, including the CMS feature, which is currently not visible, automatic language translation via Google, and total coupon management with user events such as views and clicks.

Registered users are also managed so they can be ranked and offered unique gifts. The service also provides an API so that an iOS app, now removed from the store, can also offer an excellent experience for this service.

Wrote an extension for most common browsers, such as Chrome, to show coupons when the user enters sites the platform has coupons for.

AlmaView NG | Web, API, C++ client

https://almaview.unibo.it/
A project to manage the network of the University of Bologna, Italy, made on behalf of Laboratori Marconi SpA. It is a suite comprising different apps, such as:

• ALMAVIEW NG web interface, a web-based application written in Zope 2, Python 2, and a multi-user role-based UI. Its objective is to maintain the infrastructure of the campus network. It acts as a centralized interface of registered devices queried via the Simple Network Management Protocol
(SNMP). Devices are organized by faculty, department, and area. The tools associate human managers with device groups. It is also able to create configurable PDF reports.

• Netgear NG with C++ Probe, a super-fast real-time network analyzer capable of sampling information on behalf of AlmaviewNG. Samples and meaningful stats are sent to AlmaviewNG in real time. It acts as a vampire on the wire and checks for suspicious warms or illicit activity such as copyright infringements and security health checks.

• Python 2 agent, an agent that performs other network tests not requiring real-time analysis capability. The agent analyzes and measures the network characteristics and fragilities via SNMP and other protocols using other command-line tools such as Nmap.

Clean Space | App, ML, and iOT

An iOS and Android app used to gather electromagnetic pollution via a Bluetooth device, a patent from the same company, formerly named Drayson Technologies, in London.

I designed and implemented an events processing pipeline in C++. It can process data from all onboard phone sensors, plus the external Bluetooth device.

The pipeline input was a chain of filters to normalize and treat data and had an embedded, downloadable model to predict user behaviors and pollution trends. Classifications and other data were then sent to the app for further processing and displaying.

One of the main peculiarities was its ability to be set up and configured remotely; the model had versioning and was periodically regenerated on the cloud side.

The framework was able to run on iOS and Android. I integrated both platforms by using respectively objective-C++ and JNI as glue.

Languages

Python 3, C++, C, PHP 7, HTML5, Objective-C, Python, HTML4, CSS, PHP, Python 2, JavaScript, Swift, Java, CSS3, ECMAScript (ES6), TypeScript, Tcl/Tk

Frameworks

CodeIgniter, Flask, Fat-Free Framework, React Native, JNI, Loopback, Espresso, JSON Web Tokens (JWT), OAuth 2, Hadoop

Libraries/APIs

Scikit-learn, Flask-RESTful, REST APIs, Auth0 API, Node.js, XGBoost, Binance API

Tools

Figma, Bitbucket, NMap, Git, Amazon CloudFront CDN, Auth0, SHOUTcast, Docker Compose, Boto 3, Android NDK

Paradigms

REST, Cross-platform

Platforms

iOS, Mobile, Embedded Linux, Linux, Ubuntu, Debian, MacOS, Visual Studio Code (VS Code), Debian Linux, Android, AWS Lambda, Web, Docker, Amazon Web Services (AWS), CentOS, Azure, Kubernetes

Storage

MySQL, JSON, MySQLdb, MariaDB, Databases, Amazon S3 (AWS S3)

Other

Algorithms, Software, Software Design, Objective-C++, APIs, Cryptocurrency, Chrome Extensions, Web Content, IT Services, CSV Export, Internet of Things (IoT), Distributed Systems, User Interface (UI), System Administration, Amazon Elastic Transcoder, Content Management, System Architecture, Engineering Management, Full-stack, CTO, Push Notifications, Icecast, PIP, Java Native Interface (JNI), Hospitality, Architecture, Integration, Interviews, Technical Hiring, Machine Learning, Sensors & Actuators, Information Theory, Cloud

2015 - 2016

Master's Degree in Internet of Things

University of Pisa - Pisa, Italy

1992 - 2000

Bachelor's Degree in Computer Science

University of Bologna - Bologna, Italy

MAY 2022 - PRESENT

Software Architecture & Design of Modern Large Scale Systems

Udemy

MARCH 2022 - PRESENT

How to Use Leadership Styles Effectively: Matched Leadership

Udemy

JUNE 2021 - PRESENT

HWS Swift Coding Challenges: Real Problems - Real Solutions

Udemy

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring