Chris is a senior full-stack engineer with 7+ years of experience building web apps for early-stage startups and robust enterprise SaaS software. 他专门研究Ruby on Rails, PostgreSQL, and MySQL, 主要关注后端开发, integrations, and API design. Chris是创建面向用户的生产web应用程序和内部工具的专家, 他愿意接受新的挑战,帮助其他企业发展和成功.
Rahul is a highly-skilled software development professional who brings more than eight years of experience in software design, development, 以及项目的集成管理. 他拥有SQL、PL/SQL、PostgreSQL和Oracle E-Business Suite的专业知识. 他还擅长技术领导、有意义的沟通和演讲.
Jano是一名全栈开发人员,也是数据库领域的创始人. Using PostgreSQL, 他曾从事政府数据的数据库服务, 推荐引擎, 和性能优化项目,有创业经验, consulting, 领导小团队. Jano has a master's degree (summa cum laude) in software engineering from the Slovak University of Technology in Bratislava.
Luis has been working as a software developer and data engineer for the past three years after receiving his bachelor's degree in digital systems and robotics engineering specializing in software development and AI. 他的主要语言包括用于脚本的Python和用于数据库的PostgreSQL, Django作为他的主要后端框架. Luis focuses on back-end services and API development in addition to data-related applications that include some deep learning projects.
与我合作的开发者都非常出色——聪明、有动力、反应灵敏. 过去很难找到高质量的工程师和顾问. Now it isn't.
瑞安·洛克菲勒首席执行官
Radeeus
Toptal立即理解了我们的项目需求. 我们遇到了一位来自阿根廷的杰出自由职业者, from Day 1, 沉浸在我们的行业中, 与我们的团队无缝融合, 理解我们的愿景, 并产生了一流的结果. Toptal使与高级开发人员和程序员的联系变得非常容易.
Jason Kulik,联合创始人
ProHatch
作为一家资源有限的小公司,我们不能犯代价高昂的错误. Toptal provided us with an experienced programmer who was able to hit the ground running and begin contributing immediately. 这是一次很棒的经历,我们会马上再来一次.
斯图尔特·波克尼校长
现场专用软件解决方案
我们使用Toptal聘请了一位具有丰富的Amazon Web Services经验的开发人员. 我们面试了四位候选人,其中一位非常符合我们的要求. 这个过程迅速而有效.
Abner Guzmán Rivera,首席技术官和首席科学家
Photo Kharma
Sergio是一个很棒的开发者. 一流,反应迅速,工作效率高.
Dennis Baldwin,首席技术专家和联合创始人
PriceBlink
和Marcin一起工作是一种乐趣. He is competent, professional, flexible, 并且非常迅速地理解需要什么以及如何实现它.
André Fischer, CTO
POSTIFY
我们需要一位能立即开始我们项目的专业工程师. 西马纳斯的工作超出了我们的预期. 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使这一过程变得简单方便. Toptal现在是我们寻求专家级帮助的首选之地.
Toptal为快速发展和规模化的企业提供不妥协的解决方案. Every engineer we've contracted through Toptal has quickly integrated into our team and held their work to the highest standard of quality while maintaining blazing development speed.
Greg Kimball,联合创始人
nifti.com
如何通过Toptal招聘PostgreSQL开发人员
1
与我们的行业专家交谈
Toptal的工程总监将与您一起了解您的目标, technical needs, and team dynamics.
是的,PostgreSQL开发人员需求量很大. According to 高德纳,DBMS市场 是否实现了持续增长(2021年接近800亿美元)并继续加速. PostgreSQL是数据库管理的首选(也是专业开发人员的首选数据库技术). It is a versatile tool with advanced features and it supports relational databases while also offering NoSQL functionality. 对PostgreSQL工程师的需求持续增加.
我应该如何为我的项目选择最好的PostgreSQL开发人员?
适合您项目的最佳PostgreSQL开发人员应该具有关系数据库和SQL专业知识的基础. 他们应该有PostgreSQL的经验,并且了解它与数据相关的特性, performance, and reliability. 开发人员还应该具备一定的补充技能:熟练使用过程语言(例如.g., PL/pgSQL或PL/Python), 熟悉PostgreSQL特定的JSON操作符和函数(如果需要NoSQL功能), 掌握c家族语言(在需要创建或维护内部PostgreSQL扩展的情况下). 最后,每个工程师都必须具备调试和解决问题的能力.
你在Toptal能多快招到人?
通常,你可以在大约48小时内用Toptal雇佣一名PostgreSQL开发人员. 我们的人才匹配者是他们所匹配的领域的专家,他们不是招聘人员或人力资源代表. 他们会和你一起理解你的目标, technical needs, and team dynamics, 并从我们经过审查的全球人才网络中为您匹配理想的候选人.
数据库管理系统(DBMS)市场正在蓬勃发展 $80 billion in 2021,这是继过去五年持续增长的趋势. PostgreSQL, 也被称为Postgres, 是数据库管理的首选,是首选的数据库技术吗 专业开发人员. 随着DBMS市场的扩大,对PostgreSQL工程师的需求也在不断增加.
Hiring PostgreSQL developers is not always straightforward: While other SQL engineers do have some skill overlap with PostgreSQL developers, only experienced PostgreSQL specialists know how to leverage PostgreSQL’s advanced features and how to be effective at performance tuning.
在这份招聘指南中, 我们概述了PostgreSQL工作描述的关键组件, 面试问题, and assessments. We also define the difference between PostgreSQL and SQL developers from a hiring perspective and the complementary technical skills your role might require.
是什么属性将优秀的PostgreSQL开发者与其他开发者区分开来?
在招聘PostgreSQL开发人员时, 了解PostgreSQL开发人员如何在更广泛的数据库专业背景下脱颖而出是很重要的.e.PostgreSQL vs SQL vs NoSQL技能). 数据库有两种基本类型:
关系(RDBMS)或SQL数据库 使用带有行和列的表, which is ideal for structured data; these databases facilitate complex queries and help developers enforce data consistency. 例如PostgreSQL、MySQL和Microsoft SQL Server.
Secure access-control system; international character sets; support for a variety of languages; time stamps with time zones
衡量候选人的知识深度, 询问他们关于PostgreSQL的特定能力和限制, using its feature matrix for reference.
如何确定理想的PostgreSQL开发人员?
除非你正在招聘初级工程师,并且有额外的入职和培训时间的灵活性, 你应该把精力集中在寻找具有丰富PostgreSQL实践经验的开发人员上. 在回顾rsamsamos时, be wary of candidates who list only experience with SQL: SQL generalists will likely need to unlearn some habits specific to other SQL systems lest they risk implementing antipatterns that may cost your company—even before your app scales.
Procedural languages allow PostgreSQL developers to reuse SQL-related code from directly within the database for performance and data consistency. 在PostgreSQL的核心发行版中有四种过程语言:
如果您的项目已经严重依赖于其中一个或多个, 你可能需要雇佣一个使用Python的开发人员, Perl, or Tcl skills. 然而,这个列表与开发人员如何从应用程序的代码中与PostgreSQL交互几乎没有关系. 例如,如果你的应用程序(或它的后端)是用Java编写的,a Java developer will use PostgreSQL’s client libraries to run queries; a PostgreSQL developer can collaborate with them better if they also know Java, 取决于团队规模和角色重叠.
某些数据库项目也可能受益于 JSON-proficient开发者. As mentioned, PostgreSQL主要是一个关系数据库, 但PostgreSQL工程师仍然可以利用NoSQL功能的强大功能. Look to hire someone with strong JSON SQL experience and mastery of JSON datatype operators if you are considering a combined document/relational database model.
最后,在极少数情况下,熟悉c族语言(C or C++),这样他们就可以创建和维护自定义PostgreSQL扩展. However, 许多扩展以开源项目的形式存在,无需C或c++技能就可以利用它们.
如何为您的项目编写PostgreSQL职位描述
雇用PostgreSQL开发人员的下一步是根据您的数据和特定需求定制角色要求:
Scenario
Level
Requirements
您刚刚开始使用PostgreSQL并寻找应用程序开发人员.
初级或中级工程师
寻找一般熟悉SQL的候选人. 对于所有的工程师来说,对PostgreSQL的经验有严格的要求可能是没有意义的, 因为这会限制你的选择. 熟悉任何关系数据库的优秀应用程序开发人员可以相对轻松地学习PostgreSQL的特性. It is helpful, however, 让团队中至少有一个人了解PostgreSQL的高级特性,以简化其他开发人员的学习曲线. In particular, a complex new product would benefit from having a PostgreSQL-savvy database architect available to shape the project during its infancy.
不管他们在PostgreSQL方面的专业水平如何, a solid candidate should have sufficient experience with databases and advanced knowledge of the SQL syntax as a foundation for additional PostgreSQL skills.
哪些是最重要的PostgreSQL面试问题?
有效的面试问题是招聘难题的关键部分,也是你通往顶级开发人员的门票. 你可能会问标准 SQL面试问题 on topics like JOIN 子句和子查询或更高级的问题,如窗口函数, CTEs,以及递归查询. 最好的面试是根据项目的具体因素来定制问题.
在标准的SQL问题之后,继续回答更具体的PostgreSQL面试问题,比如:
您将如何处理部署数据库模型更改(例如.g.(重要的列重命名),停机时间最少?
PostgreSQL支持 transactional DDL,但即使重命名一个列也会阻塞整个表的读写. This can cause downtime and deadlocks at the database level and may need nontrivial synchronization when deploying new application code that can work with both versions of the table. 正确的方法是将模型更改拆分为可以随时安全运行的多个步骤. 示例操作项可能包括:
通知关键利益相关者生产部署可能包括可能的停机时间.
如果需要,为以后的恢复创建表的备份副本(例如.e.(当在重要的表中执行结构更改或批量数据更新时).
在列中运行列重命名和随后可能的数据操作.
提交更改(或者在出现意外问题时回滚更改).
在完成部署后,与涉众验证应用程序是否按预期工作.
您还应该测试每个候选人对与您的项目相关的复杂PostgreSQL特性的理解. For example:
Services like Datadog and New Relic provide actionable insights regarding PostgreSQL performance and are easy to integrate into existing applications of various languages. pgAdmin is also an excellent open-source graphical tool for database administration; it can monitor database configuration and activity, 跟踪会话和锁, 捕获长时间运行的查询, and more, 但是,这些功能的大部分也可以由PostgreSQL开发人员熟练使用 psql command line.
最后,案例研究方法在面试时可能会很有用. 下面的情况评估候选人使用至少一个其他关系数据库的经验.g., MySQL, Oracle, MS SQL).
考察每位候选人处理现实问题的能力, ask them to create a relational database model that meets a set of business requirements that aligns with your project’s use cases.
根据每个候选人的模式,问他们:
如何查询和操作数据库中的数据?
您在性能、可伸缩性和维护方面做了哪些权衡?
你会怎么跑呢 EXPLAIN on a query? 请包含优化查询计划的建议.
所有候选人都应该清楚地理解这些关系数据库概念.
While interviewing, consider other relevant developer strengths from the complementary technologies mentioned in the “如何确定理想的PostgreSQL开发人员?部分,以及更多的一般工程主题:
PostgreSQL首先是一个RDBMS, but PostgreSQL developers can also harness the power of NoSQL functionality and work on projects with unstructured data using a combined document/relational data model. 由于PostgreSQL丰富的JSON支持,这种方法成为可能, 它需要一个在生产系统中专门使用JSON数据类型的工程师.
虽然PostgreSQL是一个通用的工具,但它可能并不适合每个项目. For example, other approaches offer better solutions when dealing with huge amounts of unstructured data or blob storage where you don’t need ACID compliance. 但是在使用其他技术时,您仍然可以从PostgreSQL开发人员那里受益 从PostgreSQL迁移数据.
随着DBMS市场的持续增长, companies will increasingly look to expert PostgreSQL developers to harness the profits of large data sets and stay competitive. 根据这里提供的指导, you will be better prepared for every step of the hiring journey—from drafting your PostgreSQL job description to identifying the required advanced PostgreSQL skills for development. 专注于正确的PostgreSQL专家将推动您的数据和您的业务走向成功.