Franco Tiveron, Developer in Sydney, New South Wales, Australia
Franco is available for hire
Hire Franco

Franco Tiveron

Verified Expert  in Engineering

Software Developer

Location
Sydney, New South Wales, Australia
Toptal Member Since
July 2, 2019

Franco has 30 years of experience as a software developer/engineer/architect, with a broad exposure to several technologies and industry sectors. He has led small teams of 3-10 software engineers and has started a software company as the managing director. Franco likes studying and learning new technologies and spends most of his free time exploring and experimenting with them.

Portfolio

Horth Financial
.NET, C#, F#, C++, Azure, InfluxDB, Dapr, Microservices, APIs, NinjaTrader
Bench
Amazon Web Services (AWS), Python, Scala, Go
CMOC
Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF)...

Experience

Availability

Part-time

Preferred Environment

.NET Core, .NET, F#, C#, C++

The most amazing...

...application I've developed aggregates several and diverse data sources into a business data repository.

Work Experience

Principal Software Engineer

2021 - PRESENT
Horth Financial
  • Created a cloud-based trading platform with back and front end, backtesting, trade execution, data mining, and model training.
  • Developed custom indicators, strategies, optimizers, and components for NinjaTrader.
  • Created a back-office web application for company operations.
Technologies: .NET, C#, F#, C++, Azure, InfluxDB, Dapr, Microservices, APIs, NinjaTrader

Tech Lead

2020 - 2020
Bench
  • Developed cloud services able to collect data from several public APIs, using Go.
  • Developed ETL transformation jobs, using Scala + Spark.
  • Developed Docker files and DevOps Gitlab pipelines in images for services.
Technologies: Amazon Web Services (AWS), Python, Scala, Go

Senior Control Systems and Network Engineer

2012 - 2019
CMOC
  • Created a high-level process controller, optimizer of production machinery performance (C#, WCF, WPF, Fuzzy Math).
  • Created a protocol bridging real-time driver (C++, IEC61131, Instruction List (Assembly)). It allows networking between Gembus servers and Modbus clients.
  • Developed a Power BI integrator (C#, F#, ASP.NET, WEB API, BLAZOR, JavaScript, Bootstrap, jQuery, WebAssembly). BI analysts Power BI reports are embedded in a web application and exposed as web pages.
  • Performed control systems administration (Schneider, Citect, p80i, B&R, Rockwell (Allen Bradley)). PLC, DCS, and SCADA design, development, implementation, and commissioning.
  • Performed MES system administration (Schneider Ampla, OSIsoft PI historian, Windows OS, C#, reporting, web services, SQL server), including installation, commissioning, troubleshooting, and integration.
Technologies: Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Microsoft Power BI, JavaScript, TCP/IP, SQL, SCADA, PLC, Python, C++, F#, C#, .NET

CEO & CTO

2004 - 2012
CSiCo
  • Realized complete automation for a tobacco primary in the USA (Beckhoff, TwinCAT, ZenOn, Window CE, C#, C++, .NET, Profibus DP, RF, SQL Server). The system is composed of more than 50 computerized units (including controller and supervisors).
  • Created CSiCo SCADA Workspace (.NET, C#, C++, Beckhoff ADS, Modbus, Modbus, OPC). This framework consists of a series of Visual Studio extensions, visual control libraries, communications drivers and services, and function blocks libraries.
  • Implemented and commissioned automation systems for a sodium hydrosulfite production firm (ABB DCS, OPC, C#, C++, .NET, Modbus, RF). This is an explosion-proof system (Eex).
  • Implemented more than 200 trading custom indicators and robots (ProRealtime, ProBuilder, ProScreener, Java). Customers were individual traders and online trading companies.
  • Designed and implemented automation, data mining and reporting for an alkyd and polyester production facility (Windows, iFix, VBA, S7, Step7, RS232, Profibus, Ex, Ethernet, DP).
Technologies: Elm, Elixir, Erlang, Python, PHP, Standard Template Library (STL), IEC 61131, JavaScript, Visual Basic, BASIC, Pascal, Assembly, Java, F#, C#, C++

Sole entrepreneur

1990 - 2004
FREELANCER
  • Created MES web KPI applications (IIS, ASP, Visual Basic, SQL, ODBC, JavaScript, HTML, DHTML.), showing production performances figures from existing instantaneous production recordings.
  • Designed and developed a banking desk-side front-end suite (Windows, Win32, C++, MFC). It is a series of Windows forms based front end applications interfacing with remote banking transaction servers.
  • Designed, developed and commissioned several instrument and process control automation and management applications (S7, STEP7, AWL, SCL, LAD, Industrial Ethernet, Profibus, DP, RS232, Radio Frequency, C++, Intouch, Visual Basic, SQL Server).
  • Developed a financial graphical analyzer (Windows, Microsoft Visual Basic, Borland C++). One of the first graphical platforms allowing the presentation of live market data with superimposed indicators.
  • Designed, implemented and installed a telephonic stream analyzer (Windows, Win32, Assembly, C, C++, MFC, Windows Driver, DDK, Intel 80x86). It is a real-time multitasking embedded software for a high speed telecom microcontroller, used in telecom infrastructure.
Technologies: Assembly, Java, Ethernet, Software, IBM Db2, Microsoft SQL Server, Microsoft Foundation Classes (MFC), Microsoft Foundation Class (MFC) Library, Win32, MS-DOS, Visual Basic for Applications (VBA), Visual Basic, C++, Windows

SCADA Alarm History

https://francotiveron.wordpress.com/2017/09/02/47/
Often production and reliability departments have the necessity to go back in time and analyze past process data. All SCADA packages provide trending and alarm management features. SCADA applications, though, are tailored for short term purposes, so that a new class of applications appeared in the market to overcome this limit. They are generically called historians.

The main feature of these packages is the ability to connect to field data sources, including SCADA, and maintain a long term database of significant process points or alarm events. This data is then available for post analysis or reporting purposes.

In this and the next post, I am going to present an application I developed to build such a long term database for Citect Alarms, without purchasing external packages but using only Citect, Windows and .NET development tools already available.

F# – A Trading Strategy Backtester

https://francotiveron.wordpress.com/2018/08/18/f-a-trading-strategy-backtester-1/
In this post series, I will be presenting an F# based trading back-tester. Prerequisites to understand this material are a basic understanding of financial markets trading principles and an intermediate knowledge of F#.

This first post will show a way to get market data from the internet (using Alpha Vantage). Successive posts will show charting by XPlot and a callback-based trading strategy tester facilitated by Deedle.

Black-Scholes-Merton, F# and AVX2

https://francotiveron.wordpress.com/2018/10/02/black-scholes-merton-f-and-avx2-1/
In this series, I am presenting another example of how to use F# in the financial industry.

Black-Scholes-Merton (from now simply Black-Scholes or BS) is a well-known name in the financial industry. It identifies a mathematical model for options pricing and derives from the surnames of the two eminent economists who primarily proposed the model.

F# is a fully fledged general purpose functional programming language for the .NET universe.

AVX2 (Advanced Vector Extensions 2) is the name given to one of the latest extensions to the x86 processors family instruction set.

We will primarily see how to implement the calculation of option prices according to the Back-Scholes model using exclusively F#. Later, we will see how to push the performance of our calculation using first C++ and then unveiling the high-level compiler layer, going down to implement the calculation using plain assembly language and optimizing manually the calculation to leverage on the AVX2 instruction set, which gives us a series of advanced CPU built-in vector instructions. In the process, we will show how to call an assembly procedure directly from F#, without passing through a C/C++ calling convention layer.

Hosting Power BI Content

https://francotiveron.wordpress.com/2017/10/07/hosting-power-bi-content-16/
In this series, I will present a recent project I have completed, whose objective is to create a web application that embeds PBI reports. The company has a Business Intelligence (BI) team that creates PBI content based on production data saved in a few data warehouses. However, the majority of the workforce is not concerned in creating or modifying the reports, but only in seeing them, so the portal embeds the reports inside the web page and doesn’t require the user to be logged into PBI. Further to this, the navigational experience can be completely customized, while at the time of writing the customization of the native PBI portal is limited

A Gem of a Bridge

https://francotiveron.wordpress.com/2017/11/25/a-gem-of-a-bridge/
GEMSTART is the name of a motor protection relay, but I am not talking about the Gemstart 5, but the Gemstart 3, an ancient version of the device which is out of production and one struggles to find information about. Same story for the GEMDRIVE GD2000, a Variable Frequency Drive.

Both of these products have a glorious past, but if you run out of spares you need some good luck and maybe an eBay account.

This is the production plant where this project was developed:

Big production plant, with hundreds of motors to move
Control system implemented 20+ years ago, chosen motor drivers Gemstart 3 for fixed speed, GD2000 for variable speed motors, with a Gembus capable controller (Gem 80 maybe?)
The controller gets obsolete, so it needs to be replaced
There are plenty of controllers available, with plenty of fieldbuses, but guess what? Gembus is not among them, it didn’t get the standardization attention that other fieldbuses got (like PROFIBUS, MODBUS, CAN and so on). In other words, upgrading the main controllers means replacing all your motor drivers, which is a completely different (and much more difficult) endeavor.

F#AWSQL– Interoperability by Cloud

https://francotiveron.wordpress.com/2018/01/04/fawsql-interoperability-by-cloud-1-4/
In this series, I am going to show how to put together F# (with its Type Provider feature), Amazon Web Services and SQL server.

Cloud computing is a manifestation of the benefits of globalization. A few years ago Windows and Linux were fierce adversaries, today we see them both (almost seamlessly) available in Microsoft Azure. Amazon Web Services are strongly committed to competing with Microsoft Azure, yet it is quite straightforward to host SQL server instances and run .NET code in AWS.

And before risking to fire-up the never-ending debate about good and evil of the globalization, here my humble opinion: “Things are not good or bad, only our use of them can be so”. Some people question technological progress as a threat; I think ignorance is the real threat. “There is only one good, knowledge, and one evil, ignorance." I couldn’t agree more.

The API Era: Symptoms Checker

https://francotiveron.wordpress.com/2018/03/18/the-api-era-symptoms-checker/
Symptoms Checker is a bundle of components meant to ease developing applications that leverage the ApiMedic API.
The bundle is composed of three elements:
- SymptomCheckerStateless: a low-level library that encapsulates the ApiMedic Web API
- SymptomCheckerStateful: a high-level library that leverages on 1. and implements workflow state information
- SymptomCheckerApp: a cross-platform Xamarin application infrastructure that uses 2. to deliver final user applications. The Android Flavor is published for evaluation, with a basic user manual.

Custom Indicators and Trading Robots

I worked for several private forex traders, developing both indicators and Expert Advisors. I trade forex also for myself and have developed custom indicators and EAs for that. In several cases they were quite complex, including reading feeds from third parties APIs to embed int the MT4 indicators. I did that through C++ native and C#/F# .NET based DLLs.

Languages

C++, C#, Assembly, Visual Basic for Applications (VBA), SQL, Active Server Pages (ASP), Go, F#, JavaScript, HTML, XML, Pascal, BASIC, Visual Basic, Java, PHP, Python, Erlang, Elixir, Elm, CSS, Lisp, Bash, Scala, WASM

Frameworks

Blazor, ASP.NET, ASP.NET MVC, Unity Pro, .NET, Razor, ASP.NET Core, Realtime, .NET Core, Windows Presentation Foundation (WPF), Angular, Windows PowerShell

Libraries/APIs

Web API, Win32 API, ODBC, Microsoft Foundation Class (MFC) Library, Sockets, Microsoft Foundation Classes (MFC), Standard Template Library (STL), jQuery, SignalR, Node.js

Tools

TwinCAT PLC, Vijeo Citect, Visual Studio, NinjaTrader, WinCC Open Architecture, Microsoft Power BI, LabVIEW, LabWindows/CVI, Microsoft Access, Windows Driver Kit (WDK), Eclipse IDE, RabbitMQ, VirtualBox, VMware

Paradigms

Object-oriented Programming (OOP), Functional Programming, Agile Software Development, Microservices

Platforms

Windows, MetaTrader, MS-DOS, Win32, Amazon Web Services (AWS), Linux, Unix, Azure, AWS Cloud Computing Services, Intel, Visual Studio Code (VS Code), Docker

Other

Process Control, Firmware, IEC 61131, SIMATIC STEP 7, Modbus Protocol, OSIsoft PI, RS-232, RS485, OPC Data Access, CODESYS, Microcontroller Programming, PLC, SCADA, Industrial Automation, Software Development, Training & Training Content Development, SIMATIC, Simatic S5, ABB Distributed Control Systems, Ampla Express, Ethernet, TCP/IP, Training, COM, DCOM, Motion Control, SOLID Principles, Software, Windows Communication Foundation (WCF), Rockwell Automation, OPC UA, Cloud, Device Drivers, OLE, MSMQ, Machine Learning, Artificial Intelligence (AI), Dapr, APIs

Storage

JSON, SQL Server 2016, Microsoft SQL Server, IBM Db2, OLTP, MySQL, PostgreSQL, InfluxDB

1985 - 1990

Master's Degree in Electronic Engineering

Padua University - Padova, Italy

1980 - 1985

High School Degree in Science

Liceo Scientifico Leonardo da Vinci - Traviso, Italy

AUGUST 2015 - PRESENT

IELTS

IELTS

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