How to grow as a database developer?
Some time ago someone in the r/Database subreddit asked the following question:
I am a database developer at a private manufacturing company that has a fairly large IT department including several software dev teams. [...] As a part of my annual review process, I am being asked what my goals are for my career 3-5 years down the line. [...] What would you, more experienced DB devs recommend a less experienced dev learn to grow and improve their database skills? Should I focus on relearning more front-end dev to become a full stack dev, or are there other specific DB technologies I could learn?
Here is my reply, rewritten and expanded:
First, learn to speak the language of the business side. Understanding of the business domain is the basic prerequisite, but you also need to have a common language with stakeholders, such as data analysts and researchers, and especially with marketing.
(As an aside, I believe that being able to meaningfully work together with the marketing team is often a litmus test of how far you've departed from the developer mindset. A lot of data in a typical business database is easy to understand. For example, you may store the information about orders, payments, and financial reporting. It’s clear what would go wrong if this data is handled incorrectly: orders are mishandled, the company collects wrong amounts of money, incorrect reporting causes regulatory problems. However, fixing the data is straightforward, because you can relatively easily diagnose mismatches between then data and the reality. Marketing data, on the other hand, helps manage customer acquisition funnel, where mistakes are much harder to see and fix; at the same time those mistakes can be strategically important.)
There are many more stakeholders you could help: find them and talk to them: financial compliance, storage budgeting, database administrators, PII compliance, software developers, DevOps, security, knowledge management specialists, etc, etc.
Second, think about removing the organizational bottlenecks around data processes. For example, think about what happens when somebody joins the company in a data-related role, or when somebody is assigned to a project. What do they need to do until they get up to speed? Do they have to poke around the database for hours, scheduling “knowledge transfer” sessions with random people who remember how the stuff came around (if those people are still employed by the company)? Or could there be a way to document the data using some approach that would be a fit for the company?
There are also some other activities that could help with reducing friction, such as establishing data provenance. When a team working on a new project starts generating new data: how reliable is this data and how quickly can it be used by other teams/people?
Another thing I'd suggest keeping in mind: how much does the data cost? When your company stores values for a certain attribute (anything, say "the day of birth of the user"): how much does it cost to store all those days of birth, in dollars? Next question is of course: does this data pay the rent? How often is it used to test a new hypothesis? How quickly could it be used to test a new hypothesis? Is it documented, clean and reliable?
Could the storage and processing of a data attribute be optimized so that you could have more for the same price?
Summarizing, your goal should probably be to enable other people. A lot of other responses to the original question were focused around specific tools, including such arguably important technology as machine learning. Those are of course important, but helping to leverage the skills of other people could be even more beneficial for your career.