Coder Social home page Coder Social logo

Jonathan H. R. Lopes

Software developer with 14 years of software development experience and 8 years of professional experience (2 years freelance and 6 years full-time).

πŸ”­ Experience

Professional

I'm currently working at Audibene/Hear.com with:

  • β˜• Java
  • 🐍 Python
  • πŸ“ JavaScript / TypeScript

Using the following technologies:

  • 🌱 Spring Boot
  • πŸ“— PostgreSQL
  • βœ‰οΈ Pulsar
  • πŸ’Ύ Redis
  • πŸ‘€ New Relic and Open Telemetry
  • βš›οΈ ReactJS
  • ⛰️ Terraform
  • 🌲 AWS
  • πŸ“¦ Docker
  • πŸ—οΈ Gradle / Maven
  • 🏭 Jenkins
  • πŸ• Git
  • πŸ§ͺ JUnit and Mockito

Previously I worked at TC doing:

Microservices in

  • πŸ‡¬ Go

Using the following technologies:

  • 🌱 Go Echo
  • πŸ” ElasticSearch
  • ☘️ MongoDB
  • πŸ“— Google SQL and BigQuery
  • πŸͺ„ Goroutines and Channels
  • βœ‰οΈ NATS
  • πŸ’Ύ Redis
  • πŸ“¦ Docker
  • πŸ—οΈ Makefile
  • 🏭 Jenkins
  • πŸ• Git

And at Meza as a Head of Technology with:

  • β˜• Java
  • πŸ‡° Kotlin

Using the following technologies:

  • 🌱 Spring Boot
  • πŸ” ElasticSearch
  • πŸ“— Postgres
  • πŸͺ„ Reactive Stack and Coroutines
  • πŸ’Ύ Redis
  • πŸ“¦ Docker
  • πŸ—οΈ Gradle
  • 🏭 Jenkins and GitHub Actions
  • πŸ• Git

I was responsible for the major design decisions on customer projects, as well for improving and implementing Scalability, Reliability and Traceability in their projects, as well as significant performance improvements. I was able to reduce their most important process from a total of 6 hours to just 30 minutes, with recovering capabilities and parallel computing.


And at Looqbox, here I was responsible for:

  • πŸ› οΈ Maintain
  • πŸ’» Develop
  • πŸ“ Architect

Microservices in

  • β˜• Java
  • πŸ‡° Kotlin

Using the following technologies:

  • 🌱 Spring Boot and Ktor
  • πŸ” ElasticSearch
  • ☘️ MongoDB
  • πŸ“— MySQL and BigQuery
  • πŸͺ„ Reactive Stack and Coroutines
  • πŸ”‘ OAuth2, SAML and LDAP Auth
  • πŸ•ΈοΈ Spring Boot Gateway (and Zuul)
  • βœ‰οΈ RabbitMQ
  • πŸ’Ύ Redis
  • πŸ“‘ Inter-Process Communication (IPC): Java, Python and R communication
  • πŸ“¦ Docker
  • πŸ—οΈ Gradle
  • 🏭 Jenkins
  • πŸ• Git
  • πŸ§ͺ JUnit and Mockito

I've also worked with freelance projects using Delphi, Pawn, PHP and Java.

Personal Projects 🧍

🌱 Programming Languages I know (ordered by years of continuously using and studying it)

I understand the important concepts behind different programming languages, from pure functional to multiparadigm ones. I'm very comfortable to work with any language, even those I've never touched.

Programming languages are just tools, you chose what best fits your needs, and you should never be afraid of using a different tool to get the work done.

  • Java (10 years)
  • Kotlin (8 years)
  • Rust (6 years)
  • Javascript, Lua (4 years)
  • Scala, Groovy (3 years)
  • Golang, Python (2 years)
  • Kotlin/Native, Pawn, Golo, Gosu, Ceylon (1 year)
  • PHP, Delphi, Visual Basic, C#, C/C++, Perl (< 1 year)
  • Nim, Clojure, Haskell (some months to get interesting concepts)

πŸͺ› Main Frameworks, Tools, Databases and SOs

Frameworks

  • Spring
  • Ktor
  • Coroutines
  • Micrometer
  • RxJava1/2, Reactive Core
  • JUnit, Mockito and Kotest
  • ByteBuddy

Tools/Languages

  • Java, Kotlin and Rust
  • VisualVM/JConsole
  • Docker
  • Git, Pijul
  • Gradle, Maven, Make
  • Neovim
  • IntelliJ IDEA
  • JetBrains Space and TeamCity
  • Grafana

Databases

  • SQL: Postgresql, MySQL
  • NoSQL: MongoDB, Redis, ElasticSearch
  • NoSQL: InfluxDB, Cassandra, SurrealDB
  • Hybrid: BigQuery

Operational Systems

  • Linux (Debian-based, RPM-based, and independent ones)
  • Windows
  • Windows Server
  • macOS
  • FreeBSD

🧰 Frameworks and Concepts I know (apart from the ones that I use on my job)

  • Java EE (now Jakarta EE)
  • Dependency Injection (Guice, Koin)
  • Collections (Google Guava and Fastutil)
  • Serialization (Jackson/Gson/Kotlinx Serialization)
  • Circuit Breaker (Resilience4J)
  • Message Broker (Kafka and RabbitMQ)
  • Event Driven Development (EventSys)
  • Concurrent, Async and Parallel Programming (Java 8 Streams, CompletableFuture, Thread Pool, Coroutines, Event Loop/Reactive Stack)
  • Functional Programming (Java 8 Lambda, Scala, Kotlin and Haskell)
  • Immutability (Immutable Data Structures)
  • High Availability (Netflix Stack and Spring Cloud Stack)
  • Serverless (Ktor and Spring)
  • Sampling, Profiling and Monitoring (VisualVM, Micrometer, InfluxDB, Grafana and Prometheus)
  • Deadlock Analysis using Thread Dump
  • Memory Leak Analysis using VisualVM
  • Performance improvement (find the problem, calculate the time complexity, architect a solution and apply the new algorithm with a better time complexity)
  • Software Planning and Architecture

πŸ“« How to reach me

πŸ“± Social Media

⚑ Fun Fact

I started developing software in 2010, when I was only 10 years old and had no internet connection. First I learned Lua and was amazed with what I did with it and what I could do, but it would be hard without access to the internet. So I started fixing the computers of my friends and neighbours to get some money, and with that I went to a lan house to research more about programming and download the software and documentation that I needed.

Interestingly, that was also how I did my first β€œjob”, I used mobile GSM internet to communicate with my customer, and went to a CybercafΓ© to send them the packages and test it out.

Being always curious led me to Linux in 2014, then to FreeBSD a couple of years after.

My love is not only for the code, but for the technology, so I keep learning anything that interests me in this field. Which includes learning about Hardware Architecture, ISAs, Operating Systems (the underlying implementation), Reverse Engineering (which is how I learned to create my own compiler), and so on.

The most challenging project was creating my own JVM compiler, which translates Concrete Trees into JVM Bytecode. This was the most challenging project I ever worked in my life, I learned about Stack, Heap, Garbage Collection, JIT, a bunch of JVM Internal things, such as Lookup Switch, Table Switch, Stack VM (and consequently, Register VMs). One of the benefits of getting so much knowledge about the JVM (beyond the Java language), is knowing how to analyse and optimise Java Applications, as I not only know what is an inefficient solution, but I also know what is inefficient for the JVM.

This also motivated me to start writing my own Programming Language and learning more about Parsers and compilers, especially the LLVM.

Jonathan's Projects

autoadapter icon autoadapter

AutoAdapter is a WIP project that aims to auto generate adapter classes based on common specifications and strategies

bsdiff-rs icon bsdiff-rs

Binary diffing algorithm implemented in Rust

codelang icon codelang

An example of compiler built on top of CodeAPI

compileapt icon compileapt

Hackly pre-compile source codes during Annotation Processing for an Abstract Manipulation

config icon config

Mirror of https://gitlab.com/mksrew/Config

controlflowhelper icon controlflowhelper

Kotlin port of toby1984's controlflow to be used in CodeAPI-BytecodeReader.

copie icon copie

Copies file from or to paths specified in environment variables and command-line.

difftastic icon difftastic

a structural diff that understands syntax πŸŸ₯🟩

dokka-doc-io icon dokka-doc-io

Extension functions for Kotlin Dokka to link with jitpack.io and javadoc.io

fd icon fd

A simple, fast and user-friendly alternative to 'find'

feather icon feather

A Minecraft server implementation in Rust

guihelper icon guihelper

First generation of GUIHelper, see github.com/ProjectSandstone/GUIHelper2

heventos icon heventos

Plugin para servidores de minecraft que cria eventos totalmente automΓ‘ticos.

ielixir icon ielixir

Jupyter's kernel for Elixir programming language

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.