Hi there! I'm Bernardo

I'm a software developer living in Lisbon, working remotely with the awesome team behind eBench.

Full stack web Engineer, developing and maintaining web apps (mostly Rails) since 2011, both as a freelancer and on site.

I try to make code simple, modular and bullet prof™, relying on 'singe responsibility principle'​ and 'test driven development'​.

On a working day, I'm running vim and pry inside of tmux for a fast feedback loop. Develop in feature branches and commit often.

Lately, I've been doing a lot of frontend development, mainly on Angular and Angular2.

On fancy occasions, people call me an engineer since I've got a MSc. Degree in Telecommunications Engineering. My thesis was about topic detection on social networks. It used self organizing maps, a kind of neural network algorithm.

Building software is hard, but enjoyable when:

  • Respect single responsibility principle
  • Write modular code
  • Value composition over inheritance
  • Write tests first (TDD)
  • Automate repetitive tasks
  • Document through testing

Portfolio

I've been writing bugs code since 2007 as a freelancer, consultant or by curiosity. Here is a compact list of my most relevant work:

eBench (2015-Current)

Moved frontend data processing to webworkers leaving the js main thread free to capture user input.

Implemented a multi-lingual click bait detector, that could easily be extended by non technical team members by providing YAML examples of what should be triggered as click bait.

Added front and backend spec build flow that are automatically run by the CI.

Finra (1 Month/2015)

Conversion of PSDs to static html,js and css files. On this project we used Middleman to build static assets. Bootstrap and jQuery for styling and DOM manipulation.

The final delivery worked flawlessly on two different breakpoints, for mobile and desktop. Check the website live here

Avon, Beauty for a Purpose (1 Month/2015)

Conversion of PSDs to static html,js and css files. Very similar to Finra project but with an additional tablet break point.

The website can be found here.

Biztroo (3 months/2015)

Biztroo is a document organizer SAS. We built their back end on Ruby on Rails and a companion app on Apache Cordova.

The apache cordova app was built alongside the guidelines from this awesome workshop by Christophe Coenraets.

Buddy for Sports (1 month/2014)

Buddy for Sports is a mobile and web app built on top of Ruby on Rails delivered through a cordova project. I did mostly maintenance and a couple of bug fixes here.

EDP Kiosk (1 month/2014)

A simple Rails app used to collect customer info on an outdoor touch screen. It had a js onscreen keyboard, and sent dynamic image emails in order to be pixel perfect on all email clients by client demand.

Umcoche (2013)

Umcoche is a portuguese ride sharing SAS. It was my first Rails app that went into production and even thought I've left the team shortly after we went into production, the code is still live without any errors.

The app used capistrano for deployment, nginx with unicorn pool for server and postgres as the database.

SiPS (2013)

My first paid gig. A custom CMS that integrated with the company database.

On this project I used Laravel as the back end mvc framework, Foundation as the front-end framework and Hight Charts for chart generation.

The final product can be found here.

Volunteering and Public Speaking

I've been helping out student groups and other organizations by teaching a wide variety of tech realted subjects:

Rails Girls 2014

During the year 2014, I had the awesome opportunity to be a coach at Rails Girls Lisbon.

Know Your Web: HTML and CSS workshop

Know your web was top down approach to teach engineering students how the web works.

We started by explaining how the browser parses HTML, how we can add styles through CSS, how to serve these files through an HTTP server and finally how to make web page dynamic with Javascript.

Workshop files can be found here.

Photoshop Workshops

Before turning my focus to web development, I had the opportunity to teach Photoshop workshops.