// how I adapt

Migrations

The moments that changed the way I work, and how I adapted to each one.

~/davidmles $ rails db:schema:load

db/schema.rb

1995–1999 · the base everything else runs on

Before any migration, there was a schema. Red Hat installed next to Windows 98: drivers that didn’t exist, library conflicts, configuration files read line by line until the system made sense. Later, tuning and recompiling the kernel. At the same time I was buying parts and building my own computers. Knowledge came from friends, magazines and manufacturers’ manuals, and from a lot of trial and error.

That’s how I learned UNIX and how a computer works inside. And how I learned to learn on my own.

~/davidmles $ rails db:migrate:status

database: davidmles_career

  1. up2000Teach JavaScript with one week’s notice

    # db/migrate/2000_teach_javascript_with_one_weeks_notice.rb

    # what changed

    My first week at my first job, building an application in ASP. A sales colleague dropped a stack of photocopies on my desk: a JavaScript course. I was teaching it the following week.

    # what I did

    I prepared it in a few days and taught it.

    # what stayed with me

    A second career running in parallel: I went on to teach developers, from classrooms to LinkedIn Learning.

  2. up2001Pass university math from the library

    # db/migrate/2001_pass_university_math_from_the_library.rb

    # what changed

    I started Computer Science with weak math. The theory lectures moved too fast for me to follow.

    # what I did

    I stopped attending them and went up to the library to study from the course bibliography, at my own pace.

    # what stayed with me

    I caught up and passed the subjects I needed to carry on with the degree.

  3. up2002Learn systems programming at night

    # db/migrate/2002_learn_systems_programming_at_night.rb

    # what changed

    The courses I taught kept getting harder. One was C programming for Linux. I knew the language and the system, but not systems programming.

    # what I did

    I got a very thick book and read it at night, cutting into my sleep, with university lectures the next morning.

    # what stayed with me

    The course went well and the students liked it. They were engineers at a major Spanish gaming-machine maker, moving their machines to Linux with on-screen games. Today they all work that way.

  4. up2008Adopt a framework: Symfony

    # db/migrate/2008_adopt_a_framework_symfony.rb

    # what changed

    With plain object-oriented PHP 5, every project needed its own structure, built from scratch. Frameworks were starting to change that.

    # what I did

    I chose Symfony and learned to organize everything around MVC.

    # what stayed with me

    Conventions instead of reinventing the structure on every project.

  5. up2011Relearn everything for Symfony 2

    # db/migrate/2011_relearn_everything_for_symfony2.rb

    # what changed

    Symfony 2 changed almost everything about how the framework worked.

    # what I did

    I relearned it from the ground up.

    # what stayed with me

    Enough depth to put everything I knew into a Symfony 2 course on Udemy.

  6. up2013Switch language: PHP to Ruby

    # db/migrate/2013_switch_language_php_to_ruby.rb

    # what changed

    I was tired of implementing so much from scratch.

    # what I did

    I remembered Ruby from a university subject where we used it for algorithms, and tried Rails. Its gems had almost everything ready to plug in. A new language and a new way of writing code. I closed the PHP chapter with that Symfony 2 course and kept Rails as my one tool.

    # what stayed with me

    The most enjoyable migration. Thirteen years later, still my main specialization.

  7. up2015Learn architecture backwards

    # db/migrate/2015_learn_architecture_backwards.rb

    # what changed

    In 2015 I joined the e-commerce platform of a large UK energy company. The codebase was already built with a modular design: separated responsibilities, clear boundaries, decoupled code. I had to change and maintain it without knowing the theory behind it.

    # what I did

    I learned it from the code itself, one pattern at a time, and it was hard. In 2026 I went back to the theory: software architecture, design patterns, layered design.

    # what stayed with me

    Now I understand the principles behind those structures, not just how they work. That helps me make better design decisions.

  8. up2024Migrate live payments

    # db/migrate/2024_migrate_live_payments.rb

    # what changed

    I took responsibility for a live e-commerce platform previously maintained by a five-person engineering team. Later, Adyen required us to migrate our integration from its classic platform to its new Balance Platform within a deadline. The new API was still under development, and its documentation was incomplete.

    # what I did

    I investigated Adyen’s Ruby library source code to find undocumented API calls and adapted our payment integration to support both platforms. I then rolled out the migration one client at a time, using feature flags, payment logging, error alerts, and a coordinated rollback process to minimize risk without disrupting sales.

    # what stayed with me

    Owning a critical system end to end, and changing its most sensitive part in production without stopping the business.

    read the full story
  9. up2025Adopt AI agents

    # db/migrate/2025_adopt_ai_agents.rb

    # what changed

    The biggest shift of my career: tools that can read a whole codebase, hold a large context about the project, its conventions and the problem at hand, and write the code.

    # what I did

    I started using coding agents early on: to explore unfamiliar codebases, study new concepts, and build side projects. I provide the context, review the plan, and guide the implementation. Then I verify that the result meets my quality standards and fits the architecture.

    # what stayed with me

    The agent writes most of the code. The design decisions and what reaches production are still mine. This site was built that way.

    Not my first contact with AI: my final-year project, in collaboration with Intel in 2005, implemented learning algorithms for Bayesian networks.

Schema up to date. The next migration will be written wherever I land next.

say hola →