24/01/07/9df399ae-7fde-4645-b6dc-de1ebb915ab6_linkedin-photo-1394.linkedin-photo-1394
David Montesdeoca
24/01/07/9df399ae-7fde-4645-b6dc-de1ebb915ab6_linkedin-photo-1394.linkedin-photo-1394

David Montesdeoca

Software Developer

In Madrid, Spain

General information

Introduction

I am a software developer with over 10 years of experience building products for companies spanning from small startups to scaling unicorns. For the most part of my career I have worked as a full stack developer, with special focus on the backend side, developing products with clean, maintainable and testable code. I am used to taking full ownership of features and projects in agile teams from start to finish, from the conception of the idea to the deployment to production.

I am a very curious person who likes to constantly learn new technologies and tools. For the right project I am willing to work with any programming language.

I am particularly interested in mature agile projects developed using DDD and clean architectures (e.g. hexagonal architecture a.k.a. ports and adapters). I would love to be surrounded by people who know a lot more about those topics than I do and have the opportunity to learn new things every day.

I value very positively that the company contributes with the community, with open source projects, technical blog, talks, etc.

Last year, I created my own blog where I talk about stuff that I believe may be interesting to others or that would have been helpful for me to have come across earlier.

My best practices

I always try to write clean, readable, simple and maintainable code; applying design patterns and SOLID principles that I consider relevant in each case. I read as much as I can on those topics to strengthen my knowledge and I try to apply what I learn in both new and legacy code, whenever possible.

I strongly believe it is tremendously important to be consistent in everything we do as a team. Therefore, we must be committed to maintaining coding standards defining style guides, using linters, etc.

The way I see it, the purpose of DRY is not fully understood in our industry, as we usually end up with the wrong abstractions, causing more problems than solutions. And I think that is especially true for tests, where I consider WET (Write Everything Twice) is a better option, easier to understand and to modify if necessary.

The information that can be added to the description of a pull/merge request and a commit is too valuable to overlook. That's why I apply the best practices that have long been described on this post and include the references that helped me to find a certain solution.

Also I consider that doing pair programming can help to create better quality code.

Some of my references in the industry: Sandi Metz, Thoughtbot, Shopify, Martin Fowler, Janko Marohnić, Codely, Evil Martians, Kent C. Dodds, Kent Beck

My skills

Attention to detail
Continuous learning
Team player

Languages

Spanish
Native/Bilingual
English
Fluid

Technologies and tools

I master

  • AJAX
  • AWS
  • Babel
  • Bash
  • Capybara
  • CoffeeScript
  • CSS
  • Cucumber
  • DBeaver
  • Docker
  • DynamoDB
  • Elasticsearch
  • ETL
  • Git
  • Gitflow
  • Github
  • GitLab
  • Golang
  • Grafana
  • GraphQL
  • HTML
  • JavaScript
  • Jest
  • JSON
  • Kibana
  • Linux
  • MySQL
  • PHP
  • PostgreSQL
  • Python
  • React
  • Redis
  • Redux
  • Redux-Saga
  • REST
  • Ruby
  • Ruby on Rails
  • Sass
  • SQL
  • Ubuntu
  • WebSockets
  • YAML

I want to work with

  • AJAX
  • Ansible
  • API
  • AWS
  • Bash
  • Capybara
  • Cassandra
  • CSS
  • Cucumber
  • Cypress
  • DBeaver
  • Deno
  • Django
  • Docker
  • Elasticsearch
  • Elixir
  • Elm
  • Erlang
  • Ethereum
  • ETL
  • Event Store
  • Express
  • Git
  • Gitflow
  • Github
  • Github Actions
  • GitLab
  • Go
  • Golang
  • Grafana
  • GraphQL
  • HTML
  • Jamstack
  • Java
  • JavaScript
  • Jenkins
  • Jest
  • JSON
  • Kafka
  • Kibana
  • Kotlin
  • Kubernetes
  • Linux
  • Makefile
  • MariaDB
  • MongoDB
  • MySQL
  • nestJS
  • NextJS
  • Nginx
  • NodeJS
  • NoSQL
  • Nuxt.js
  • PHP
  • Playwright
  • PostGIS
  • PostgreSQL
  • Postman
  • Preact
  • Prometheus
  • Python
  • RabbitMQ
  • React
  • React Native
  • Redis
  • Redux
  • Redux-Saga
  • REST
  • Ruby
  • Ruby on Rails
  • Rust
  • SaaS
  • Sass
  • Scala
  • Serverless
  • Shellscript
  • SQL
  • Storybook
  • Svelte
  • Swagger
  • Symfony
  • Tailwind
  • Terraform
  • TestingLibrary
  • TypeScript
  • Vim
  • Vite
  • Vitest
  • Vue
  • Web3
  • WebComponents
  • WebSockets
  • YAML
POWERED BYManfred Tech© 2024 Manfred Tech S.L.