Introduction

Last udpate / commit: 2023-02-07 06:50:59 -0300 / 7e12379
PDF: https://paulojeronimo.com/docs-as-code-sample/README.pdf

Paulo Jerônimo's notes to the recruiter:

The short answer to the questions is in bold or red in the first line of the response. But please, read the long answer because I dedicated much time to write it.

Also, OBSERVE THE LINKS I provided below in all the answers because many of them are linked to my CV or website (where I aggregate all my information).

Beyond these answers, please REVISIT MY CVs because, right now, I’m updating them to clarify my skills and professional experiences.

My CVs are available in the following links:

https://paulojeronimo.com/cv/en/resume.html (printable, five (5) pages only).
https://paulojeronimo.com/cv/en/ (Forty (40) pages - better not print it to be economical ;-)).

I create documents like I code, and I like to build them this way. My website, CVs, and even this document were produced in what it’s called Docs-As-Code. My papers are versioned and stored in a private or public Git repository. Sometimes, like in the case of this document (README.adoc) and on my CVs, I use Conditional Preprocessor Directives to create different versions of the same document. I use my favorite text editor (Neovim) to write them in the AsciiDoc format.

In many cases, I also create a Bash script to automate some tasks related to building or sharing the document. You can download the source code of this document in this link:

Another version of this document is explicitly destined for a recruiter. I build and zip it directly from my local machine to send to the recruiter via email. This version is created by changing the values for the preconfigured file .env.sample in the root of the Git repository of this document.

1. How many years of experience do you have for each technology/tool listed below?

1.1. Java programming language

24 years (from 1998 to 2021). My first official Job programming Java was in 1998 when I worked for a company called Politec in Brasília, where I live with my wife since 1997.

In 2003 I left Brasil Telecom because I partnered with Helder da Rocha from Argo Navis to teach his Java and XML courses in various places in Brazil. In this way, I taught many of the training listed in the delivered courses section of my CV for several Brazilian companies. In March of 2007, we both started to work on a project for Sun Microsystems. This project and my partnership with Argo Navis lasted until the end of 2007. After that, as a consultant, I started teaching JBoss official courses (from RedHat). At the beginning of 2008, one customer of this course offered me a more stable position as an employee in a middleware specialist role. So, I accepted this job (Ambima).

Since then, I have gone through several other jobs where I developed my skills as a programmer, middleware specialist (JBoss, WebSphere, GlassFish, etc.) or software architect focusing on this language.

In 2011, I was so involved with GlassFish, Java EE, and IDEs for Java that Arun Gupta invited me to talk at the Oracle Technology Network Developer Day 2011. I found a citation for my talk by searching for it on Google. You can see many other posts related to this period of my life by accessing the blog Lado Servidor where some friends like Bruno Borges and Marcelo Ancelmo also wrote some articles for it.

I had the opportunity to participate in many Java events. One of my last presential events related to Java was JavaOne 2017 in San Francisco. That time was the launch of the Java 9 version. Even without being a speaker, I enjoyed the event because I saw some Java Rockstars friends with whom I learned a lot. Some of them worked with me on past projects. Here are some of the pictures I took at this JavaOne: 1Bruno Borges and Michael Nascimento, 2Rafael Benevides and Edson Yanaga, 3Bruno Souza and Venkat Subramanian, and 4books that I bought.

Before my last job with Java, I worked with it in many other opportunities, including one outside Brazil in 2018, working for Thales in Lisbon programming with the Spring stack. In 2020 I also build some Java programs using Quarkus.

My last job with Java was at Fóton Informática in 2021. But, I was working with ancient and outdated versions of Java in this position. So, I chose not to evolve in this work in August 2021 because I was frustrated with this situation. After this job, I decided to look for jobs more focused on other programming languages (like JavaScript, TypeScript, and Solidity) because this was more aligned with the necessary skills that I wanted to acquire.

I’ve been watching many videos related to the evolution of the Java language (from version 9 to 19) to update my knowledge about this language. But currently (and since 2021), I am more fluent in solving problems using the programming languages I mentioned.

1.2. Java Virtual Machine (Java VM), covering its strengths and weaknesses

14 years (from 2008 to 2021). I was responsible, in many cases, for investigating problems like memory leaks in JVM applications developed for customers in several areas. Working for RedHat, and even much before this, I used tools provided by the JVM to analyze memory consumption, performance, and so on.

In 2008, working for Ambima, I was responsible for doing many tasks in the production environment for the Central Bank of Brazil's critical applications (SELIC and Ofpub). Since that, and for some other customers (Algar, IBM, Mais2x), I have done the same task related to tuning and troubleshooting of JVM for some applications in these customers.

1.3. Blockchain technologies and what are they

6 years (from 2017 to Today). Since 2017, when I had some Bitcoins in my wallet, which I put to good use. I sold it at a good moment to buy an apartment for my daughter, who recently got married.

Since this year, I have been very involved with Blockchain doing severeal related things.

In 2017 I recorded in this repository a playlist of videos (in Brazilian Portuguese - see the link above) derived from the work done by Anders Brownworth.

That same year I developed my skills with Ethereum and got involved with its blockchain to understand more deeply how it worked.

I also aggregate many things in the link Ethereum on my website. I mentored about it in a Hackathon offered by a startup accelerator in Brasilia when I was already living in Lisbon. At that time (2018), I created my first video playlist about Ethereum.

In this year I also participated in a Hackathon promoted by Mercedes Benz in Lisbon (I was working for Thales at this time), and with an excellent team, I won a prize of 2000 euros for having placed third.

When I returned from Portugal to Brazil in 2019, I created a startup called Finisher.Tech. There I was focused on developing Web3 ideas and projects for the wellness area. Some of these were published in the links inside Finisher.Tech.

TODO

1.4. Distributed applications

21 years (from 2002 to Today) My specialization at the University of Brasília, in 2002, was on "Distributed Systems and Object Orientation". At that time I started to get involved a lot with middleware like Tomcat and JBoss.

Starting in 2014, when I spoke at a Red Hat event about Docker, I also started following projects that were emerging like OpenShift, an implementation of Kubernetes.

I also worked with the development of microservices using Cloud Foundry. In the Cloud Computing world, distributed systems are the law and some of my experiences with AWS, Azure and GCP have reinforced my view.

Again, check the links above. In there I give some details of my using of these technologies.

2. Do you have experience performing the following roles/activities? Please provide details

2.1. Application development

Yes, in the languages below and many years ago, at the beginning of my career as a programmer, in languages such as COBOL (in 1993), Pascal, C, and C++ (from 1993 to 2001).

Please, access these links: Bash, Groovy, Java, JavaScript, Kotlin, Python, Rust, Solidity, TypeScript.

In there I point you some of the projects that I have published (using those languages) on my GitHub account.

2.2. Developing simple, modular, testable, and high-quality code

I like the concept of Java 9 Modules and I presented it in a live video recorded for DFJUG, in 2017.

Also, I like the concept of ES6 modules and the way that NPM packages works. I found this out when I learned about creating my own packages in JavaScript.

I’m Test Infected since I met the JUnit creators (Kent Beck), in person, when he comes to the event Extreme Programming Brasil, in 2002 (see some links about this on my HOME page).

I delivered many courses about this Testing in Java (using TDD or BDD), for many companies in Brazil. So, I have experience in Unit Testing, Integration Testing, Acceptance Testing, and Performance Testing (with JMeter, ab, etc.).

2.3. Familiarity with security principles, cryptographic tools and libraries

TODO

2.4. Familiarity with test-driven software development processes and continuous integration tools and systems

Regarding to testing, I believe that I already give a response to this question.

My first contact with a continuous integration (CI) tool was when working for Ambima (in 2008). Today I have worked with projects running in a lot of CI tools like Jenkins, GitLab CI/CD, Travis CI, CircleCI, GitHub Actions, and AWS CodePipeline. I’m also capable to install and configure pipelines on many of this tools.

2.5. Developing libraries and platforms for use and deployment by application developers

For many companies that I worked for, since I my first jobs which Java, I had to create libraries and frameworks to facilitate the live of other developers. Unfortunately, I can’t prove this with code that I have published on my GitHub account because my work on this subject was did in private repositories of source code in that companies.

2.6. Systems programming experience including providing services to other software (e.g. operating systems, computational science applications, industrial automation, and SaaS applications)

My main areas of work in the development area were for large companies in the banking or telecommunications area. Due to the speed requirements necessary for the functionalities offered by applications in these areas, I got very involved with code optimization and the application’s relationship with the operating system’s resources.

I participated in the maintenance and production of B2B applications, with a lot of integration between systems through market standards.

My experience with Java middleware (Tomcat, JBoss, Keycloak, etc.) has also given me excellent insight into the lower-level features of this software and their integration with operating systems, networks, databases, etc.

3. Important questions from the Client. Please provide details

3.1. Are you a builder or a glue developer? A builder is someone who builds applications from scratch

TODO

3.2. Are you usually the brain in development?

TODO

3.3. Are you confident with your knowledge on Computer Science fundamentals?

TODO

TODO

5. What is your minimum desired hourly pay rate for this role?

The version of this document (public) does not gives you right to see this information!

Let’s schedule a chat if you think I can help you with your projects!

People mentioned in this document