Diogo Souza da Silva

Senior Software developer

I am a software developer with 13 years of experience in building product-focused systems for the web, working with the latest technoligies to solve problems in a maintanable and reliable way.

Table of contents

Links & information

Back to top

Work experience

Company Position Period
OLX Brasil Fullstack Developer Jul 2017 to Today
Skina App (OLX Brasil) Backend Developer Mar 2016 to Jul 2017
Rio de Janeiro Botanical Garden System architect Mar 2011 to Feb 2016
Intelie System analyst September 2010 to February 2011
Rio de Janeiro Botanical Garden Intern developer February 2010 to September 2010
PixelHouse Mobile developer (Android) May 2009 to January 2010
IBM Intern Sysadmin May 2008 to December 2008
BSI-Brazil Web developer February 2007 to September 2007
Remote Freelancer Since 2006 to today

Back to top

Publications

CNCFlora architecture

Presented at Colombia for Instute Humboldt for their adoption of CNCFlora's system.

October 2015

Back to top

Main projects

OLX.com.br - Paid Products

OLX-Brasil is brazil's greatest listing/classified marketplace.

As a second challenge on OLX, I assumed as senior developer of the paid products team, with a mission to improve overral team technical quality and decouple it's service from the legacy.

With a micro-services, we strived for over 90% code coverage on our continuous delivery pipeline.

Services are written primarily in Python (+flask), using Elasticsearch as storage and logging to EFK.

For the user interfaces, we deploy SPA using React+Mobx, leveraging Cypress for tests, and following an Atomic Design structure. For mobile (android+iOS), we use Webviews.

We deploy to a Nomad cluster we maintain, where we also run our observability stack on prometheus+grafana+EFK, all provisioned using terraform and with a service catalog on Consul.

OLX.com.br - Payments

OLX-Brasil is brazil's greatest listing/classified marketplace.

At the start of a new project to re-build the company's payment system, I was responsable as the first developer for archtecting, developing and maintenance of the new solution.

The architecture follows a micro-services, with a service per bussiness capability and a front API Gateway. Server registry, discovery and feature flags are done in Consul.

It also uses a Continuous delivery strategy, levaraging end-to-end testing to ensure quality between deployments.

It is written primarily in Python (+flask), using DynamoDB and Elasticsearch as storage and logging to ELK.

For asyncronous part, it's handled by lambdas, SNS+SQS pipeline.

Deployment is on Elasticbeanstalk provisioned using Terraform.

Skina APP APIs

Skina is a listing/classified marketplace that focus on mobile and geolocation positioning.

I am responsable for developments and maintenance of the backend APIs that support the mobile APP, the services are:

  • Product listing and integration with Parse
  • Chat platform
  • Push Notifications to devices
  • Payments and Shipping integration

The APIs are written in java using mysql and solr and deployed on AWS.

Rapid Risk Assessment Application

Biodiversity development tools

RRAPP is a powerful tool to perform automated risk assessment on the world biodiversitty. Currently it performs this on the 50k species of Brasil flora with circa 5M occurrences, daily.

It was featured as a Elastic user story for the Elastic Awards.

The micro-services are composed of these parts:

  • dwc-bot-es: a clojure bot and API to index occurrence data into ElasticSearch
  • rrapp-idx: clojure bot to unify the others and index on elasticsearch
  • rrapp-ui: clojure web interface to view the result

All done inside docker and deployed on Digital Ocean ScaleWay.

Visit the Biodiversity.cloud and the biodiversity development github organization.

Kbots - Telegram bots

These are a set of simple yet efficient Telegram bots.

  • Petals Around the Rose puzzle game
  • IsDown checks if given website is down
  • Codebar generates various barcodes
  • BarTab let groups easly control and split the tab

They are all written in Golang, deployed using Docker on ScaleWay ARM servers and using Caddy as proxy and HTTPS from Let's Encrypt

National Centre for Flora Conservation

For the latest five years I have been build the national platform for brazillian risk assessment of flora, CNCFlora.

The platform consists of a series of independent services that talk to each other, in a micro-services maner.

Techs included: CouchDB, ElasticSearch, Docker, Ruby, Clojure, PHP, and many others.

View the project source code organization.

Back to top

Technical skills

List of technologies that have great knowledge and production systems.

Front-end

Backend

Databases

Infrastructure/DevOps

Back to top

Other projects

Clojure OpenStreetMaps lib

A efficient library to read OSM dump files in clojure, writing GeoJSON and also capable of sending to webhooks. Includes a Command Line Iinterface.

Source code

Clojure, Geo

Clojure TopoJSON lib

A very efficient library to read and write TopoJSON in clojure, a much more compact topological format for geospatial data.

Source code

Clojure, Geo

Clojure GeoTIFF lib

An experimental efficient library in clojure to read data from GeoTIFF files.

Source code

Clojure, Geo

ESC: Evented Scripting Cluster

Experimental Evented Scripting Cluster with messaging, file sync, auto-discovery and lua scripts

Source code

Golang, Lua

BlogMe

A simple, AMP optimized and with sane defaults static site generator.

Source code

Golang, AMP, HMTL5

Leaflet Table and Landsat

A plugin for the leaflet map library to add lightweight data table from a layer, and another to include landsat/modis imagery where you can choose the date of the images.

Table and Landsat

HTML5, Javascript, Geo

HTML5 Games

Some experiments in limited HTML5 Javascript only games.

Space Invaders, the first one, made in few days.

HeroGame, a principle of RPG, for a competition that limited the game to 13kb javascript games, done in a week.

Lexia, a simple platformer.

HTML5, Javascript

PHP RestServer

An old PHP Rest framework that I built at the start of the movement, before many options were available.

It is heavily deployed and were even extended by other users.

Source code

PHP

JS Augmented Reality

Libraries to work with augmented reality in pure javascript, using canvas and webrtc.

AR Lib and Marker generator

HTML5, Javascript

Back to top

Contact

Email me at diogok@diogok.net

Back to top