PostgreSQL

Hire the Top 3% of Freelance PostgreSQL Developers

Toptal is a marketplace for top PostgreSQL developers, engineers, programmers, coders, architects, and consultants. Top companies and start-ups choose Toptal PostgreSQL freelancers for their mission-critical software projects.

No-Risk Trial, Pay Only If Satisfied.

Clients Rate Toptal PostgreSQL Developers4.3 / 5.0on average across 546 reviews as of Sep 21, 2020

Hire Freelance PostgreSQL Developers and Engineers

Mikhail Lyukmanov

Freelance PostgreSQL Developer

United StatesToptal Member Since October 29, 2017

Mikhail is an adtech, data, and analytics professional with over 15 years of experience building and maintaining data lakes, data warehouses, DMPs, and ETL pipelines. He implements a simple minimalist approach in solving complex business and technical challenges. He is also a big fan of open-source software.

Show More

Kevin Bloch

Freelance PostgreSQL Developer

SwitzerlandToptal Member Since December 20, 2016

PostgreSQL, JavaScript, Perl, and Haxe are among Kevin's specialties, but he has worked with many programming technologies since his interest began during grade school. The bulk of his career has been as a lead desktop and full-stack developer, but his favorite areas of focus are project management, back-end technologies, and game development. He works diligently alone, but also loves being part of a team.

Show More

Raoni Boaventura

Freelance PostgreSQL Developer

BrazilToptal Member Since March 9, 2012

Raoni is an experienced software developer and who has contributed to a wealth of projects using Ruby on Rails, JavaScript, and PHP on top of many other programming languages and frameworks. He is an excellent problem solver, and a great communicator as both a team member and a team lead.

Show More

Johan Hernandez

Freelance PostgreSQL Developer

ColombiaToptal Member Since January 3, 2012

Johan is a mobile app and cloud back-end developer with over 15 years of experience. He's been telecommuting for startups in the USA since 2010. He has worked with enterprise stacks for a number of years, but more recently his primary focus has been on building native apps for mobile and desktop (Mac, iOS, Android and Windows) using Swift, Objective-C, Java, Kotlin, and C#. He also builds his own RESTful back-ends with Rails, Node, and Golang.

Show More

Dusan Balaban

Freelance PostgreSQL Developer

SerbiaToptal Member Since December 17, 2017

Dusan has been working professionally for several years mostly in fields related to the design, development, and maintenance of databases—essentially creating demanding data solutions. Although his expertise is in database development, his skills are not strictly tied down to that particular technology. He believes that his mission is to fix problems and to make clients happy.

Show More

Kaspar Schiess

Freelance PostgreSQL Developer

SwitzerlandToptal Member Since November 28, 2016

Kaspar has more than 10 years of experience working with various technologies on both web and on mobile platforms. As a generalist, he picks up new technologies quickly and has a knack of finding and repairing bugs in existing systems. His specialties among technologies are Ruby and Rust. People are always first for Kaspar, software comes second. He is completely dependable, remains calm under stressful circumstances, and gets the job done.

Show More

Benjamin Wilson, Ph.D.

Freelance PostgreSQL Developer

GermanyToptal Member Since August 27, 2016

Ben is a Ph.D. mathematician and computer scientist with exceptional practical skills and extensive experience with machine learning systems. He has worked extensively with large clients in real-time bidding, recommender systems, knowledge management, and NLP (from research to implementation of the system in production).

Show More

Tiago Silva

Freelance PostgreSQL Developer

PortugalToptal Member Since April 9, 2012

Tiago left his position at Microsoft to co-found Hive. From then on, building up Hive has led him through working on projects in every kind of language and environment, performing every skill imaginable from sales, to project management and hardcore development. For him, programming is an art form, and he gets a kick out of making his code as elegant as possible.

Show More

Piotr Ojrzyński

Freelance PostgreSQL Developer

PolandToptal Member Since June 18, 2015

Piotr has more than nine years of experience as a JavaScript developer. He is also experienced with back-end programming (PHP), and the design and implementation of databases (MySQL). The types of jobs he would like to work are those that involve the front-end especially using React. Piotr loves to write code cleanly, is detail-oriented, and can build applications from scratch. He is personable, professional, and a great communicator.

Show More

Andreas Geffen Lundahl

Freelance PostgreSQL Developer

SwedenToptal Member Since July 10, 2015

Andreas is a software architect and developer with a passion for startups and entrepreneurship. He has traditionally worked a lot in eCommerce and finance, but he's always eager to enter new domains. In his consulting and contracting engagements, he strives for maintainable code that doesn't compromise on quality.

Show More

Sign up now to see more profiles.

Start Hiring

A Hiring Guide

Guide to Hiring a Great PostgreSQL Developer

PostgreSQL has been around for a while and its popularity has grown enormously during the last couple of years. With such a demand for PostgreSQL talent, some developers have simply added it to their résumé because they think they will get by with the basics, but they fall short when more advanced tasks are put on their plate. To help you find developers that truly understand the tool, this hiring guide takes you through the topics and questions that PostgreSQL experts should know well.

Read Hiring Guide
Trustpilot
Toptal in the press

... allows corporations to quickly assemble teams that have the right skills for specific projects.

Despite accelerating demand for coders, Toptal prides itself on almost Ivy League-level vetting.

Our clients
Building a cross-platform app to be used worldwide
Thierry Jakicevic
Building a cross-platform app to be used worldwide
1
2
3
Creating an app for the game
Conor Kenney
Creating an app for the game
1
2
3
Leading a digital transformation
Elmar Platzer
Leading a digital transformation
1
2
3
Testimonials

Tripcents wouldn't exist without Toptal. Toptal Projects enabled us to rapidly develop our foundation with a product manager, lead developer, and senior designer. In just over 60 days we went from concept to Alpha. The speed, knowledge, expertise, and flexibility is second to none. The Toptal team were as part of tripcents as any in-house team member of tripcents. They contributed and took ownership of the development just like everyone else. We will continue to use Toptal. As a start up, they are our secret weapon.

Brantley Pace, CEO & Co-Founder

Tripcents

In addition to sharp technical skills, Faruk had a great attitude and is a really exceptional communicator. He always let us know where he was with his work, thoroughly and reliably. That's not always the case, and it made working remotely considerably easier. He was an easy integration into the team.

Leif Abraham, Co-Founder

AND CO Ventures Inc

I am more than pleased with our experience with Toptal. The professional I got to work with was on the phone with me within a couple of hours. I knew after discussing my project with him that he was the candidate I wanted. I hired him immediately and he wasted no time in getting to my project, even going the extra mile by adding some great design elements that enhanced our overall look.

Paul Fenley, Director

K Dunn & Associates

The developers I was paired with were incredible -- smart, driven, and responsive. It used to be hard to find quality engineers and consultants. Now it isn't.

Ryan Rockefeller, CEO

Radeeus

Toptal understood our project needs immediately. We were matched with an exceptional freelancer from Argentina who, from Day 1, immersed himself in our industry, blended seamlessly with our team, understood our vision, and produced top-notch results. Toptal makes connecting with superior developers and programmers very easy.

Jason Kulik, Co-Founder

ProHatch

As a small company with limited resources we can't afford to make expensive mistakes. Toptal provided us with an experienced programmer who was able to hit the ground running and begin contributing immediately. It has been a great experience and one we'd repeat again in a heartbeat.

Stuart Pocknee , Principal

Site Specific Software Solutions

We used Toptal to hire a developer with extensive Amazon Web Services experience. We interviewed four candidates, one of which turned out to be a great fit for our requirements. The process was quick and effective.

Abner Guzmán Rivera, CTO and Chief Scientist

Photo Kharma

Sergio was an awesome developer to work with. Top notch, responsive, and got the work done efficiently.

Dennis Baldwin, Chief Technologist and Co-Founder

PriceBlink

Working with Marcin is a joy. He is competent, professional, flexible, and extremely quick to understand what is required and how to implement it.

André Fischer, CTO

POSTIFY

We needed a expert engineer who could start on our project immediately. Simanas exceeded our expectations with his work. Not having to interview and chase down an expert developer was an excellent time-saver and made everyone feel more comfortable with our choice to switch platforms to utilize a more robust language. Toptal made the process easy and convenient. Toptal is now the first place we look for expert-level help.

Derek Minor, Senior VP of Web Development

Networld Media Group

Toptal's developers and architects have been both very professional and easy to work with. The solution they produced was fairly priced and top quality, reducing our time to launch. Thanks again, Toptal.

Jeremy Wessels, CEO

Kognosi

We had a great experience with Toptal. They paired us with the perfect developer for our application and made the process very easy. It was also easy to extend beyond the initial time frame, and we were able to keep the same contractor throughout our project. We definitely recommend Toptal for finding high quality talent quickly and seamlessly.

Ryan Morrissey, CTO

Applied Business Technologies, LLC

I'm incredibly impressed with Toptal. Our developer communicates with me every day, and is a very powerful coder. He's a true professional and his work is just excellent. 5 stars for Toptal.

Pietro Casoar, CEO

Ronin Play Pty Ltd

Working with Toptal has been a great experience. Prior to using them, I had spent quite some time interviewing other freelancers and wasn't finding what I needed. After engaging with Toptal, they matched me up with the perfect developer in a matter of days. The developer I'm working with not only delivers quality code, but he also makes suggestions on things that I hadn't thought of. It's clear to me that Amaury knows what he is doing. Highly recommended!

George Cheng, CEO

Bulavard, Inc.

As a Toptal qualified front-end developer, I also run my own consulting practice. When clients come to me for help filling key roles on their team, Toptal is the only place I feel comfortable recommending. Toptal's entire candidate pool is the best of the best. Toptal is the best value for money I've found in nearly half a decade of professional online work.

Ethan Brooks, CTO

Langlotz Patent & Trademark Works, Inc.

In Higgle's early days, we needed the best-in-class developers, at affordable rates, in a timely fashion. Toptal delivered!

Lara Aldag, CEO

Higgle

Toptal makes finding a candidate extremely easy and gives you peace-of-mind that they have the skills to deliver. I would definitely recommend their services to anyone looking for highly-skilled developers.

Michael Gluckman, Data Manager

Mxit

Toptal’s ability to rapidly match our project with the best developers was just superb. The developers have become part of our team, and I’m amazed at the level of professional commitment each of them has demonstrated. For those looking to work remotely with the best engineers, look no further than Toptal.

Laurent Alis, Founder

Livepress

Toptal makes finding qualified engineers a breeze. We needed an experienced ASP.NET MVC architect to guide the development of our start-up app, and Toptal had three great candidates for us in less than a week. After making our selection, the engineer was online immediately and hit the ground running. It was so much faster and easier than having to discover and vet candidates ourselves.

Jeff Kelly, Co-Founder

Concerted Solutions

We needed some short-term work in Scala, and Toptal found us a great developer within 24 hours. This simply would not have been possible via any other platform.

Franco Arda, Co-Founder

WhatAdsWork.com

How to Hire PostgreSQL Developers through Toptal

1

Talk to One of Our Industry Experts

A Toptal director of engineering will work with you to understand your goals, technical needs, and team dynamics.
2

Work With Hand-Selected Talent

Within days, we'll introduce you to the right PostgreSQL developer for your project. Average time to match is under 24 hours.
3

The Right Fit, Guaranteed

Work with your new PostgreSQL developer for a trial period (pay only if satisfied), ensuring they're the right fit before starting the engagement.

FAQs

  • How are Toptal PostgreSQL developers different?

    At Toptal, we thoroughly screen our PostgreSQL developers to ensure we only match you with talent of the highest caliber. Of the more than 100,000 people who apply to join the Toptal network each year, fewer than 3% make the cut. You'll work with engineering experts (never generalized recruiters or HR reps) to understand your goals, technical needs, and team dynamics. The end result: expert vetted talent from our network, custom matched to fit your business needs. Start now.

  • Can I hire PostgreSQL developers in less than 48 hours through Toptal?

    Depending on availability and how fast you can progress, you could start working with a PostgreSQL developer within 48 hours of signing up. Start now.

  • What is the no-risk trial period for Toptal PostgreSQL developers?

    We make sure that each engagement between you and your PostgreSQL developer begins with a trial period of up to two weeks. This means that you have time to confirm the engagement will be successful. If you're completely satisfied with the results, we'll bill you for the time and continue the engagement for as long as you'd like. If you're not completely satisfied, you won't be billed. From there, we can either part ways, or we can provide you with another expert who may be a better fit and with whom we will begin a second, no-risk trial. Start now.

Share
PostgreSQL

How to Hire a Great PostgreSQL Developer

PostgreSQL has been one of the more popular open-source object relational database systems since its initial release nearly two decades ago, but that popularity has grown enormously during the last couple of years. We can get a sense of this by looking at db-engines.com, which calculates a “popularity score” based on factors such as number of questions on stack overflow, job offers, and number of results on the major search engines, and the like. Its graph shows a 72,35 percent increase in the popularity of PostgreSQL from January 2013 (score: 167.475) to February 2016 (score: 288.657).

With such a demand for PostgreSQL database experts, some software engineers have simply added it to their résumé because they think they will get by with the basics, but they fall short when more advanced tasks that require specific database and software development experience are put on their plate.

To help you find high-quality developers in the United States or abroad for full-time or part-time roles that truly understand the tool, this hiring guide takes you through the topics and questions that PostgreSQL experts should know well.

Even if a candidate is a master of SQL, it doesn’t necessarily mean that s/he is a master of PostgreSQL.

SQL Basics

Even if a candidate is a master of SQL, it doesn’t necessarily mean that s/he is a master of PostgreSQL. Yet, if the candidate is not proficient in SQL we know for sure that s/he is not a master of PostgreSQL. A good Postgres DBA should know intimately the principles and use of standard SQL. PostgreSQL supports the majority of features required by the SQL standard ISO/IEC 9075:2011, so a big part of PostgreSQL usage relies on it.

We can weed out a large portion of candidates with a high amount of confidence by starting the interview with SQL principles, concepts and usage: the different types of JOINS clauses, UNION, subqueries and the difference between HAVING and WHERE. Toptal’s list of 20 Essential SQL Interview Questions is a good place to start.

SQL vs. NoSQL

When a SQL database is in order, PostgreSQL is the best database for the job most of the time. While the differences between PostgreSQL and other SQL databases, such as MySQL, might be debated, it is more valuable in the hiring process to discuss the differences between PostgreSQL and NoSQL, such as MongoDB. A strong candidate knows when Postgres is the right tool; they don’t always use/recommend Postgres because it’s the only thing s/he knows.

Q: When is it appropriate to use PostgreSQL instead of a NoSQL database and how can you tell?

Relational databases, such as PostgreSQL, have advantages and disadvantages compared to NoSQL databases, and understanding those weaknesses and strengths is important. Using the Brewer Theorem (also known as the CAP theorem) is handy for determining which type of database is the best one for the job.

The Brewer Theorem is built on the assertion that a distributed application cannot simultaneously guarantee the following three systemic requirements: consistency, availability and partition tolerance. Depending on which two of these three are the application’s highest priority, it can be decided which database is the best fit. PostgreSQL is better when consistency and availability are needed, while other combinations may require a NoSQL solution. Here’s a more in depth look at both options:

PostgreSQL Strengths:

Transactionality: PostgreSQL supports transactions at the database level while NoSQL databases do not. There are some methods for implementing transactions in NoSQL, but these are done at the application level instead of in a database level, so they have a toll on performance.

Aggregation functions: PostgreSQL implements SQL standard aggregation functions, as well as some of its own, with high performance. In NoSQL, there are techniques for getting decent performance, but it doesn’t come close to the performance achieved by PostgreSQL.

Joins: Relational databases, such as PostgreSQL, are excellent at querying data that is stored across different tables by using the different types of joins, while NoSQL databases often need to perform multiple queries.

NoSQL Strengths:

Semistructured data: NoSQL databases have a big advantage over relational databases when it comes to handling semistructured data and horizontal scalability. While PostgreSQL has some support for this with the use of the JSONB datatype, NoSQL databases are still the superior choice.

Scaling: NoSQL databases (specifically, the ones that are BASE compliant) are better at scaling write operations since they lack a number of functionalities that ACID compliant databases have, such as referential integrity enforcement.

With these differences and the Brewer Theorem in mind, let’s look at two case study applications:

  • Financial applications need strict data consistency and transactionality, and the nature of the app means running multiple complex reports. In this case, PostgreSQL is the best tool.

  • Social networks (successful ones) are expected to scale at a massive volume and their data is not well structured. Furthermore, the database needs to constantly scale the app horizontally, too, as more and more fields are added in tandem with new app functionalities. Here, a NoSQL database is the better option.

Proof of Mastery

By this point we should have weeded out the weaker talent, but we still need to find the developers that are truly Postgres masters, the ones that will help us get the most out of our database management and are able to handle the inevitable, daunting tasks that come along.

Q: “We need to query a knowledge base with entries for several topics (each entry has a title and a content).” How would you accomplish this using Postgres?

The Subpar Answer

If a developer is not an expert in PostgreSQL, and thus not familiar with its full text search functionality (which we will discuss further), s/he might answer something like this:

SELECT * FROM posts WHERE title ILIKE ‘%query-string%’ OR content ILIKE ‘%query-string%’;

A candidate that answers this way is not a prime choice. This approach is not using PostgreSQL’s awesome capabilities and the quality of the results would be poor:

  • If, for example, our query-string is a pluralized word and we have an entry with the singular form of that word, that result will not be included (not to mention words such as “do” and ”does”) since this method only looks for inclusion of the query-string in the title or content. Likewise, if we have two separate words in the query-string, no results will come up unless they are in the same order and the same form.

  • There’s no guarantee of relevance since there is no way to rank these results by the number of occurrences in the content or numbers of exact word matches, and so on.

  • Performance is also a problem with this approach. Since there is no index support, this query can be extremely slow even in fairly small databases.

The Right Answer

So, how can this problem be solved in a better way using some of PostgreSQL’s cool features L? Full text search.

The full text search feature is based on the @@ operator (known as a ‘match operator’) that returns true if a tsvector matches a tsquery. tsvector is a search type that represents a document, a sorted list of normalized words used for text searches. A tsquery is a search type that represents a query. A document is the ‘unit of searching’ that will often be a column of a table or a concatenation of multiple columns (even from multiple tables), such as this:

SELECT title || ‘ ‘ || content AS document FROM posts;

We can use the tsvector this way, but we cannot directly use tsquery() to convert our query-string into a tsquery since it expects a string with boolean operators that separate lexemes (like & for ‘and’, | for ‘or’, and ! for ‘not’). To convert user-written text into a tsquery, we can use the function plainto_tsquery. The resulting query will look like this:

SELECT * FROM posts WHERE tsvector(title || ‘ ‘ || content) @@ plainto_tsquery(‘query-string’);

Note: depending on your PostgreSQL configuration, you may need to manually specify the dictionary to use in order to have some cool features such as “stemming”. To order the results by relevance we can use the ts_rank() function, which accepts a tsvector and a tsquery as parameters.

Q: What is ‘high availability’, when should you implement it, and how do you do it?

High availability refers to the capability of the database to remain operational for a higher percent of the time in comparison to non-redundant servers. This is also known as having a high service level.

High availability can be achieved with redundant database servers working together to replace the primary server in case of failure. These standby servers (also known as “slaves”) track the changes of the primary, “master” server. While only primary servers may modify the data (perform read/write operations), standby servers have different roles:

Hot standby servers accept connections for the sole purpose of serving read-only queries. This type of standby server is often used for load balancing.

Warm standby servers do not accept any connections, they only follow the changes made to the primary server. If they are promoted to primary, they can start accepting connections and modify data.

When to Implement High Availability

PostgreSQL has many features for facilitating high availability, but it’s not always appropriate to implement high availability. There are many instances where one would decide against high availability (or some type of it), so it is difficult to come up with a simple guideline, but the deciding factor should always be the needs of the business. Generally, implementing high availability is a detriment to performance and increases the overall complexity of the architecture, thus understanding the gains and losses of each decision is key.

It’s easy to give the above answer as a catch-all cop out, so the candidate should explain a couple specific cases to demonstrate understanding:

  • Scenario 1: A marketing company has a newsletter application. Requests to the web application are scheduled (as are the read/write operations to the database) and do not depend on demand. A couple of hours of downtime per month is not likely to impact the business, so high availability doesn’t give much benefit for the cost.

  • Scenario 2: A SaaS company offers a service-level agreement of 99 percent uptime with their 500 thousand users. This company is built on a high availability implementation.

Implementation with Transaction Log Shipping

There are multiple strategies for implementing high availability, but here we’ll cover “transaction log shipping” on a hot standby. PostgreSQL continuously stores all transactions using write-ahead logging (also known as “WAL”). These log entries, among other things, are used for keeping the standby servers up to date by connecting to the primary server and fetching the logs.

For the implementation exercise, assume that the primary database is already functional and that the standby database is an exact copy of the primary database:

In the primary server:

a) Create a user for the replication:

sudo -u postgres createuser -U postgres replicator -P --replication (enter password when prompted)

b) Edit pg_hba.conf to allow connections for replication:

host replication replicator standby-server-ip/32 md5

c) Edit postgresql.conf to set the wal_level to hot standby:

wal_level = hot_standby
archive_mode = on
archive_command = 'cp %p /path/to/archive/folder/%f' 
max_wal_senders = 1 # Enter the number of standby servers

Note: You may need to create the folder assigned to archive_command; a good place is /var/lib/postgresql/<postgres-version>/main/mnt/server/wal_archive. Don’t forget to change the ownership to the postgres user after you create the folder. Depending on your network setup you might need to add this ip address to the list of addresses to listen:

listen_addresses = 'localhost, <primary-server-ip>'

In the standby server:

a) Delete the default data directory in the ‘standby’ server and copy the files from the data that directory in the ‘primary’ server using the ‘pg_basebackup’ utility:

rm -r /var/lib/postgresql/9.3/main
sudo -u postgres pg_basebackup -h <primary-server-ip> -D /var/lib/postgresql/<postgres-version>/main -U replicator -v -P --xlog-method=stream

b) Edit postgresql.conf to enable hot standby:

hot_standby = on

c) Create /var/lib/postgresql/<postgres-version>/main/recovery.conf from the sample file located at /usr/share/postgresql/<postgres-version>/recovery.conf.sample

d) Edit the recovery.conf to configure the standby mode:

standby_mode = on
primary_conninfo = 'host=<primary-server-ip> port=5432 user=replicator password=<password>'

All these changes need to be made as a root user. Don’t forget to restart both servers so they can pick up the changes, and pay special attention to the network setup by ensuring that the hosts are accessible or that ports are not being blocked by a firewall, and so on. This configuration is a good starting point for exploring customizable options. If you have any issues a good place to start troubleshooting is the postgres logs of each server (located in “/var/log/postgresql/postgresql--main.log”).

Wrap-up

With the recent surge of popularity of NoSQL, some people thought that SQL databases were headed to oblivion and that PostgreSQL, not being the most used SQL database, would be one of the first ones to fall. This hasn’t been the case, and so it remains important to refine the PostgreSQL recruiting process. With the NoSQL euphoria fading away, people are realizing that NoSQL is not a silver bullet. With PostgreSQL becoming so popular, SQL databases still play an important role.

Featured Toptal PostgreSQL Publications

Top PostgreSQL Developers are in High Demand.

Start Hiring