Flavio de Sousa, Developer in Leipzig, Saxony, Germany
Flavio is available for hire
Hire Flavio

Flavio de Sousa

Verified Expert  in Engineering

Software Developer

Leipzig, Saxony, Germany

Toptal member since July 30, 2012

Bio

Flavio is a top architect and programmer with a long track record of successfully delivering projects for companies ranging from Big Four consulting firms, large telecoms, and government agencies to small team startups. Flavio is eager to design and deliver efficient application architectures.

Portfolio

igniti GmbH
C++, C++11, Microsoft Foundation Classes (MFC)...
Deep Packet Inspection
CLion, API Design, REST APIs, Ubuntu, Bash, REST, JetBrains, JSON, C++17, C++14...
Moonlighting Software
Node.js, WebStorm, API Design, Windows, Microsoft Visual Studio, REST APIs...

Experience

  • Windows - 20 years
  • Linux - 20 years
  • C - 20 years
  • SQL - 15 years
  • C++ - 10 years
  • C# - 6 years
  • JavaScript - 5 years
  • Node.js - 4 years

Availability

Part-time

Preferred Environment

JetBrains, Sublime Text, Git, Zsh, Debian

The most amazing...

...thing I've built is a faster port of a minicomputer application to PC, for which I wrote a whole new PC Video BIOS to emulate TTY behavior—in one week.

Work Experience

Senior Software Developer

2021 - PRESENT
igniti GmbH
  • Designed and implemented rendering engine of medical topographical data into images.
  • Developed a state machine to control each step of treatment on a medical device.
  • Placed data overlays on real-time camera streaming data, showing treatment parameters.
Technologies: C++, C++11, Microsoft Foundation Classes (MFC), Microsoft Foundation Class (MFC) Library, Visual Studio, Windows 10, ReSharper, GDI(+), Windows GDI+, .NET, Desktop App Development, Windows App Development

Senior Software Engineer

2014 - 2021
Deep Packet Inspection
  • Designed high-performance (100Gbps) modules for packet handling using the Intel DPDK library.
  • Wrote resource-management libraries in C that enabled efficient usage of limited system resources like memory, networking, and processors.
  • Achieved nanosecond level optimizations by replacing commonly used libraries with my C language implementations of similar functionalities, such as memory pools and lockless shared data structures.
Technologies: CLion, API Design, REST APIs, Ubuntu, Bash, REST, JetBrains, JSON, C++17, C++14, C++11, Intel DPDK, Socket Programming, Concurrent Programming, Sublime Text 3, Data Structures, Object-oriented Programming (OOP), Jira, Python, Agile Software Development, Unix, Linux, C++, C, CMake

Developer

2009 - 2015
Moonlighting Software
  • Developed a car tracking suite including an Android smartphone paired with car trackers using Django, Python, Java, and Android SDK.
  • Built and managed a 6-programmer team for delivering long-pending projects for the Brazilian Superior Court using Java, Delphi, Flex, Ruby on Rails, and Perl.
  • Organized and managed a 2-programmer team for prototyping a public security suite using Java and Flex.
  • Released the first version of Brazilian Superior Work Court for an internal IT service control application using Java and JBoss Seam.
  • Created small websites using Python 2 and Django/Nginx.
  • Led a 3-programmer team building a Node.js (Express.js and Bookshelf.js) public car park application for medium-sized municipalities.
Technologies: Node.js, WebStorm, API Design, Windows, Microsoft Visual Studio, REST APIs, JavaScript, Debian Linux, Ubuntu, PostgreSQL, Express.js, Bash, Software Architecture, REST, Promise, JetBrains, JSON, C++11, Universal Windows Platform (UWP), Event-driven Programming, Socket Programming, Bookshelf.js, Concurrent Programming, Sublime Text 3, Bitbucket, HTML, Data Structures, Object-oriented Programming (OOP), Android SDK, Java, Perl, Django, CSS, GitHub, jQuery, Django ORM, Android, Linux, Desktop App Development, Windows App Development

Software Developer

2011 - 2012
OfficeDrop
  • Created the Windows client for a synchronization service in C#.
  • Built a REST client based on Microsoft Rest Toolkit.
  • Created an integration API to allow Nuance PaperPort to interact with the sync client using C#, C++, COM, and WCF.
  • Customized a sync application for Nuance with C# and WPF.
  • Ported the application to Mono to be used on macOS.
Technologies: API Design, Windows, Microsoft Visual Studio, REST APIs, JavaScript, Software Architecture, REST, Promise, Windows Presentation Foundation (WPF), JSON, C++11, Socket Programming, Concurrent Programming, Data Structures, Object-oriented Programming (OOP), Jira, SQLite, COM, C++, C#, GitHub, Django ORM, .NET, Desktop App Development, Windows App Development, Windows Forms (WinForms)

Senior Consultant

2002 - 2009
Accenture
  • Created a call center front end for a large telecom, using C# and Microsoft CCF 2009.
  • Sanitized an old telecom billing application that was crashing every day and enabled it to handle the data flow to achieve 100% code reliability using C, ValGrind, and Oracle OCI.
  • Enabled Sarbanes-Oxley SEC certification for a telecom. I applied sophisticated algorithms to reduce a sparse matrix of 20,000x5,000 user authorization database into a small set of 50 authorization profiles in Perl.
  • Created a QoS indication application for a big telecom handling tens of thousands of tickets daily and allowing for digging into each indication to find points of improvement using Jakarta EE, Struts, and Oracle PL and SQL.
  • Taught courses on Perl, coaching, and business process management.
Technologies: API Design, Windows, Microsoft Visual Studio, Ubuntu, PostgreSQL, Bash, Visual Basic .NET (VB.NET), Software Architecture, Rapid Application Development (RAD), Socket Programming, Enterprise Java Beans (EJB), Concurrent Programming, HTML, Data Structures, Object-oriented Programming (OOP), SQL, Perl, C, C#, Java, Visual Basic, Linux, .NET, Desktop App Development, Windows App Development, Windows Forms (WinForms)

Software Developer | Contractor

2001 - 2002
Brazilian Senate
  • Created a workflow framework for the HR department in Java, Swing, and Oracle.
  • Built a contracts management application for the acquisitions department in Java, JSP, and DB2.
Technologies: HTML, Data Structures, IBM Db2, Swing, Java, Eclipse IDE, Desktop App Development

Software Development Consultant

1999 - 2001
Brasil Telecom
  • Created a back end for an interconnection billing call data records (CDR) application that can handle 1.5 billion CDR a month using a hardware platform 10x cheaper than the market leader solution required. Built in C and Oracle Pro*C.
  • Trained the team for proper C, Pro*C programming processes using C, Oracle Pro*C, RCS, and GDB.
Technologies: Software Architecture, Rapid Application Development (RAD), HP-UX, Enterprise Java Beans (EJB), HTML, Data Structures, AIX, Oracle, C, MySQL, Eclipse IDE

Team Leader

1997 - 1999
ZTech
  • Designed and led the development of a sales force automation product based on a Windows CE front end and a Windows NT 4.0-based middleware in C++, MFC, and Windows CE SDK.
  • Created a second layer middleware to integrate our middleware with the customer SCO UNIX application in C and BSD sockets.
  • Built a highly efficient multi-threaded C++ library for BSD-socket communication that enabled non-stop transmission of data, saving on communication line costs that were time-based at that time.
Technologies: Windows, Microsoft Visual Studio, Software Architecture, Rapid Application Development (RAD), Socket Programming, Data Structures, Object-oriented Programming (OOP), Windows CE, Microsoft Foundation Class (MFC) Library, Microsoft Foundation Classes (MFC), Winsock API, KornShell, C++, C, Visual Basic, Windows Mobile, Windows Forms (WinForms)

A Multithreaded TCP Sockets Project

https://github.com/flaviodesousa/palmtrader
This project was written for Windows CE in 1998. Asynchronous calls weren't available yet, so I had to use multithreading. To maximize efficiency, I've created four threads so that reading, writing, sending, and receiving wouldn't block each other:
• one to collect data and queue it for shipment,
• one for shipping,
• one to receive and queue for storage,
• one to store in the WinCE datastore.

Although complex and hard to debug, this approach has proven to be very efficient.

A Simple Long Task Queue

Some processing tasks are not meant to run immediately on a desktop application, nor are they critical. Yet, they could make the application unresponsive. For example, creating threads for them could lead to managing thread pools and hanging the application when trying to exit. Therefore, I devised this queue processor that runs as an internal service, owning a single thread when waiting for tasks.

Clients for this service could take advantage of the new C# closures by changing a code like this:
while (longtime) {
do something...
}

Into:
LongTasksQueueProcessor.Instance.Enqueue(
() =>
{
while (longtime) {
do something...
}
, "long task description");

Emulating a Terminal

https://github.com/flaviodesousa/tv3000br_emulator
Before the Internet, I stumbled upon this problem: I had to port an application from a DataGeneral minicomputer to a PC. The application used many special features of the TTY terminals, which could change most of the code. Instead, I decided to make a Video BIOS that would mimic the terminal. This approach took only one week and saved months of changing and retesting the application.
2010 - 2011

Postgraduate Degree in Computer Engineering

Centro Universitário Unieuro - Brasilia, Brazil

2004 - 2007

Bachelor's Degree in Business

Faculdade AIEC - Associação Internacional de Educação Continuada - Brasilia, Brazil

Libraries/APIs

REST APIs, Bookshelf.js, Node.js, Windows Forms (WinForms), Winsock API, Microsoft Foundation Class (MFC) Library, ATL, Sockets, jQuery, Django ORM, GDI(+), Windows GDI+, Microsoft Foundation Classes (MFC)

Tools

CLion, WebStorm, Bitbucket, Sublime Text 3, Git, Microsoft Visual Studio, Zsh, Sublime Text, JetBrains, Intel DPDK, CMake, Eclipse IDE, GitHub, Jira, Visual Studio, ReSharper

Languages

SQL, C, C#, Perl, C++11, HTML, JavaScript, C++, Visual Basic, C++14, C++17, C#.NET, Assembly, Assembler x86, CSS, Bash, Java, Python, Visual Basic .NET (VB.NET), Rust

Paradigms

Object-oriented Programming (OOP), Windows App Development, REST, Promise, Concurrent Programming, Rapid Application Development (RAD), Desktop App Development, Socket Programming, Agile Software Development, Event-driven Programming

Platforms

Unix, Ubuntu, Linux, Windows, Debian Linux, Oracle, KornShell, Windows CE, Debian, Universal Windows Platform (UWP), Windows Server, AIX, Windows Mobile, Android, HP-UX

Frameworks

Express.js, .NET, Android SDK, Swing, Django, Windows Presentation Foundation (WPF)

Storage

PostgreSQL, SQLite, IBM Db2, MySQL, JSON

Other

Software Architecture, Data Structures, API Design, COM, Processing & Threading, Background Threading, Thread Scheduling, Device Drivers, Computer Engineering, Business, Enterprise Java Beans (EJB), Windows 10

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