Fabiano Cardoso, Developer in São Paulo - State of São Paulo, Brazil
Fabiano is available for hire
Hire Fabiano

Fabiano Cardoso

Verified Expert  in Engineering

C++ Developer

Location
São Paulo - State of São Paulo, Brazil
Toptal Member Since
February 28, 2019

Fabiano is an architect/senior software engineer and technical lead with solid academic knowledge and experience designing C, C++, and Python applications. Additionally, he is an expert in UNIX and Windows with communication protocol TCP/IP. Fabiano has participated in all phases of a software development cycle—collecting requirements, writing specifications and designs, coding, testing, and training. He performs very well in teams and often mentors those around him.

Portfolio

Toptal Clients
Debugging, Design Patterns, Data Structures, Algorithms, Microsoft Unit Tests...
GFI/Aurea
Debugging, Design Patterns, Networking, Data Structures, Algorithms, C++17...
Infosys
Algorithms, Background Threading, JSON, XML, Sockets, TCP/IP, OCMock, MacOS...

Experience

Availability

Full-time

Preferred Environment

Vi, Visual Studio, Boost, C, C++, Windows, Linux, Python

The most amazing...

...project I've done involved an OS that no one in the company had any knowledge about. I studied and coded a new app, and it became one of the best in the market.

Work Experience

C++ Senior Software Developer

2019 - PRESENT
Toptal Clients
  • Ported a database software on Debian Linux from Go to C. The new database is more stable and faster, loading 10 million records from disk in less time (by ten times), using less memory. Wrote and built the documentation, as well as most of the tests.
  • Coded a C++ library to access SQL engines and process queries. Wrote tests, pairing each production class with a test class, ensuring quality. Brought new ideas to the existing client framework (C++, Visual Studio, Clang, CMake, SQL, and MS tests).
  • Worked on a DNS server system used by one of the largest internet gaming companies in the world, fixing bugs and optimizing the code (C++, C, GCC, Make, and Linux).
  • Developed a GIS mapping software, fixing bugs and updating the code so it could use newer versions of third-party libraries (C++, GCC, Make, and Linux).
  • Coded Python programs to automate business data processing. The code reads Excel spreadsheets, processes and merges their data into output spreadsheets, and generates PDF bulletins.
  • Coded a Python program using Pandas to process Excel spreadsheets and JSON files for inventory processing, generating metrics, summaries, and product and item lists.
  • Wrote an AppSheet application to receive input about a company's IT base, calculate its quality metrics, and return an evaluation for possible improvements and investments.
Technologies: Debugging, Design Patterns, Data Structures, Algorithms, Microsoft Unit Tests, C++17, C++11, C++14, Multithreading, SQL, TCP/IP, Makefile, Make, Clang, GCC, GDB, Visual Studio, Windows, Linux, C++, Python, Python 3, Python API, ETL, Transmission Control Protocol (TCP), UDP, Linux Server Processes, Linux Servers, ASCII, UTF-8, Mathematics, Object-oriented Programming (OOP), Data Scraping, Debian Linux, Regular Expressions, ANSI SQL, Windows API, Microsoft Excel, Spreadsheets, Reports, Architecture, Software Architecture, CSV, CSS, XLSX File Processing, CSV File Processing, Google Sheets, Google AppSheet, Integrated Development Environments (IDE), Software Design Patterns, Best Practices, Optimization, Bazel, Pandas, Tkinter, Tk, Data Transformation, Writing & Editing, Software Development, Technical Writing, Content Writing, C++98, Conan, Refactoring, Databases, Bash, Desktop, GitHub, Distributed Systems, Concurrent Programming, Computer Networking, Software Engineering, Protobuf, Win32 API, Excel VBA

C++ Senior Software Engineer and Architect

2016 - 2019
GFI/Aurea
  • Designed and coded features and fixed issues in the product for various projects for a network security software that monitors traffic and categorizes domains in order to prevent malware installations and non-productive web surfing during work hours.
  • Worked on a product used by telecoms to optimize communication between the ISP and the customers. The project involved kernel code, TCP/IP network stack, C, C++, Linux, and low-level debugging (using GDB, Wireshark).
  • Led and trained a C++ test team, reviewed their C++ code, and taught classes on testing and unit testing.
  • Wrote several integration test suites and unit test suites for three different products.
  • Wrote and delivered the test framework for one of the products. These projects involved Visual Studio, GCC, Make, CppUnit, Google Test, and Google Mock.
  • Maintained the code of a sales and items configuration system.
  • Proposed and coded the improvements and fixed bugs in the software.
  • Improved the build time by parallelizing the build process.
  • Wrote PowerShell scripts to automate some tasks in software development and test.
Technologies: Debugging, Design Patterns, Networking, Data Structures, Algorithms, C++17, C++14, C++11, Multithreading, Google, Ant Design, Make, GCC, Visual Studio, Processing & Threading, CODE, Kernel, Linux, Win32, Sockets, TCP/IP, Standard Template Library (STL), C++, Python, Python API, Python 3, Google Test, Unit Testing, MySQL, Linux Server Processes, Linux Servers, Security, Monitoring, ASCII, UTF-8, Object-oriented Programming (OOP), CMake, Debian Linux, Regular Expressions, Telnet Protocol, ANSI SQL, Windows API, Microsoft Excel, Spreadsheets, Reports, Architecture, Software Architecture, CSV, CSS, Device Drivers, CSV File Processing, Google Sheets, Integrated Development Environments (IDE), Best Practices, Linux Kernel Drivers, Linux Kernel Programming, Linux Kernel, Writing & Editing, Software Development, Technical Writing, Content Writing, C++Builder, C++98, Conan, Refactoring, Databases, Bash, cURL Command Line Tool, Desktop, GitHub, Distributed Systems, Concurrent Programming, Computer Networking, Software Engineering, Protobuf, Win32 API, Windows App Development, Windows Desktop

Technology Lead

2014 - 2015
Infosys
  • Developed a distributed system for quality control in Apple factories. The system runs on Mac OS X and is written in Objective-C. The project was developed in three countries and all documentation and communication were done in English.
  • Mentored others on the team as I was one of the most experienced members.
  • Proposed several of the features of the system and also coded them.
  • Conducted technical interviews for recruiting and selected new members for the team.
Technologies: Algorithms, Background Threading, JSON, XML, Sockets, TCP/IP, OCMock, MacOS, Xcode, Objective-C, Standard Template Library (STL), C++, Linux Server Processes, Linux Servers, ASCII, UTF-8, Object-oriented Programming (OOP), Integrated Development Environments (IDE), Software Design Patterns, Best Practices, Writing & Editing, Software Development, Technical Writing, Content Writing, Software Engineering

Senior Software Developer

2013 - 2014
Tech Soft 3D
  • Built a C++ library to convert SketchUp files to the company's 3D graphics framework, which supports several platforms (iOS, Android, Linux, and Windows). My new version was much faster than the previous one (for some files over five times faster).
  • Found a number of bugs with the API of the 3D design program (during the coding work) and helped the partner company to diagnose and reproduce them.
  • Wrote unit tests for other parts of the framework and expanded some of the functionality.
Technologies: Debugging, Design Patterns, Data Structures, Algorithms, GDB, GCC, Make, Visual Studio, Linux, Standard Template Library (STL), C++, Linux Server Processes, Linux Servers, ASCII, Mathematics, Object-oriented Programming (OOP), Integrated Development Environments (IDE), Software Design Patterns, Best Practices, Optimization, Software Development, C++98, Refactoring, Software Engineering

Senior Software Developer

2012 - 2013
Riverbed
  • Worked on the development of Steelhead, a Riverbed solution to optimize WAN communication bandwidth and latency.
  • Wrote a module in C++ to optimize connections between the exchange server and Outlook, one of the most used and popular features of the product. This module handled DCE/RPC and MAPI messages.
  • Organized and hosted a recurrent series of talks about C++, OO design, and best practices. The series has been well received by the company’s developers and has helped to divulge new ideas and technologies.
  • Fixed bugs and wrote documentation to assist the program management and QA teams.
Technologies: Debugging, Data Structures, Design Patterns, Networking, Algorithms, Multithreading, Microsoft SQL Server, Boost, GDB, GCC, Make, MAPI, RPC, TCP/IP, Background Threading, Linux, Standard Template Library (STL), C++, Linux Server Processes, Linux Servers, Security, ASCII, Object-oriented Programming (OOP), Architecture, Software Architecture, Microsoft Access, Integrated Development Environments (IDE), Software Design Patterns, Best Practices, Optimization, Writing & Editing, Software Development, Technical Writing, Content Writing, C++98, Refactoring, Bash, Computer Networking, Software Engineering

Senior Software Developer

2011 - 2012
Vidder
  • Contributed to developing a security suite that used encryption, access control, and security features.
  • Worked in a team of two developers who wrote the Linux kernel module for IPv6 NAT, explicitly developing the subsystem that checked server availability.
  • Wrote some tools used for diagnosing and providing system information to the administrator.
  • Fixed several bugs and refactored parts of the system.
  • Interviewed several candidates for the QA and development teams.
  • Helped create the tests and questions to evaluate the candidates.
  • Taught classes that involved test-driven development and unit tests and introduced the junior members to best practices in C++ and object-oriented design.
Technologies: Debugging, Design Patterns, Data Structures, Networking, Algorithms, Agile, Scrum, Boost, Make, TCP/IP, Development, Background Threading, GDB, GCC, Visual Studio, Linux, Windows, Standard Template Library (STL), C++, Transmission Control Protocol (TCP), UDP, Cryptography, Linux Server Processes, Linux Servers, Security, ASCII, Object-oriented Programming (OOP), Linux Kernel, Kernel Programming, Linux Kernel Modules, Device Drivers, Integrated Development Environments (IDE), Software Design Patterns, Best Practices, Optimization, Linux Kernel Drivers, Linux Kernel Programming, Writing & Editing, Software Development, Technical Writing, Content Writing, Refactoring, Bash, Computer Networking, Software Engineering

Software Developer

2010 - 2010
Microsoft
  • Worked as a member of the AppV team—the application virtualization and streaming solution—specifically on the streaming component and transport modules.
  • Participated in the requirements analysis meeting and in the design and code reviews.
  • Wrote documents and designed specifications, including composing thousands of lines in C++ using COM, Windows APIs, and Visual Studio, creating dozens of tests for the code and bugs fixing.
Technologies: Data Structures, Debugging, Design Patterns, Networking, UML, HTTP, Background Threading, Processing & Threading, Visual Studio, COM, Windows, Standard Template Library (STL), C++, Unit Testing, Test-driven Development (TDD), ASCII, UTF-8, Object-oriented Programming (OOP), Regular Expressions, Windows API, Device Drivers, Microsoft Access, Integrated Development Environments (IDE), Software Design Patterns, Best Practices, Optimization, Software Development, C++98, Refactoring, Computer Networking, Software Engineering, Win32 API, Windows App Development, Windows Desktop

Senior Software Developer

2007 - 2010
SVAM
  • Worked on the architecture, coding, and tests for a low-latency news feed application for algorithmic trading. It delivers data to clients in milliseconds allowing faster-automated decisions. Skills: C++, Win32, Boost, TCP/IP, FTP, HTTP, and threads.
  • Ported libraries from Java to C++ for Windows and Linux—resulting in about 10,000 lines of C++ code. The libraries used threads, TCP/IP sockets, and serialization.
  • Optimized the libraries for performance and reorganized the API for simplicity.
  • Redesigned the built environment from a collection of dozens of Makefiles to a single Makefile. The result was simpler and build times were reduced by 35%.
  • Redesigned several parts of a monitoring system used to supervise and generate reports for Kodak industrial printers. The system ran on Unix, communicated with the equipment using SNMP. Skills: C, threads (Pthreads), and TCP/IP sockets.
  • Designed, wrote the specifications and diagrams, and coded an application to control a print quality system based on a camera system. The application runs on Unix. Skills: C, threads (Pthreads), TCP/IP, and telnet protocol.
  • Designed a tool in C++ to collect performance statistics from machines running Unix (AIX and Solaris) and display reports. It was used by managers to assess the capacity of numerous servers.
  • Wrote an application in C++ and JavaScript to centralize all server reports so users could use only one UI to see all information.
  • Upgraded an application used for a mailing system so it would comply with USPS guidelines. This software is responsible for controlling the entire conveyor line system on the factory floor. Skills: C++, Unix, threads (Pthread), and TCP/IP sockets.
Technologies: Debugging, Design Patterns, Networking, Data Structures, Algorithms, Parallel Programming, Multithreading, Low Latency, Qt Creator, Pthreads, Subversion (SVN), GDB, GCC, Domain-driven Design (DDD), Valgrind, Sockets, TCP/IP, Make, Shell Scripting, Shell, Linux, Solaris, AIX, Unix, Standard Template Library (STL), C, C++, Linux Server Processes, Linux Servers, Monitoring, ASCII, UTF-8, Algorithmic Trading, High-frequency Trading (HFT), Fintech, Trading Systems, Object-oriented Programming (OOP), Regular Expressions, Telnet Protocol, ANSI SQL, Windows API, Microsoft Excel, Spreadsheets, Reports, Architecture, Software Architecture, Integrated Development Environments (IDE), Software Design Patterns, Best Practices, Optimization, Writing & Editing, Software Development, Technical Writing, Content Writing, C++98, Refactoring, Databases, Bash, Desktop, Distributed Systems, Concurrent Programming, Computer Networking, Software Engineering, Win32 API, Windows App Development, Windows Desktop

Production Analyst

2005 - 2006
Procwork
  • Provided systems support and maintenance to Sprint and Nextel for front-end applications responsible for sales, cancellations, plans modifications, and other operations.
  • Analyzed and provided solutions to problems in production.
  • Supported the helpdesk, which handled most of the simple support issues, by having my team responsible for investigating matters that affected the entire company.
  • Analyzed Java code, shell scripts, database code, Oracle data tables, and OS logs.
  • Wrote SQL programs to assist investigations and shell scripts to automate tasks. The entire team used these programs.
Technologies: Solaris, Unix, Shell Scripting, Shell, XML, SQL, Oracle, Java, ASCII, Telnet Protocol, ANSI SQL, Microsoft Excel, Spreadsheets, Reports, Writing & Editing, Technical Writing, Content Writing, Databases, Bash, cURL Command Line Tool, Software Engineering

Software Developer (Contract)

2002 - 2005
Freelance Work
  • Contributed to the design of a system that manages service calls, customer requests, distribution of tasks to field workers, and other features.
  • Wrote the specifications and documents for features and tests and conducted interviews with the users and collected the business requirements.
  • Developed the software management and security system for the Brazilian Supreme Electoral Court. It was written for Windows in C++ and consisted of device drivers, services and applications.
  • Wrote a system to monitor file access in client workstations and report the usage to a central server. The system was written in C++ using Win32 and TCP/IP Sockets and was comprised of a Windows service that ran on the clients and an application on the server.
  • Built an application in Visual C++ and MFC to verify the digital signatures of programs.
  • Redesigned one of the main units of a system that enabled customers to be able to access their bank accounts at Brazilian Postal Service offices—increasing the performance. The system was written for AIX in C and C++ using Oasis IST software and Oracle.
Technologies: AIX, Unix, GCC, IBM Rational ClearCase, Sockets, Transmission Control Protocol (TCP), Microsoft Foundation Class (MFC) Library, Microsoft Foundation Classes (MFC), Win32, Microsoft Visual C++, C, C++, Monitoring, ASCII, Oracle PL/SQL, Object-oriented Programming (OOP), SQL, Desktop App Development, Qt, Graphical User Interface (GUI), User Interface (UI), Kernel Programming, Kernel, Regular Expressions, Telnet Protocol, ANSI SQL, Windows API, Microsoft Excel, Spreadsheets, Reports, Architecture, Software Architecture, Microsoft Access, Outlook, Windows XP, Software Design Patterns, Optimization, Software Development, Technical Writing, Content Writing, Writing & Editing, C++Builder, C++98, Refactoring, Databases, Bash, Desktop, Distributed Systems, Concurrent Programming, Abstract Syntax Trees (AST), Computer Networking, Software Engineering, Win32 API, Windows App Development, Windows Desktop

Software Developer

2001 - 2002
StarDigital
  • Delivered an application for tax planning for a beverage company. The application was written in Visual Basic as requested by the client.
  • Implemented clients' websites in HTML and JavaScript. The sites displayed information contents and enabled business to be conducted.
Technologies: JavaScript, HTML, Win32, Windows CE, Windows, Microsoft Visual C++, C, C++, ASCII, Desktop App Development, Graphical User Interface (GUI), User Interface (UI), Windows API, Windows XP, Software Engineering, Win32 API, Windows App Development, Windows Desktop

Software Developer

1999 - 2001
Potencia Informatica
  • Worked as the main developer in the build of an application in C++ and Win32; the client-server communication used RAS and Sockets.
  • Collected and analyzed business requirements.
  • Authored the specifications and documentation.
  • Wrote about 50,000 lines of code.
Technologies: Win32, Sockets, Transmission Control Protocol (TCP), Windows CE, Windows, Microsoft Visual C++, C, C++, ASCII, Desktop App Development, Graphical User Interface (GUI), User Interface (UI), Windows API, Architecture, Software Architecture, Windows XP, TAPI, Software Development, Desktop, Computer Networking, Software Engineering, Win32 API, Windows App Development, Windows Desktop

Maxxon Mobile Sales (via Potencia Informatica)

I developed the entire sales application for mobile devices.

Technologies: C++, C, Visual C++, Windows NT, Windows CE, RAS, TCP/IP Sockets, Win32

Languages

C++11, Python 3, C++, C, Python, SQL, C++98, Bash, Visual Basic, Objective-C, XML, Java, HTML, JavaScript, UML, C++14, C++17, CSS, Excel VBA

Frameworks

Google Test, Boost, CODE, Ant Design, Qt

Libraries/APIs

Linux API, Pthreads, Sockets, Windows API, Protobuf, Win32 API, POCO, POCO C++, Standard Template Library (STL), Microsoft Foundation Class (MFC) Library, Python API, TAPI, Pandas, Tk, Microsoft Foundation Classes (MFC)

Tools

Microsoft Visual C++, GCC, Microsoft Visual Studio, Makefile, Microsoft Excel, Spreadsheets, Microsoft Access, Google Sheets, Git, GDB, Valgrind, CMake, Bazel, C++Builder, cURL Command Line Tool, GitHub, Visual Studio, Xcode, Shell, Subversion (SVN), Qt Creator, IBM Rational ClearCase, Microsoft Unit Tests, Wireshark, Make, Conan

Paradigms

Unit Testing, Object-oriented Programming (OOP), Best Practices, Refactoring, Concurrent Programming, Windows App Development, Desktop App Development, Scrum, Agile, Parallel Programming, Design Patterns, ETL, Test-driven Development (TDD), REST

Platforms

Win32, Linux, Debian Linux, Windows XP, Google AppSheet, Software Design Patterns, Desktop, Windows Desktop, Kernel, Kernel Programming, Windows, MacOS, Unix, AIX, Solaris, Windows CE, Oracle

Other

Documentation, TCP/IP, Linux Server Processes, Linux Servers, ASCII, UTF-8, Regular Expressions, Telnet Protocol, Reports, Architecture, Software Architecture, CSV, CSV File Processing, Integrated Development Environments (IDE), Optimization, Writing & Editing, Software Development, Technical Writing, Content Writing, Distributed Systems, Abstract Syntax Trees (AST), Computer Networking, Software Engineering, Security, Monitoring, Algorithmic Trading, Fintech, Mathematics, Graphical User Interface (GUI), User Interface (UI), Data Transformation, Processing & Threading, Google, OCMock, Background Threading, RPC, MAPI, Development, Domain-driven Design (DDD), Transmission Control Protocol (TCP), HTTP, Clang, Low Latency, Multithreading, Algorithms, Data Structures, Debugging, Networking, Linux Kernel, Windows Kernel Drivers, COM, Shell Scripting, Vi, UDP, Cryptography, Data Scraping, Linux Kernel Modules, Device Drivers, Outlook, XLSX File Processing, Linux Kernel Drivers, Linux Kernel Programming, Tkinter

Storage

MySQL, Databases, Oracle PL/SQL, ANSI SQL, JSON, Microsoft SQL Server

Industry Expertise

High-frequency Trading (HFT), Trading Systems

1992 - 1995

Bachelor of Science (BSc) Degree in Computer Science

Federal University of Goias - Goiania, GO, Brazil

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