SERGIO VIEIRA DA COSTA
E-mail:-Mobile: -
LinkedIn: Sergio Vieira da Costa
Summary
Ten years of experience in analysis, architecture and development of systems based on web and client-server.
Experienced in systems architecture definition in .NET, best practices of software development, design patterns, unit
testing. Experienced also in componentization, SOA, UML, OOP, distributed applications, multi-threading, Asp.Net
MVC, Web API, Rest, .Net Framework 2.0 and above. I am a passionate and enthusiast in software developing, unit
testing, code coverage I like being updated about new technologies by watching conference videos, reading blogs and
books. My background is mostly on Microsoft stack, so I’m comfortable with .Net Platform. I’m currently learning
Docker and .Net Core.
Keywords / Skill Set
C#, SOLID principles, Unit Testing, Multi-Threading, TDD, DDD, DAO, Repository, ASP, Vb.Net, Asp.Net MVC, Razor,
Asp.Net Web API, Asp.Net Web Forms, JavaScript, jQuery, Rest, WCF, Web Services, Windows Forms, Windows
Service, SQL Server, Oracle, MySql, NHibernate, Entity Framework, Linq To SQL, Redis, MongoDB, AngularJs,
Cordova, Xamarin, NodeJs, MEAN, Task-based Asynchronous, Singleton, Facade, Factory, Strategy, Builder, MVVM,
CosmosDB, Azure, Azure Functions, Cloud Computing, Acetive Record, Layer Super Type, Adapter, Eager Loading,
Lazy Loading, SCRUM, Kanban, TFS, VSTS, Visual Studio.
Education:
May 2017, Everest Language School – Dublin, Ireland
English Language
2016, “Faculdade de Informática e Administração Paulista” (FIAP) – Sao Paulo, Brazil
MBA Software Engineering - Graduated
2010, University “Universidade Nove de Julho” (Uninove), Sao Paulo (SP), Brazil
System Analysis and Development - Graduated
Certificates:
● Microsoft .Net Framework Programming in HTML5 with JavaScript and CSS3 (70-480) – Dublin 2018
●
●
●
●
Microsoft .Net Framework C# Programming (70-483) – Dublin 2018
Microsoft .Net Framework Developing ASP.NET MVC Web Application (70-486) – Dublin 2018
Microsoft .Net Framework Developing Windows Azure and Web Services (70-487) – Dublin 2018
Certified Ecommerce Professional by Ecommerce School - Sao Paulo - Brazil - Jul 2013
Employment History:
Jun 2017 - March 2019, Vitro Software, Dublin, Ireland
Software Engineer / DevOps
Vitro Software is a company focused on hospital systems. Today the majority of the customer is concentrated in
Sydney (Australia) and Dubai (United Arab Emirates). Vitro Software's mission is to generate Quality Software and be
a leader in the follow-up of Hospital Systems.
Vitro Apps
●
●
Key technologies: Typescript, WebPack, JavaScript, Azure.
Creating complex, high-quality applications using good JavaScript practices and object-oriented programming.
Use of advanced concepts in Javascript. Use of XMLHttpRequest for queries on the Server side, use of the
protocol oData for Web Services queries. Development of a rich user interface that allows physicians to create
●
●
●
●
drawings to analyse the results of the patients' exams. Integration with Hospital Equipment APIs through an
Integrator called Iguana that provides data in the HTL7 format.
Creation of reports through SQL queries for Business area.
Deploy the Vitro Web Application on Windows Server using VMs on Microsoft Azure.
Creation and documentation of business specification to be used as a use case.
Development of improvements in the Vitro platform, such as corrections, changes and releases to improve the
performance of the application.
Vitro Software
●
Key technologies: Javascript, TypeScript, WebPack, VSTS, Git Hub, Mocha, Shai, Sion, Web API,
Azure.
Creation of a new front-end architecture based on Typescript, using the good practices of modularization, Object
Orientation, Dependency Injection. Design Pattern MVVM was applied to separate the business code from the User
Interface. For automating the build of the Typescript files that need to be transpiled to Javascript, we used the
WebPack tool with the Babel compiler. After being compiled into a specific directory, the JS files can be automatically
published to the Server by an extension of the VSCode that will be described later. This architecture aims to improve
the performance of applications and bring more readability of the code using a strongly-typed language, such as
Typescript. To test the Applications, we made use of the NPM packages like Mocha, Shai, Sion, which are powerful
Test tools.
●
●
●
●
●
Responsible to creation new front-end Architecture
Code Reviewer.
Development Team Training Instructor at Vitro.
Elaboration mini courses for Development Team Development at Vitro.
Software Engineer
Vitro Blueprint Publish
●
●
Key technologies: NodeJs, RESTful, VSTS
Creation of the VSCode extensions to Provide means for App developers publish the file JavaScript of their
code to Vitro without using Blueprint. This is something that only be available in test or app development
environments of Vitro like the cloud. Publish is done for one app at a time. From VSCode the user is able to
publish their code without blueprint. This project changed the way how to deploy code in Vitro Platform helping
and improving the Work process. I used NodeJs to create this VSCode Extension. The NPM module called
fetch, was used to make asynchronous http requests.
Version Control with VSTS
● Key technologies: Git Hub, VSTS.
Creation and standardization of the versioning flow of the code using the VSTS tool for managing the branches and
Pull Requests. Implementation of Test Culture and Code Review.
Vitro Software Platform
●
●
Key technologies: C#, ASP.Net, SOLID, SignalR, Multi-thread, Entity Framework 6, VSTS, WCF, SQL
Server, Web API, Restful, SCRUM, TDD, Client-Server Architecture, Azure Cloud.
Vitro Software Back-end was wrote in C# using the better pracitics of Objects Oriented Programming such as
SOLID and other designer patterns. I worked to creating improvements and fixing bug in many parties of the
system such as:
DAO Layer which is used Entity Framework 6 and ADO.Net to connect and manipulate data on the Database.
Business Layer place where the Domain business rules are.
Service Layer where we used WCF and Restful to expose services to interoperate with other Hospital systems
and share data between them. In this integration layer other systems can send and receive information using
XML or Json format.
We also used OData to expose information for other systems through http protocol for searching and query.
Thus Vitro makes the integration with a lot differents systems in a Hospital which it can receive and share
information from Equipaments and straight away makes it available for doctors and Nursings.
We using ASP.Net Signalr to create a continuous connection between our back-end and front-end to display
the Patient result in real time.
We used the VSTS as Source Control to deploy our building on Azure Cloud using continuous integration. To
improve our performance quality,
we adhere to the practice of TDD and SCRUM, SOLID, process parallel using Task, Async and await.
In the SQL Server: Creating Stored procedures, reports, improvements the queries performance through index
and better practice in Database development.
Nov 2015 May 2017, PH3A, Sao Paulo, Brazil
Architect of Applications, Senior Developer
DataCob - Sistema Credit Recovery and Fraud Analysis
● Key technologies: C#, SOLID principles, Unit Testing, Asp.Net WebAPI, TCP/IP communication,
Multi-Threading, Entity Framework, WebSocket, Windows Services, WCF, ASP.Net MVC 5, NodeJs,
Redis, MongoDB, Asterisk, SQL Server, MS Test, HTML5, Task-based Asynchronous, Facade,
Strategy, Adapter, Layer Super Type, Javascript, JQuery, CSS3, NUnit.
●
●
●
●
●
●
●
●
●
The purpose of the system is to consolidate all credit information of the Bank's Clients and to perform a
detailed analysis of these clients to set the score. The process steps are performed in parallel using the
messaging system. Synchronization between threads and between other machines is done with redis
signalling. The application uses memory cache and Redis. Communication with credit systems is done
through the Web API Restfull. The end result of the processing is the generation of Excel reports, graphs,
generated by each client available in browsers, applications and tablets.
We Created Web API Restful and WCF services to communicate with the front-end, we created Asp.net Web
forms pages and user controls using JavaScript, jQuery and HTML5.
We Created database structure and domain models for negotiation rates and system configuration using DDD
concepts. I created the financial reports through Sql language and I used components written in jQuery for
show the data.
Improved the internal framework by creating component to support component registration by code on
Dependency Injection container instead of XML.
Created Builders and Factories components to make easy the setup of WCF self-host services, queue threads
and schedule tasks in the Windows services projects. For to this we used the Design Patters Facade,
Strategy, Adapter, Layer Super Type, MVC, TDD, IoC, DI, Task-based Asynchronous, Lazy Loading,
Repository e Unit of Work.
Created unit testing for almost 100% of the new code. Added a test case for all known business possibility.
Used Moq as a mock framework to simulate behaviour.
Working with the client for asking questions to choose the better way to do the tasks, alerting possible
problems about the client requests, doing meetings to understand new request or to show what was done.
Creation of Import/Export component based on metadata (attributes) and reflection to generate report and
import files from partners. The component imports and exports text files, CSV files and Excel files. The work is
done by receiving a list of objects with the right attributes containing the metadata information to generate the
target file.
In the telephony part, the system must manage the phone call queue and assign the calls to the users
automatically. The system performed the call and delivered it to the user's extension. The system record the
connection time and end status if it was successful or not. The application also provided operators who are
●
●
●
●
●
●
●
●
available to receive new calls.
The system uses the voice platform (Linux servers running Asterisk) through TCP communications to listening
to events for active calls and send commands for new connections. A part of the solution is the voice
applications (IVR) following standard VXML. Voice applications interact with Web APIs in Asp.Net to record
the user's operations.
Encourage use of TDD to cover maximum of business possibilities with unit tests.
Wrote the primaries components, such as TCP/IP connector with Asterisk Server running on IIS, the
CallPhone component (component that abstract the infrastructure to send a command to the platform to
generate a call) and the platform status control (component who controls p/ machine, how many channels are
available, in use, etc.)
Understood the Asterisk Server Extensions, commands and Application to be able to configure new business
applications. Also learned about Asterisk CLI commands, such as platform status, channels status per
technology (SIP, SS7), ManagerAPI commands (Asterisk TCP API).
Designed a database structure to save all calls data with maximum information about time and status. Created
complex queries to show the average time of the calls relating with calls status per region number of Brazil.
Was used Entity Framework as ORM and FluentApi as mapping tool.
Created an event based component that listen to Asterisk platform events and then send the events for the
components that wants to process that information.
Development and improvement of the DataCob billing system. The DataCob is the best billing system on the
market, used by the largest collection agencies of the Brazilian market. A customizable system, scalable and
adaptable to any form of Collection. The DataCob is also integrated with the largest telephony systems and
market dialers. The DataCob covers the entire billing process from initial receipt of contracts, negotiation,
agreement and issuance of ticket.
On PH3A I had the opportunity to cover my knowledge in the area of working with collection Development
integration with banking systems of various institutions through Web Services, Web API, development of
scheduling features of contracts, contracts drive history. Development of robots for automation of the
contract’s strategies distribution process between collection teams.
May 2011 Nov 2015 Mercadocar Mercantil Ltda, Sao Paulo, Brazil
Software Engineer / Senior Developer
S.I.M System Integrated Mercadocar (EPR)
●
●
●
●
●
●
●
●
Key technologies: C#, SOLID principles, Unit Testing, Asp.Net Web API, Asp.Net MVC, JavaScript,
jQuery, Multi-Threading, WCF, SQL Server, Entity Framework, Windows Service, MS Test, Angular,
Ionic, Cordova, Xamarin, Redis, NUnit.
The purpose of the system is to manage the business model of sales of automotive parts that involve all
processes of purchase, inventory and transportation of goods between the affiliates company. And meet the
sale of products over the internet.
Survey, analysis and detailing requirements with stakeholders, prototyping, database modelling, planning and
delivery tasks as SCRUM methodology.
Experience and knowledge gained in the areas of purchasing, Receiving and tax.
Improvement in purchasing modules, stock and tax solution S.I.M. (Integrated MercadoCar System) ERP used
by the company, contributing to the optimization of the receiving logistics, validation of incoming invoices and
integration with the 10 Protheus system from Microsiga.
Created a Web API to consult information about products, quantities and prices. The API should respond
different contents according the client and header variable. Was extended the default Asp.Net Web API
content negotiation to support this business rule. Our mobile telephony platform requires two response
formatters (VXML, a specific Javascript notation), because of that, was needed to create and add more
formatters to the Web API default content formatters.
Session. This has slowed the processing of information and the delivery of the request by IIS.
Created an intranet portal to be a front-end site of this application and for other as well. I did the design and
implementation using Asp.Net MVC. Created a customized access control, allowing external users to access
specifics functionalities.
●
●
●
Mentor junior and trainees in increasing overall skillset within programming logic, algorithm, and Web
development; Encouraged knowledge sharing of best coding practices, troubleshooting of issues and bugs.
Creation of Reports Managers for the Purchasing area helped the negotiators together with the suppliers in
the outlets the best products.
Creation of various functionalities and control of the company’s ERP system, such as creation of Product
Transport Modules, alerts of products with low inventory, improvements to SQL query performance.
Contingency System
●
●
●
●
●
Key technologies: C#, SOLID principles, Unit Testing, Multi-Threading, WCF, SQL Server, Entity
Framework, Windows Service, MS Test, Redis, NUnit.
The purpose of this system is to provide an off-line parts consultant. In case of loss of connection, the sales
department continues to sell the products in the physical store at the current price.
Created the component to perform the Data Cache and user sessions in Redis instead of using the IIS
Responsible for analysis and project management of contingency, which had as main objective to allow the
product query and offline budget generation if the server or network link was inconsistent. Wrote 80% of the
code using C#, SOLID principles, Entity Framerok 6 as ORM, and FluentApi for Mapping, DDD, Repository,
Multi-Threading, WCF services.
The system runs on a Windows TCP service on the machines of the sales team.
S.I.M Telephony System
●
●
●
●
●
●
●
Key technologies: C#, SOLID principles, Unit Testing, Multi-Threading, WCF, SQL Server, Entity
Framework, Windows Service, Asterisk, Redis, NUnit.
The purpose of the telephone system was to provide an integrated platform and consist of the business
system and the telephone system, control the flow of calls, identification of Inbound and outbound calls.
Development of teleshopping module having as main premise the realization of personalized service to the
client through the integration between S.I.M and PBX-IP. Created an event based component that listen to
Asterisk platform events and then send the events for the components that wants to process that information.
Automation Project between Telesales and URA increasing to 40% the number of Attendances.
25% increase in sales of parts by telephone through personalized service.
Member of the team for created solution architecture and implementation and also for design and code the
primaries application components.
Understood the Asterisk Server Extensions, commands and Application to be able to configure new business
applications. Also learned about Asterisk CLI commands, such as platform status, channels status per
technology (SIP, SS7), ManagerAPI commands (Asterisk TCP API).
S.I.M Mobile
●
●
●
●
●
Key technologies: C#, SOLID principles, Unit Testing, Asp.Net Web API, Asp.Net MVC, JavaScript,
WCF, SQL Server, Entity Framework, MS Test, Angular, Ionic, Cordova, Xamarin, Redis, NUnit.
Creation of an application on the Android platform for ordering parts and creating orders in the physical store.
Created the mobile application for presentation and consultation of automotive parts. The app was written in
Cordova Js and made available on tablets on the Android platform for sellers in the physical store. This helped
facilitate order processing in the physical store.
Created Api Restful Web Services to view product information. The data is available in XML or Json formats
depending on the content type defined in the request http header. We use the concept of asynchronous
transactions.
Using NUnity as a Dependency Injection engine.
S.I.M E-Commerce
●
●
●
Key technologies: C#, SOLID principles, Unit Testing, Asp.Net WebAPI, Asp.Net MVC, JavaScript,
jQuery, Multi-Threading, WCF, SQL Server, EntityFramework, Windows Service, MS Test, Redis, NUnit.
The purpose of this system is to sell automotive products and parts through the internet.
We create a business layer that is appropriate to meet the needs of different types of clients such as
browsers, internal systems and mobile devices. So we prefer to isolate the business layer to centralize the
●
●
●
business rules of the system and through services available to the other layers. We build these components
using SOLID's best practices and design patterns.
Created a windows service responsible for process online the orders in a multi-threaded environment. The
charge is through the Web API, to HTTP Get request with queryString parameters to charge the orders.
According confirmation of payment by credit card with a card operator status the online orders is process or
not. The communication between our system and the system of operator of the credit card is made through
WCF services through the protocols HTTPs.
Created the integration component with the anti-fraud system (Company F-Control). Communication with the
anti-fraud system is done through WCF services by the https protocol. Those responsible for anti-fraud
analysis provide a key to encrypt the data. At the time of sale, S.I.M requires a consultation with the anti-fraud
system. If there is no problem, the sale of the product goes ahead.
Created the product delivery component that integrates with the Enterprise Scheduling Delivery component of
the Enterprise Direclog through the Api Web through the https protocol. Customer address data, the system
calculates the delivery value and the days available for delivery of the product.
May2010 - May 2011 - Ka Solution Tecnologia em Software LTDA, Sao Paulo, Brazil
Systems Analyst / Developer
E-Commerce
● Key technologies: C#, SOLID principles, Asp.Net Web, Multi-Threading, SQL Server, Windows Service,
NHibernate.
●
Ka Solution Consulting I was allocated in client Kalunga and participated in the development and evolution of
E-commerce (internet sales System), creating order management modules, and invoiced sales for employees.
Optimize the sales process, we improved the user interface used W3C standardization, applied the most
current concepts of usability and navigability to best suit customers of Kalunga. Increase in the percentage of
conversions in online sales. We migrated the website of classic ASP to ASP.NET Web Forms, using the best
of object oriented programming, JavaScript and CSS. Development of management reports using the SQL
Transaction language of SQL Server.
Apr 2009 – May 2010: Sonda Procwork, São Paulo, Brazil
Systems Analyst / Developer
SPED - Financial System
●
Key technologies: C#, Oracle, Windows Forms.
●
By Sonda Procwork consulting I participated in the development and evolution of SPED fiscal system. I
worked on support team Software SPED fiscal incident, absorbing knowledge in the tax area. Participation in
meetings for strategies definition and development methodologies. Requirements elicitation, system
specification and document using UML. For application development we use the c # language and the Oracle
database..
Mar 2007 Feb 2009: Inspirit IT Solution for Management, Sao Paulo, Brazil
Developer
Intranet
●
Key technologies: Classic ASP, VbScript, Javascript, Asp.Net Web Forms, MySql.
●
The goal of this system is to create an internal communication platform to integrate all the commercial areas of
the company.
●
Database creation and modelling using the good practices of normalization and denormalization of database
with MySql. Creation Store Procedures, management of reports, queries and improvements in query
performance.
●
Creation of the graphical interface using HTML, Javascript, VbScript and Classic ASP.
Integrated System SI4
● Key technologies: VB.Net, Classic ASP, Asp.Net Web Forms, Sql Server.
●
The goal of the SI4 system is to create an integration platform between several different systems through
WCF services, Excel files, text files.
●
I worked in the Software Factory as system analyst programmer, participating in the meetings with clients and
performing the requirements elicitation, documentation in UML. Participated in the design of E-commerce
Company Cafe-Sache, developing customer register modules, order management, registration of products
and images, integration with PayPal and integration with the postal system. Attended the Central project of
internships for college students by developing a multilateral platform, FAAP where companies registered the
vacancies, students visualized the vacancies and applied for it, and teachers assessed students '
performance. Participated in the development of E-commerce Company PaperClick, where the main purpose
was the sale of prints/graphics service delivery of documents over the internet. Acting by Inspirit participated in
the intranet development project of Sociedade Esportiva Palmeiras.
References are available upon request.