I’m Melanie Plageman. I’m a Postgres Major Contributor and Committer working at Microsoft. I have contributed Postgres features and bug fixes to the vacuum, IO, query execution, and statistics sub-systems. I participate in Postgres community initiatives including co-organizing PGConf.dev. I love hacking on Postgres and feel so lucky that I get to do it as my job.
I made my first Postgres extension while working in IT consulting. At the time, I knew I wanted to shift my focus to coding. I quit my consulting job to focus on getting a job as a software engineer. I enjoyed reading the Postgres source code so much that I decided to pursue a job contributing to Postgres. I really like that Postgres development ethos emphasizes doing things the right way.
I was so lucky to end up at Pivotal, contributing to Greenplum. The environment was super collaborative. I learned so much from my co-workers. Pair programming is awesome! I loved coming to work every day. I felt like we could do anything as a team. It really shaped me as an engineer.
When you talk about pipeline for a project like Postgres, relatively few people gain enough experience to become senior contributors. What I learned at Pivotal is that it isn’t efficient to just widen the funnel at the beginning of the pipeline. You need to help people along every stage of the pipeline. You can’t just help people write their first patch and then they’re on their own. You need regular health checks for the team and growth opportunities for the team members.
At PGCon Ottawa in 2019, I heard Tomas Vondra and Thomas Munro discussing approaches for resolving an issue with hash join. They explained the ideas they had for solutions. They detailed the idea they said was the most complete solution but also the most challenging to implement. I decided to work on this in my free time and in some of my upstream time at work.
It took me eight months to have something that mostly worked. It was the first Postgres feature I wrote. It was so challenging and rewarding. I learned so much about Postgres’ hash join implementation and various related problem spaces. I ended up speaking about this work at the virtual PGCon 2020. This work was what eventually led to me getting a job working full-time on upstream Postgres at Microsoft.
I’m proud of the refactoring of vacuum code I did last release (PG 17). I implemented a feature which improved vacuum performance by refactoring the existing code. It was difficult, painstaking work and involved a highly sensitive area of the code. I was very lucky that Heikki Linnakangas, a very experienced committer, helped co-author, validate, and eventually commit the work. I’m also very proud of a recent bug fix I committed. It was a very hard to reproduce edge case that would cause a vacuum process to infinitely loop. My colleague Andres Freund was instrumental in helping me reproduce this.
I think projects like these help build my confidence that if I were to commit a bigger feature to Postgres and something went wrong, I’d be able to root cause and fix it. Being a committer means being accountable for code that’s being used by thousands and thousands of people. You have to build confidence in yourself and that your co-contributors will have your back.
I’ve worked on several projects that weren’t committed and no matter how hard I worked on them, it seemed like they weren’t producing a committable patch set. I try to tell myself that this is part of doing work that is more experimental and risky, but I find it really hard to give up before I’ve solved a problem. And in open source, people don’t usually tell you, “hey don’t work on that anymore. you’re wasting your time”. It’s hard to know if something is wrong with me and my work or if this is an inevitable part of being a developer. I don’t know if I have overcome this issue yet 🙂
I co-organize PGConf.dev, the PostgreSQL Development Conference. I am on the PostgreSQL Contributors Committee (we recognize long-time Postgres contributors).
I regularly speak at Postgres conferences — like PGConf NYC, PGConf EU, PGCon (now PGConf.dev), and CitusCon (now POSETTE).
I’ve also been a guest on several Postgres podcasts — like Postgres FM, Talking Postgres, and Hacking Postgres.
Right now, I’m helping out with the Postgres Hacking Mentorship Program, started by Robert Haas. I’ve been had the benefit of mentorship throughout my career, so I am working with participants in the program to help them get the most out of their mentorship relationships.
First of all, I want to say that the job of mentoring women in tech does not fall only to women. There are fewer women than men, so if all women are being mentored by women, then men are not stepping up.
One way to help other women in tech is to be a technical role model. I have had some fantastic mentors — both men and women. And there are people in the Postgres community like the committers participating in the Postgres Hacker Mentorship Program who are working hard to create mentorship opportunities for more people (including women) to be Postgres hackers.
That being said, it is also really important to create opportunities for others as you become more established. Since becoming a committer, I have spent more time on creating mentorship opportunities and on advocacy.
I have spoken about inclusion of women Postgres hackers (at PGConf.dev 2024). I specifically recruited talk proposals from women applicants while on the program committee for PGConf.dev 2024. I am a sustainer of the PgUS diversity scholarship for conference attendance. I also participate in the Postgres Women telegram channel and have tried to create channels for women to ask questions about getting involved with Postgres hacking.
Protect your time. Be sure to spend the time on activities that directly contribute to your career goals. If you want to build technical skills, focus on technical tasks. Don’t be afraid to say no to non-technical opportunities. Of course working in tech is about more than coding. But if you spend 75% of your time in meetings and writing blog posts, then those are the skills you are building.
The PostgreSQL Hacker Mentorship Discord server is a great resource for asking questions about Postgres internals and development. I also recommend listening to conference talks from Postgres conferences. These are great resources. There are a few books on Postgres internals that can be helpful (if you google Postgres internals, they show up in the results). There are READMEs in the code that can be helpful. I can give specific recommendations for sub-topic resources.
I’m very excited for AIO/DIO in Postgres. I’m excited for multi-threading. There’s so many big projects that folks have tried to do in the past and are trying to do now. I can’t wait to see where those go and to try and help them get there
I’m currently working on trying to make vacuum’s freezing behavior more adaptive to each table and its access pattern. I’d like to work on some ideas that we have been discussing about making autovacuum keep up better with table bloat. I’m planning on helping a bit with the work Andres Freund is doing to add AIO to Postgres.
There are so many projects on my list and ones I’d like to help with. I also want to spend more time reviewing (and committing) others’ work. I struggle to do that during this more R&D focused portion of the year.
As for community work, I’m working on PGConf.dev 2025’s program. One goal I have is for the annual Postgres developer and leadership meeting to lead to more action items and outcomes. I don’t have any good ideas for how to do that yet, though 🙂
It means that I am part of something that is bigger than a single company or team. I have colleagues who I will probably work with for the rest of my professional life — regardless of my employer. That is a really special kind of security. But it is also a responsibility. That strategy will only work as long as we keep making Postgres better and continue to improve and address various architectural issues that may hold us back.
Balance looks different to everyone. I’ve strongly prioritized my professional life in the past few years, but that was my choice (and a luxury not everyone has). And I still said no to lots of opportunities that didn’t align with my goals.
This comes back to protecting your time. If you want to take a CS course or learn a new programming language, you will probably have to set down other tasks and reprioritize.
Share your priorities with others. Be clear about saying no to work that doesn’t align with these priorities. And if those priorities are your family or hobbies or just having some time for yourself, those are just as important.
You can’t always rely on your manager to make sure you don’t burn out. You have to watch out for yourself. And if you work somewhere where they are not respecting your boundaries, I recommend looking for a different opportunity. I’ve had co-workers I really enjoyed working with who were keyboards down at 5pm every day. And I’ve had co-workers I loved who worked 70 hour weeks much of the year. The key is communication. Communicate your boundaries and set expectations.
The Postgres community is full of kind, well-intentioned people. If you do have the bandwidth to get involved with community organizing, we are always looking for new people to help with meetups, conference organizing, and more. It’s not always clear what those opportunities are, so don’t be afraid to ask. Don’t be discouraged if someone doesn’t get back to you right away, as everything is pretty much run by volunteers.
Our idea explores the implementation of AI-driven query optimization in PostgreSQL, addressing the limitations of traditional optimization methods in handling modern database complexities. We present an innovative approach using reinforcement learning for automated index selection and query plan optimization. Our system leverages PostgreSQL’s pg_stat_statements for collecting query metrics and employs HypoPG for index simulation, while a neural network model learns optimal indexing strategies from historical query patterns. Through comprehensive testing on various workload scenarios, we will validate the model’s ability to adapt to dynamic query patterns and complex analytical workloads. The research also examines the scalability challenges and practical considerations of implementing AI optimization in production environments.
Our findings establish a foundation for future developments in self-tuning databases while offering immediate practical benefits for PostgreSQL deployments. This work contributes to the broader evolution of database management systems, highlighting the potential of AI in creating more efficient and adaptive query optimization solutions.
This talk provides an introductory overview of Artificial Intelligence (AI) and Machine Learning (ML), exploring key concepts and their application in building intelligent systems. It will highlight the essential AI/ML techniques, such as supervised and unsupervised learning, and discuss practical use cases in modern industries. The session also focuses on how PostgreSQL, with its powerful extensions like PostgresML, TimescaleDB, and PostGIS, supports the development of AI-powered applications. By leveraging PostgreSQL’s ability to handle complex datasets and integrate machine learning models, participants will learn how to build scalable, intelligent solutions directly within the database environment.
Success is a multiplier of Action, External Factors and Destiny.
Out of these three, the only controllable aspect is our action. Again, action is the result of our EQ, IQ, SQ, and WQ (Willingness Quotient) together.
We all want to be successful and keep trying to motivate ourselves with external factors. We read inspirational books, listen to great personalities, and whenever possible upgrade ourselves with more knowledge and the list goes on.
Indeed these are excellent motivators, but in this process, we forget the most important source of energy, YOU!
We read other stories to feel inspired, thinking “I am not enough!”
But, the day we start accepting ourselves, introspect, understand, and align our life purpose with our routine, we find the internal POWER. This is a continuous source of motivation and energy which we need at down moments. When we feel, lonely, stuck and seek help, our inner voice is the greatest companion.
But, how many times do we consciously think about our “Subconscious”?
“Journey to Self” is our structured coaching program where we take back focus from the outside and delve deep inside to find our inner strength. Focusing on self-acceptance and personal growth
I believe everyone has POWER within them!
Let’s be the POWERHOUSE!
Human, AI, and Personalized User Experience for DB Observability: A Composable Approach
Database users across various technical levels are frequently frustrated by the time-consuming and inefficient process of identifying the root causes of issues. This process often involves navigating multiple systems or dashboards, leading to delays in finding solutions and potential downstream impacts on operations.
The challenge is compounded by the varying levels of expertise among users. It is essential to strike the right balance between specialized and generalized experiences. Oversimplification can result in the loss of critical information, while an overwhelming amount of data can alienate certain users.
Developers and designers are constantly navigating these trade-offs to deliver optimal user experiences. The integration of AI introduces an additional layer of complexity. While AI can provide personalized experiences within databases, it is crucial to maintain user trust and transparency in the process.
The concept of personalized composable observability offers a potential solution. By combining the strengths of human expertise, information balance, and AI-driven personalization, we can create intuitive and user-friendly experiences. This approach allows users to tailor their observability tools and workflows to their specific needs and preferences.