I’m Matías, a PHP Jedi Master based in the UK. I’m an skilled Backend Web Developer but I can also do frontend. I also develop in Node JS. I’m currently learning a bit of Go.

I have experience in all sort of projects, of different sizes and of wide spectrum of domains: medical, multimedia, air traveling and e-commerce. I love well crafted code and working in complex domains. My style of development revolves around the ideas of Domain Driven Design. This means that when I develop software, I try to understand and breathe the business, in order to effectively model it into code. I mostly do web development, specially REST apis; but I’m decent enough in React (with hooks) and modern frontend development.

I’m a open source maintainer of some libraries, and I sponsor some projects and developers that have had an influence on me.

What is your skillset?

You can expect me to be able to:

  • Understand the inner workings of any PHP codebase, wether that is custom or with a framework.
  • Analyze a codebase technical debt and refactor to best practices and patterns.
  • Implement unit testing, mutation testing, type checking and linting on any PHP codebase.
  • Write easy to maintain, modular and easy to reason about code.
  • Automate code integration processes using Github Actions or Gitlab CI/CD.
  • Package PHP applications into docker images to be deployed in Kubernetes-like environments or PaaS providers like Heroku.
  • Be able to spin up any development stack with docker-compose.
  • Be able to work in or implement a Github workflow.
  • Work with different backing services like MySQL/PostgreSQL databases, message queues like SQS and Rabbit, key value stores like Redis, search engines like Elastic.
  • Explain in details how many of the backend protocols work, like HTTP, FTP or SSH.
  • Speak with Stakeholders to understand their problems and translate those into technical requirements.
  • Manage basic aspects of a Kubernetes infrastructure, like implement observability platforms, autoscaling or operators for high availability persistence needs.
  • Discuss different approaches to solving a problem and be able to explain their pros and cons.
  • Review code in a pull request flow and provide feedback to developers.
  • Teach and mentor other developers about all mentioned above.