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.
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.
- 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.
I'll highlight some projects I have on my Github account.
- leandronsp/morphine - a neural network written in Elixir
- leandronsp/fun - fun with programming languages
- leandronsp/yata - a simple ToDo web application, but on a journey of implementing it without frameworks. Just pure Ruby.
Projects I did some contribution
- rails/activeresource - REST objects for Rails applications
- emqx/emqtt - an MQTT client library written in Erlang
- turboladen/tailor - a static analysis tool written in Ruby
- senny/sablon - a document template processor for Word written in Ruby
Here are some values I use to apply wherever I'm bound to collaborate:
No need for endless discussions. Healthy discussions are great. Useless discussions are expensive and energy drainers.
Minimal code deployed is better than a huge piece of code stuck in my machine.
I use it for organizing my thoughts, validate solution and guide the design.
I prefer writing some automation than repeating ten times the same process manually.
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.
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.
I'm very fond of this software development practice, which for me is all about culture. The truly agile culture.