Scroll To View More
André Silva, Scala Developer in Porto, Portugal
André Silva

Scala Developer in Porto, Portugal

Member since November 9, 2016
For the past five years, André has been working for a startup that develops products for the online marketing and advertising industry. He mainly works as a Scala developer with a focus on back-end software, developing internet-facing and large scale distributed services.
André is now available for hire

Portfolio

Experience

  • Scala, 5 years
  • Akka, 5 years
  • Rust, 1 year
Porto, Portugal

Availability

Part-time

Preferred Environment

Emacs, OS X, Git

The most amazing...

...thing I've written is a Lisp compiler for an esoteric CPU and an assembler for another esoteric CPU in a weekend for the ICFPC 2014 competition.

Employment

  • Lead Software Engineer

    2011 - PRESENT
    ShiftForward
    • Developed a column-oriented serialization library to allow efficient data analysis of log data in Scala.
    • Deployed and managed auto-scalable services on AWS using Ruby scripts and Terraform to automate the operations.
    • Led the development of a big-data forecasting engine for online advertising campaigns that facilitated prediction of the performance and reach of a campaign by projecting the number of impressions and unique users targeted by the campaign given historical performance.
    • Contributed directly to hiring and growing an engineering team.
    • Worked on external projects, interacting directly with the client.
    • Created an API documentation tool that generated a professional documentation site given a Swagger API definition.
    • Developed an SPA with Ember.js used as a demo app for an API service.
    Technologies: Scala, Akka, Mesos, Marathon, AWS
  • Software Engineer Intern

    2011 - 2011
    PT Inovação (renamed to Altice Labs)
    • Created a framework in Ruby to benchmark distributed databases which facilitated benchmark workload definitions in a simple DSL and also provided cluster-specific tests like horizontal scalability and cluster rebalancing time (when a node leaves).
    • Researched the existing solutions for non-relational databases.
    • Developed design patterns for data modeling with non-relational databases which took advantage of database-specific features and allowed an easier migration from a relational database domain.
    • Developed several prototypes using non-relational databases which assessed their applicability to the problem domain of a telco.
    Technologies: Ruby, Cassandra, Riak, MongoDB, MySQL

Experience

  • AdForecaster (Development)
    http://www.adforecaster.com/

    A state-of-the-art forecasting engine that allows for prediction of the performance of multiple advertising campaigns (with arbitrary segments and targeting rules), in systems with billions of impressions, and simulation of alternative "what-if" scenarios in real-time. I started the development of this project and worked on a column-based log serialization library, a compiler for a small "rule" DSL, and a cluster for real-time distributed simulation of ad campaigns.

    Technologies used include Scala and Akka.

  • Data Management Platform (Development)

    A data management platform (DMP) is a centralized computing system for collecting, integrating, and managing large sets of structured and unstructured data from disparate sources. While working at ShiftForward, I developed a DMP as an outsourcing project for an external client. The system had strict performance requirements since it was required to deal with a high throughput (> 1000 req/s). Additionally, the system also provided a back-office application for management of the DMP.

    Technologies used include Scala, Akka, Play, and PostgreSQL.

  • Scala-pool (Development)
    https://github.com/andrebeat/scala-pool

    An open-source Scala library for object pooling with multiple implementations providing several features for different usage scenarios. I developed this project on my spare time mainly for my own use at my company.

  • Cask (Development)
    https://github.com/andrebeat/cask

    A fast key-value store written in Rust. The underlying storage system is a log-structured hash table which is inspired by Bitcask. I developed this open-source project on my spare time mainly to learn Rust and also about key-value store design.

Skills

  • Languages

    Scala, Rust, Python, SQL, Java, JavaScript, Ruby
  • Frameworks

    Akka, Ember.js, Marathon
  • Tools

    Emacs, Terraform, Mesos
  • Paradigms

    Microservices, Object-oriented Programming (OOP), Functional Programming, Concurrent Programming
  • Platforms

    Docker, Linux
  • Other

    Akka HTTP, Distributed Systems
  • Libraries/APIs

    React
  • Storage

    Cassandra, PostgreSQL

Education

  • Exchange program in Computer Science
    2011 - 2011
    Delft University of Technology - Netherlands
  • Master's degree in Computer Engineering
    2006 - 2011
    Faculty of Engineering of the University of Porto - Portugal
I really like this profile
Share it with others