Leandro Proença

a.k.a leandronsp

Software developer since 2006, where I started my career in web development. Seasoned in a variety of programming languages and business domains, I could work on very demanding projects that required high performance and eye for detail.

My career in a nutshell

My first experience started building Java projects using Swing and, later, migrating them to web using Java Struts. The first 4 years I focused mainly in Java technologies such as: J2SE, VRaptor, Tomcat, Hibernate, JPA and Servlets.

In 2010 I learned Ruby and could build lots of Ruby and Rails projects since then. In this journey, I have maintained and migrated dozens of projects using Ruby, ranging versions from 1.8 to 3.0 nowadays, Rails 2 to 6 among other libraries and frameworks.

Not to mention that HTML, CSS and, of course, Javascript, always have been part of my web development "armory".

During this journey, I've learned other programming languages too: Python, Clojure and Elixir to name a few. Since 2018 I've been working and maintaining Elixir projects in production.

Other skills

  • Databases: experienced on various databases. MySQL, PostgreSQL, MongoDB, Redis.
  • Search engines: have been worked on search engines, maintaining and tuning search algorithms. Used Apache Lucene at first then, later, Solr and ElasticSearch.
  • Ops: Shell script, Ubuntu, Debian packaging, Docker containers, Kubernetes, AWS.

Github stats

Projects

I'll highlight some projects I have on my Github account.

Personal projects

Projects I did some contribution

My values

Here are some values I use to apply wherever I'm bound to collaborate:

Team trust

No need for endless discussions. Healthy discussions are great. Useless discussions are expensive and energy drainers.

Short cycles

Minimal code deployed is better than a huge piece of code stuck in my machine.

Test-driven development

I use it for organizing my thoughts, validate solution and guide the design.

Automation

I prefer writing some automation than repeating ten times the same process manually.

Simplicity

People talk too much about the meaning of simplicity but I take it very seriously. I'll search for a solution in my stack before looking outside.

Experimentation

I try to validate almost every solution I'm working on. I do spikes, proof of concepts or whatever experimentation method before commiting to an estimate.

eXtreme Programming

I'm very fond of this software development practice, which for me is all about culture. The truly agile culture.