Cezar A.

Cezar A.

Senior Software Developer with expertise in .NET stack on the Financial and Regulatory Areas

Maringá , Brazil

Experience: 8 Years

Cezar

Maringá , Brazil

Senior Software Developer with expertise in .NET stack on the Financial and Regulatory Areas

63360 USD / Year

  • Notice Period: 20 Days

8 Years

Now you can Instantly Chat with Cezar!

About Me

Senior Software Developer with over eight years of experience, mainly in the .NET stack and technologies (.NET, C#, SQL Server, ASP.NET MVC/WebAPI, Razor, WCF, Windows Forms, XAML, XML/XSD Parsing). Furthermore, I'm experienced with AngularJS...

Nowadays, I'm currently working with ReactJS, NodeJS and Express, using both ES6 and Typescript. My main interests are in Line-of-business apps integrations, through bespoke development and ETL pipelines using PowerBI and Hitachi Pentaho.

Show More

Skills

Portfolio Projects

BeanSpitter - A Simple, Stream-Oriented XML Parser for .NET

https://github.com/cezarlamann/beanspitter

Company

BeanSpitter - A Simple, Stream-Oriented XML Parser for .NET

Role

Backend Developer

Description

Beanspitter is a Simple, Stream-Oriented XML Parser for .NET

This XML Parsing Library aims to simplify parsing operations for files which:

  • Have an associated XML Schema Definition (XSD);
  • Have classes generated from its XSD file (from xsd.exe, for example);
  • You don't want to create the parsing code by hand, going through XElement, dealing with strings and etc., especially for complex XML Schemas.

What does this library offers:

  • It is built over regular XmlReader and System.Xml infrastructure, so no "out of the world" code.
  • It is Multi-Platform: net45 and netstandard2.0
  • Stream-oriented, Memory friendly (around 120 MB of Total Memory Consumption while running tests with over 4GB XML files with Visual Studio), asynchronous XML Validation and Parsing (using Stream and Task);
  • Schema Loading, XML Validation and Parsing methods with overloads for Byte Arrays, Files and Streams;
  • Parsing by type, with header type support (like those XML Files that have Envelope, Header and Payload schemas, e.g. ISO 20022 XML Messages - this library was initially made for these);
  • Async Event-raising for nodes read, errors occurred and when it finishes parsing and validating. Kind of SAX inspired, but it raises POCO-like objects;

Show More Show Less

Cwork/Employer Ponto Web

https://prd.pontofopag.com.br

Company

Cwork/Employer Ponto Web

Role

Full-Stack Developer

Description

The "Pontofopag" product from the current company called "Employer - Tudo de RH" is an HR/Timekeeping software. It was bought on its entirety from the company where I used to work, "Cwork Sistemas" after we ported it to the web. The project consisted of porting a desktop, single-user Windows Forms application to the internet as a SaaS, while keeping Business Rules consistent with the current desktop system.

My role in the project was to refactor the entire Business Logic Layer so it could be used both from the Desktop and the Web application while making it Multi-Tenant (Database-per-Tenant strategy, which was already adopted by the company's customers. I made the refactor in three months and then I started porting the current desktop application features to the web system, using ASP.NET MVC 4.

Show More Show Less

Aluno Online - Módulo Professor (Online Student - Teacher Module)

Company

Aluno Online - Módulo Professor (Online Student - Teacher Module)

Role

Full-Stack Developer

Description

This CRM/CMS project aimed at schools was originally made as a Silverlight client (Front-end) with a PHP API. Since Silverlight support would phase out on major web browsers by the end of 2015, and I had a good experience with AngularJS back then, I proposed that we ported the entire Silverlight client to AngularJS. The main idea was to keep the look-and-feel as close as possible to the existing Silverlight client. The Ribbon Menu was a key feature for the customers and a must-keep.

So, I started a proof-of-concept by using the following tools and frameworks: Yeoman/Generator Angular (AngularJS Scaffolding framework), MetroUI CSS Framework (for the Ribbon Menu) and Twitter Bootstrap 3. The POC was quickly accepted and since I was the only one with AngularJS background at the moment, I led the development team, providing AngularJS and Git mentorship to my teammates and also architected the app infrastructure.

I had to quickly learn PHP to turn the current API to be REST compliant while the customers were using it. I developed an in-house ORM/Query Builder because at the time, using Doctrine/Active Records wasn't an option. Once again, a massive refactoring effort while the system had to stay working in production.

The majority of the features were done in six months, with the first customer tests and feedback gathering starting at the third month of the project.

Show More Show Less

Media

Company

ETAS/Bosch Drive Recorder

Role

Backend Developer

Description

The ES820 Drive Recorder device is an embedded data collector and experiment calculator from ETAS/Bosch for the automotive industry. It consists of a stackable x86 computer with a connection to automotive CAN buses and other interfaces, and it is in use by major automakers, in Europe and Asia.

I boarded the project to develop maintenance tasks and new features. There was one problem: for each test suite we had to run, the device had to have its firmware flashed. It was an error-prone manual process, that could take almost two hours, that each developer had to perform at least three times a day. Then, the automation of this process was assigned to me, since it would involve Arduino programming, which I have experience as a hobbyist and PowerShell scripting.

I managed to automate the entire process, which took three weeks of development and tests. In this automation, I had to develop communication with a managed switch in PowerShell, integrate with .NET DLLs, the WCF web service that the embedded software had, and communicate with an Arduino Mega 2560 for switching relays on and off when needed (e.g. to restart the process).

This automation is still in use, after two years of deployment, helping the testing process of the whole team because now they can leave the test suites running overnight unattended.

Show More Show Less

Media

CRM Sistema de Retenção de Clientes - Qualicorp (Customer Retention System CRM - Qualicorp)

Company

CRM Sistema de Retenção de Clientes - Qualicorp (Customer Retention System CRM - Qualicorp)

Role

Full-Stack Developer

Description

Our customer (Qualicorp) needed a CRM-like app that could help their passive call-centre workers (the ones that receive calls from customers) with the task of retaining customers that originally called to cancel a Health Insurance package, by offering more affordable options.

They already had a public-facing landing page (attached image), made by a third-party developer which source we didn't have access, where anyone could check their offerings and they would like to have something similar, but with more complete customer information. So, I had to design everything from scratch and similarity with the existing application. It was a nine-month project that I architected and led another developer. Spoke directly with stakeholders, current infrastructure employees and established a good middle ground for the project to start.

This project was developed using ASP.NET MVC/WebAPI, AngularJS, Twitter Bootstrap, SQL Server 2014, Oracle Database 11g, T-SQL and PL/SQL.

 

Show More Show Less

MIFID/MIFIR Transaction Processor

Company

MIFID/MIFIR Transaction Processor

Role

Backend Developer

Description

In this project, I worked fully allocated at the Malta Financial Services Authority - MFSA, which is Malta's equivalent of the USA's Securities and Exchange Commission - SEC.

They had in place an in-house developed MIFID/MIFIR Processor, which is a system that would receive all Financial Transactions involving Stocks, Bonds and other Financial Instruments, that took place in Malta or referred any Maltese financial instrument inside the EU. Afterwards, all this information would be exchanged with the European Securities and Markets Authority - ESMA, in order to improve financial compliance and Anti-Money Laundering (AML) practices.

When I took the project, it was able to process around 5000 transactions per day. They were pressured to increase the number of processed transactions due to the increase of new Financial Entities opening businesses in the Country. Nevertheless, they needed to comply with a new XML Schema Definition released by ESMA by the end of 2018 (auth.016.001.01_ESMAUG_DATTRA_1.1.0 and auth.016.001.01_ESMAUG_Reporting_1.1.0).

First, I dealt with the new schema refactoring and implementation of new business and validation rules, so we would be on time when the deadline came. Then, I started a massive refactoring effort to improve the responsiveness of the system, lower memory consumption and increase the number of transactions processed. At the end of the effort, MFSA was able to process over 6000 transactions per minute, and over 13 million records of reference data provided by ESMA, once a week.

Show More Show Less