Paulo da Silva

Professional History and Backgroung


Image

MPI: High Performance Computing

My graduation final project (and a prior project for scientific initiation) were based on improoving the performance of a scientific software with MPI. The software was aimed at solving calculations related to fusion reactor constrution and was written in Fortran 77 language (see my graduation final project for more details and results). That allows me to learn how to use clusters and the dynamics of subimiting and monitoring jobs. I run this project at a cluster at UESC laboratory (NBCGIB), and at UNICAMP (CENAPAD). Other projects gave me the oportunity (further in the future) to try MPICH2 on a C++ software with good results and use a cluster at PUC-Rio.


Image

OpenMP | Shared memory parallelism

I was able to apply the OpenMP library in a series of algorithms related to a engeneering software of finit elements (gHEM) . The optimization was done with the instruction parallelization approach and come out with good results.


Image

CORBA | Distributed systems

One of the most demanding projects of my system developer experience was the interconection of a multiplatform desktop client application with a network database with CORBA. The comunication was made through a middleware software called OpenBus acting as the "CORBA service handler", dealing with the user authentiction and the offer of the CORBA service. This integration is still running at production environment at Petrobras E&P.


Image

Jenkins | Continuous Integration

I introduced to my current devel team the concept and the tools to implement Continuous Integration, a much needed feature for agile delivery. Some training was given to the team, and, after all configuratioin was done in the Jenkins server, productivity increase was noticiable. The team already used Subversion as the SCM and, before Jenkins, they have to control dependencies manualy. The use of Git is the next step.


Image

GIT

Its needless to say the capabilities and advantages of Git over Svn and other SCM systems.


Image

Python

Python is a programming language that lets you work quickly and integrate systems more effectively.


Image

C++ | Desktop development

Most part of my carreer as software developer were inside C++ desktop development environment. Starting with the optimization and distribution of cientific software with MPICH, paralellization of engeneering software from the oil and gas industry using OpenMP and Pthreads. Now I'm most involved with standard C++ desktop development under the Visual Studio environment, with some linux development too.


Image

LUA

I have used lua for a variety of applications. The first was programming distributed applications during my master's degree with Lua COM. Other use was to load interface translations at a C++ project. Load images into an IUP interface was the last use I gave to Lua.


Image

IUP | Portable User Interface

IUP is a multi-platform toolkit for building graphical user interfaces. It offers a simple API in three basic languages: C, Lua and LED. IUP's purpose is to allow a program source code to be compiled in different systems without any modification.


Image

Linux development

Throughout my carrer Linux has been a must to suport my devel environment. I can use many of its tools to solve a problem that sometimes is very time cost on Windows platform. Bash, GCC, GDB, valgrind, SSH, Make, Vim are very good tools with options that totally lack on Windows basic dev environments. Only now Windows has come with a decent shell (PowerShell) but I think its kind of late.


Image

Java SE | Desktop development and distributed

I did most of my graduation period with Java language and its underlying tech wich includes: Java SE, Java EE, Swing, AWT, RMI (all under Eclipse IDE).


Image

Hibernate

It allows yout to persist a Java object by simply including some anotations in the code. Is a very powerful tool to persist data in a Object Oriented envirnment.


Image

Postgre SQL

PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.


Image

Fortran

My graduation final project was based on improoving the performance of a scientific software. The software was aimed at solving calculations related to fusion reactor constrution and was written in Fortran 77 and language (see my graduation final project for more details and results).