Dimitri, picture by Oleg Bartunov Dimitri, picture by Oleg Bartunov

Hi! My name is Dimitri. I have been using and contributing to Open Source Software for the best of the last twenty years. I took role as developer, maintainer, packager, release manager, software architect, database architect and administrator, sometimes devops. In the same time frame I also have started several companies (they are still thriving) with a strong Open Source business model, and I have been in manager positions at times too, including at the Executive level in big companies.

If you’ve read Charity Major’s Engineer/Manager Pendulum piece, there’s something to that in my career up to now, definitely. From the hacker guy to the CEO of a small company, from the PostgreSQL Major Contributor to the CTO of a big company.


In this place I share my PostgreSQL expertise. You will find about my projects of course, and the blog is full of interesting articles: have a try at Understanding Window Functions which has been helpful to many readers! This article is even part of a data driven series of post, the YeSQL category, check it out!

Also, I’m writing a book about Mastering PostgreSQL in Application Development, and you can subscribe to get sample content before anyone else and be the first to get the book when it’s available!


PostgreSQL Major Contributor PostgreSQL Major Contributor

The most notable project I have contributed to is PostgreSQL. I wrote the Extension Packaging feature and the Event Triggers facility, among other contributions.

As a debian maintainer I also participated into building a PostgreSQL repository for all currently supported version of both PostgreSQL and debian, available at apt.postgresql.org, with Christoph Berg and Magnus Hagander.

My main project related to PostgreSQL these days is pgloader which allows loading data into PostgreSQL and include facilities to handle a full database migration from a live database connection!


pgloader features user defined type casting pgloader features user defined type casting

pgloader is an awesome database migration tool that I wrote, open source and available at http://github.com/dimitri/pgloader. You can use it in a Continuous Integration environment and keep migrating your schema and data until your application tests all pass, then decide to go live with PostgreSQL!

In the general case to migrate from a MySQL to PostgreSQL with pgloader all you need to do is run a single command:

$ pgloader mysql://user@host/dbname pgsql:///dbname

Also supported are SQLite and Microsoft® SQL Server. Email me if you want to add Oracle™ to the list!


Open Source Software Engineering Open Source Software Engineering

I can help you use PostgreSQL in your development environment, be it Go or Java, Erlang or Common Lisp, Python, Ruby or PHP, or something else entirely. It’s still PostgreSQL after all…

The first step here is realizing that your database engine actually is part of your application logic. Any SQL statement you write, even the simplest possible, embeds some logic already: you are projecting a particular set of columns, filtering the result to only a part of the available data set (thanks to the where clause), and you want to receive the result in a known ordering. That already is business logic. Application code written in SQL.