Job Type: Full-Time, all nights, weekends and holidays (24x7x365), location flexible.
This is a wonderful opportunity for the right candidate! Honestly, it's a pretty boring, repetitive, detail-oriented job. Nevertheless, either we make it someone's full-time job, or continue to deal with the pain and limitations of doing without, but that is becoming simply insufferable.
Job Opportunity and Challenges
Our team manages about 75 databases, each having a lot of complex DDL -- over 5 million objects each. I'm not talking about five million rows of data (tiny data!), but over five million OBJECTS: tables, views, packages, etc. (large structure!).
Database source code for a complete build of our systems does not exist. Database changes are coded with incremental scripts for each release. Database scripts for each release depend on the previous release database. There are no baseline database scripts to use to "build from scratch".
We are using shared database servers for development work. Like many conveniences in software development, a shared database is a tar pit waiting to fossilize a project: Developers overwrite each others' changes, changes made on the database break the code in the web app, etc. In short, there are a lot of opportunities to accelerate from our current snail's pace.
We are currently stuck with an arcane, time-intensive manual process that leaves much to be desired and offers very little by way of consistency or reproducibility.
Job Duties
The DB Code Librarian's duties will be to keep a complete set of database source code up-to-date and in-sync with what is deployed to our 75 databases, along with revision history as data structures evolve. The Database Source Code needs to be accurate, complete and up-to-date so that it can be used to recreate an entire database system from scratch for standing up new environments. This code will be stored in our Source Code Management System and available to the team for browsing, and using as a baseline for new development.
The Database Code Librarian will also deploy the latest active sets of database source code to build servers to test the DB build scripts. This ideally needs to be done continuously, but maybe once nightly is sufficient.
Additional duties include providing ad-hoc reports to the rest of the team showing database source code differences for a given database between two different points in time and creating demo, training or developer sandbox databases that are exact clones of production systems (except they are customized to have no data, no partitions, sometimes specific subsystems only, other tweaks).
Experience:
10-15 years of demonstrable relevant experience.
M.S. in Data Science with a specialization in Structural Metadata Management preferred.
Encyclopedic knowledge required of Oracle data structure definition, including not only tables, view and packages and triggers, but audits, contexts, VPD policies, directories, grants, roles, functions, indexes, partitions, procedures, comments, materialized views, database links, synonyms, sequences, profiles, jobs, types, identity columns, proxies, tablespaces, rollback segments, users and schemas.
Willingness to learn and grow with the team as we tackle these same structural metadata management problems on HBase, BigQuery, Redshift, Snowflake, MongoDB, Couchbase, MySQL and Postgres.
Speed, attention to detail and organizational skills required to accurately create and maintain about 500k lines of code across 16k scripts for each of 75 databases at a pace to keep up with code changes on a daily (or at least weekly) basis with less than a 0.99999% error rate.
Expertise doing database script Librarian work using ERWin, Toad, Oracle SQL Developer or similar tools for generating and maintaining database source code scripts, although none of these tools will scale up to within 5% of our requirements so you won't be using these tools for this position.
Stay Tuned for our Job Search Results in an upcoming post!
Just in case it is not glaringly obvious, this is a work of satire. This is a work of fiction. Names, characters, businesses, places, events, locales, and incidents are either the products of the author's imagination or used in a fictitious manner. Any resemblance to actual persons, living or dead, or actual events is purely coincidental.