The Full Stack DBA

  • Comments posted to this topic are about the item The Full Stack DBA

  • First of all, great post. I've also pondered this topic since I read that tweet from Erin Stellato.

    My official title is Data Architect, which aligns well with my primary responsibility in designing, building, and managing the data architecture/infrastructure. I'm also responsible for all the normal DBA functions, and additionally, I also happen to be the most senior SQL developer on the team so I do jump in on projects when needed (fairly often). Some days as the Tableau Administrator, I can be even be seen assisting the BI team with logic flows and data sources on Tableau Server. Not to mention backups, maintenance, and upgrades.

    In the first two weeks I came on board I configured the first VPN to the office. Prior to that, most of the server access was available on the public interface. I had also found some issues with security, service accounts, and DNS configuration that needed correcting and I ended up receiving Domain Admin access early on.

    After the first year, I was able to replace our outsourced "IT provider" with a competent IT partner who has taken over most of the IT responsibilities since. I'm involved less with the day-to-day IT, but I'm closely involved and leading most of the larger projects. The most recent being our disaster recovery solution and expansion into a second data center. The scope was much larger than just our data infrastructure. No documentation. Lots of applications. You can imagine.

    None of the extra stuff is technically my responsibility. My responsibility is to the infrastructure, security, and performance of the data. But, if we need to spin up an API to run some testing or a new VM created, I'd take care of it.

    I hope this answers your question Steve. We are out here. Whether I'm a "unicorn" or something else I'm not sure. Like others that responded to Erin's tweet, I am also unsure how common this is. I can imagine this is more likely in smaller companies although they usually leave out the DBA instead of IT.

  • I work in a small NHS trust in the UK. I am one of 2 developers (my colleague does front end dev for her sins, I stick to database stuff). In any single day I could be an analyst, set up the backup regime, liaise with 3rd party suppliers for DB updates and bug reporting, do SSIS development, sort automated processes that might fall over and write ad hoc management info queries. When my colleague is on leave I also update the trust intranet page and write a bit of bad c#.

    I love the variety of it. It's refreshing to work on such a wide range of jobs.

  • Majority of my time is DBA, but things need to be done, so my fingers are in VOIP, building security system, VMs, engineering software support, backups, payroll system. And occasionally I run cables.

    ...

    -- FORTRAN manual for Xerox Computers --

  • The more things change...sigh.

    "Full stack developer" = "Jack of all trades, master of none"

    I used to do our email server, our networking, our backup and disaster recovery, our computer support, our development, our database design, and DBA stuff too.

    Thank GOD the C-level folks decided to farm out the infrastructure stuff to a third party, leaving me with software design, database design, a few sysadmin duties (mainly onboarding new users) and desktop/laptop procurement. As our company grew over the years it became too much for one person to handle, KISS be damned.

    Although I will say that developers MUST understand relational database design, full stop. If you don't you get horrific messes like XML and JSON, not to mention pure EAV database designs and all the other SQL horror stories.

    Should companies realistically expect to be able to hire full stack developers? (and pay them junior developer salaries)?

    No. Hell no.

    Development is complex enough between security, front end applications, and databases, not to mention the swiss-cheese that is the web. Start mixing networking, hardware, servers, email management etc. and you're just dreaming of an IT Superman.

    Do such people exist? Perhaps a handful--in the entire WORLD. Good luck getting them to work for you.

    Having said that, and having been a (poor man's version) of that, I'll tell you this. Yes, a small company has to have somebody that can muddle their way through all of it, half-assing most things and being good at a couple. But as companies grow, you need specialists.

    Polymaths are way too rare to run a civilization on!

  • I consider myself full stack in my current role as the data architect. I championed and deployed the entire data environment within the cloud for the data science team. This entails configuring the cloud both in network and security to integrate into our existing on-prem systems on top of the normal data platform architecture such as deploying/managing the various data services (Databases, Lakes, ETL, Modeling, etc) on the back-end as well those on the front-end (Visualization). Right now, I'm developing a new front-end application (Python/Flask) to integrate Power BI embedded for a new project with that team.

    The reason for this is similar to many others. I just don't have all the resources I need to hire all of these specialized roles or the people who may work in these roles are on other teams I don't control. Thus, I can either just sit on my hands because it's not my job or just get it done because I am smart enough to do it.

  • I don't think I cover the "full" stack, but I do much of it.  I don't do the networking or user administration for our company, or work on the website, written in Angular.  But I do most everything else.  There are two developers - or were; one left and we are working on a replacement - that maintain all the systems for our company.  I did the analysis with users to build a brand new system.  I designed and built the three main databases (200 tables, 150 functions, 550 stored procedures).  I am responsible for the business logic / object model that controls access to the database.  I did the major UI design for our Windows desktop application, half the coding, and am now the sole developer on that project.  I am the sole developer on the web API.  We had a consulting company create an enterprise data warehouse project, which I now maintain and extend.  I would like to know more about web development, but I have my hands full at the moment.  Our prior web developer left, so that is the position we are trying to fill now. 
    As I say, that doesn't cover everything, but it does cover a lot.  I really like being able to see all aspects of the development process, from talking with our users to find out what is needed, designing and building the solution, delivering it (oh, yes, I do testing, QA, and deployment), and seeing the benefit to the users and company.  I've done consulting work in the past, and it was fun working on new projects all the time, but there I was doing one role over and over again.  Here I get to work in a lot of different areas, and shepherd a project from start to finish.  I prefer this kind of work.

  • Look at this from different angles, I'll start by saying that the DBA should own the database. She should should be the smartest guy in the room when it comes to SQL, stored procedures, indexes, execution plans, and SQL Server's security model. Next, the DBA should be familiar with (if not responsible for) any application that touches the database: SSIS, ETL, web services, deployment tools, etc. Even in the cloud, these code centric things still need management.

    As for pure infrastructure things like: networking, Active Directory, storage, etc.; that's outside the domain of the database. That's the aspect of our jobs that Azure and Amazon marginalize for us. Five years from now, you'll still be coding SQL, even if your organization has moved into Azure, but you won't be micro-managing storage, networking, and replication.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

  • 3 years ago I was mostly a C#, COBOL and VB6 developer with a bit of SQL experience. Then I worked on a data warehouse project for almost 3 years. Now I'm back doing C# again, except today I had to fix a SQL security problem because our DBA left last week. I also do business analysis (kind of), database design* and anything else that comes along. Could I set up/maintain an AD group? No. I know nothing about networks either. Do I think I'm a full-stack developer? No, but I'm not convinced they exist.

    * I know this is heresy to some, but at least I have been on a course with that in the title ๐Ÿ™‚

  • I think that the appropriateness of this 'title'  or position description is inversely proportional to the size of the IT organization.  Assuming that this may be OK for a small shop with one or a few servers, it is probably very inappropriate for a large IT organization to attempt to do.  Also, when entertaining a potential new position, I would caution to consider carefully if this is what you really want.  It seems to be an invitation to constant interruptions, lack of or loss of focus of attention, and the inability to hone your interests into abilities.  When I have an electrical problem, I don't want to call a plumber, and vice versa.  Thus the old title, 'jack-of-all-trades...' .  While it's good to have a broad understanding of functions, I would caution against trying to actually do them all.

    Rick
    Disaster Recovery = Backup ( Backup ( Your Backup ) )

  • In my previous job I was primarily a developer. However, I also managed our SQL Server and our Active Directory. In one location we moved to I helped pull cable through the ceiling of the building. And like you, Steve, I've made my fair share of CAT-5 cable. But I've not really done networking. Oh, I can configure a router and a modem, but that's it. I've seen the networking guys and gals do their work in my current job - I stand in awe of what they do.

    So, no, I am not nor have I ever been a "full-stack DBA".

    Kindest Regards, Rod Connect with me on LinkedIn.

  • Eric M Russell - Friday, December 21, 2018 7:26 AM

    Look at this from different angles, I'll start by saying that the DBA should own the database. She should should be the smartest guy in the room when it comes to SQL, stored procedures, indexes, execution plans, and SQL Server's security model. Next, the DBA should be familiar with (if not responsible for) any application that touches the database: SSIS, ETL, web services, deployment tools, etc. Even in the cloud, these code centric things still need management.

    As for pure infrastructure things like: networking, Active Directory, storage, etc.; that's outside the domain of the database. That's the aspect of our jobs that Azure and Amazon marginalize for us. Five years from now, you'll still be coding SQL, even if your organization has moved into Azure, but you won't be micro-managing storage, networking, and replication.

    O.....k....  'She should be the smartest guy...'  A little overboard on the PC crap there.  I think I'm confused.

    Rick
    Disaster Recovery = Backup ( Backup ( Your Backup ) )

  • I think that even with DEVOPS size of organization will often dictate how much accumulation of roles one can have.

    On my current shop and up to maybe 6 years ago DBA's would have storage and AD admin rights - for the last few years all this is gone except AD admin when doing SQL installs - and even this through a controlled login (CyberArk on our case).

    in this shop to setup a physical server we need

    • Server team - rack and connect server
    • Network team - assign server names and IP's
    • Storage team - create and assign SAN storage luns
    • Wintel/security team - Add server to AD and deal with required AD logins (server, gmsa etc)
    • DBA team - install SQL

    And project team to manage it all
    VM's are mostly automated on the items above - no SQL setup automation (YET)

    all our DBA's work exclusively as such even though some of them could and have the knowledge to do most of the above.

    As for DBA's knowing the application - kind of hard on big shops - we currently have over 200 production instances, and 400+ non prod ones, a multitude of applications and except for a very small number of the databases none of the DBA's really know how the application works. Mainly due to lack of time to even look at them.

    As for developers knowing what to do from a dba/performance point of view  ... yeah.. very few do unfortunately - work in progress though with some teams ๐Ÿ™‚

  • Hi,
    I started my carrer as a tech support staff. Then I started to have another duties like server admin, pbx admin, developer, dba, project manager, erp admin, security admin, etc.
    That background provided me the knowledge to have an accurate opinion on many areas of IT. Nowadays I my working time it is consumed by being DBA, developer and, recently data cientific. Iยดm not a Full Stack DBA, but when there is a requirement and no one is available, I can handle it,Or at least, I have the phone number of who can do it.

    Miguel.

  • Job-before-last, a Linux / PostgreSQL shop, I ended up doing everything except desktop support for our piece of the company.  Thankfully, our UI was fairly simple and the previous sysadmin was helping me out behind the scenes, but I never want to configure a Cisco ASA or go to another data center to reset a network card again. Backend dev and DB work are where I'm happiest.  

    Currently, in a Windows / SQL Server shop, I do a little admin for our Azure servers, but I'm not the primary admin for any of them.

Viewing 15 posts - 1 through 15 (of 18 total)

You must be logged in to reply to this topic. Login to reply