About me

I'm Miguel, a Software Engineer from London.

This is my personal blog where I share my views about software development and the tech industry. All the opinions expressed here are my own.

Follow me on Twitter, have a look at my Github Projects or check my possibly outdated LinkedIn Profile.

Continuous Delivery lessons for Machine Learning projects

This article was originally posted in Lifebit Blog.

Continuous Delivery (CD) is the practice of getting changes in a codebase into the hands of our users in a frequent and predictable way. Where CD is implemented, developers push their code as frequently as possible and software is built, tested, and released with great speed and frequency.


The benefits of implementing a CD system in your development infrastructure are well demonstrated. I’ll just highlight what, to me are the most

Keep reading

The Shortest Programmer Handbook

A great Engineering Culture is critical to the success of a tech business.

While I think a company's Engineering Culture is fostered by our daily actions and behaviour rather than following a bunch of written rules, at Product ML I felt there were a few principles we all breathed, and were worth sharing.

And there The Shortest Programmer Handbook was written:

Be a good citizen

  • Make sure you leave the codebase in a better state than you found it -

Keep reading

Automating Releases with Github, Travis and NPM

For some time I've been running into issues creating releases of my NPM packages. The main problem was in the manual steps involving package versioning. In this post I propose a simple method to automate the release of a package.

The big picture

The main problem was caused by coupling versioning with functionality. In the past I used to update version in package.json when new functionality was added as part of a pull request. Shortly afterwards, when Travis finished

Keep reading

Bitbucket Runner: execute Bitbucket Pipelines locally

I've been working with Bitbucket and Bitbucket Pipelines the last few weeks, and very soon started missing a tool to test and debug my builds, something similar to Jet for Codeship or CircleCI CLI. I ended up writing my own set of scripts, which I've cleaned up and published in Github and NPM.


Install bbrun with npm:

$ npm install -g bbrun


bbrun can execute any step defined in your bitbucket-pipelines.yml template:

    - step:
          name: hello

Keep reading

Slides : How Computers Compute

I recently used this deck in an Industrial Engineering meeting in London. I didn’t have much time to prepare a brand new presentation, so I recycled the topic from a Lightning Talk I gave a few weeks ago at Plumbee.

The funny thing is how I managed to turn a 10’ presentation into a full fledge, 45 minutes talk followed by Q&A. It went all quite well. Storytelling is unquestionably the best style to do presentations, particularly

Keep reading