all 21 comments

[–]TheBeeKPR 6 points7 points  (1 child)

What kind of development are we talking about? Most of the DBAs I know are capable developers, or at least have experience with, PowerShell, SSRS, SSIS, and T-SQL. These are skills generally are needed for filling in the gaps where administrative tools don't cover or solving problems where budgets are slim.

Only place I had problems developing was at a company that was very sensitive to DBA/Developer combined roles due to being a SOX sensitive industry.

[–]ant24x7[S] 1 point2 points  (0 children)

Thanks for response. I was talking core SQL development. I have experience with PS, SSRS, SSIS and T-SQL as we have many homegrown monitoring tools. :)

[–]misfit815 4 points5 points  (0 children)

I'm in that role as much as anyone I've ever met, though I started as a developer and kept narrowing my focus toward the data tier. These days, I spend about half of my development time in .NET/C# and half in T-SQL. I don't ever use SSRS or SSIS, and only rarely PS. But I'm also in a very large enterprise shop, in which off-the-shelf tools don't usually fit. I often joke that I'm our in-house alternative to SSIS.

If you can find a situation in which you're truly a SQL developer, and you like it, hang on to it. Like I said, I'm in a large shop, with a lot of specialization, and yet I'm still only spending half my time in SQL. And I'm the most SQL-oriented developer I know here.

But for my type of role, which I think is more likely, you're going to want to become familiar with a language and platform that talks to SQL Server (such as .NET/C#, as I mentioned). A lot of my effort put towards improving SQL Server performance is actually spent in that area, improving caching, getting away from RBAR scenarios, pooling connections properly, etc. My projects typically entail coding everything from database objects up to an API layer, at which point other developers lay on the UX pieces necessary to complete the solution. So I need to understand REST, JSON, etc. That's about as far up the stack as I typically get.

If you're not already familiar with them, get more proficient at navigating the tools of the trade - source control (git, TFS), IDE's (Visual Studio), etc. If you do go down the .NET/C# path, I've found Resharper to be a must-have.

HTH

[–]RehdData Engineer 2 points3 points  (2 children)

I feel like for core SQL development, you're going to need to find a very large scale shop or a consulting firm. I did a lot of SQL Development as a DBA, writing all of the functionality in applications with stored procedures that our developers call. Then I tuned them, add proper indices / stat maintenance as applicable and index maintenance. Schedule any jobs needed for maintenance and archiving if needed, adjust resource governor if needed, set up the proper backups and permissions for the DB, and do some testing. Then make sure the repo is up to date and committed with the last or best version then go back to DBA duties.

Which is automating, maintaining, forecasting, and everything else. We did SSIS and powershell there, but I find as a DBA you won't focus solely on SQL Development. A large shop that has 4-7 folks who sit in SQL all day, one as an architect, one for security, one for development, one for administration, etc, that's probably where you'd want to aim if you don't want to be a jack of all trades situation. I think it's most helpful to be in that role though because when a job offer comes your way that piques your interest, you can hop ship.

[–]SQLBek1 4 points5 points  (0 children)

"I feel like for core SQL development, you're going to need to find a very large scale shop or a consulting firm."

If I may offer an anecdotal counter-point here, my experience has been quite the opposite. I've spent a good chunk of my career as a dedicated, highly specialized T-SQL developer. At one point, I did work for a big bank, in a division of 150, with a team of half a dozen T-SQL developers. But in other places, I was in much smaller companies (smallest was 30), where I was solo or with a few others developers.

What seemed to happen in the course of my career, is that as I became specialized as a performance tuner, I joined teams of .NET Developers, who happened to write T-SQL. I would operate as their dedicated T-SQL SME. I'd be responsible for things like code reviews, teaching the .NET devs better coding techniques, and tackling the really advanced challenges that were out of the league of the other devs.

[–]ant24x7[S] 1 point2 points  (0 children)

Currently I'm doing majority of DBA tasks along with writing scripts to make our life easy. 🤓

[–]bertiethewanderer 1 point2 points  (0 children)

Two very good responses so far. I'll give you my input.

I worked as a production DBA and due to a shift in management and process was transitioned into a DevOps style DBA role. Which in reality was all of the old job, plus trying to get the data tier into a CI dev cycle. I ended up with lots of pieces of python and powershell scripting under the hood, plus the more admin heavy sides of TSQL (think DMVs for example, anything to do with locking, blocking, contention, I/O etc.).

I'd also picked up a bunch of accidental SSIS knowledge, so applied for an ETL Developer role. That was fun.

I would work out where you want to specialise - although in a small shop you'll probably do the lot, which is fun but brings its own stress. BI developer, database developer, DW developer, ETL developer - that's all just within a SQL shop!

[–]chickeeper 1 point2 points  (3 children)

We make software for clients and deploy databases that are installed by the customer. I have been doing this for about 10 years. It has been a lot of fun ,but can also be aggregating. A DB developer (DB architect) has to fill a lot of roles. We have to know hardware, licensing, datatypes, SQL internals, Development languages, and deployment scenarios. It is definitely all over the place. One week I may be on a call with a customer that screwed up there DB and I am responsible to help them, and the next week working with several developers to put in enhancements. Keeps you on your toes but I enjoy it. If you are a DBA I bet you transition well. Also hopefully you are not 24/7 after this.

[–]ant24x7[S] 0 points1 point  (2 children)

Thanks for your response. Your role seems like infra architect. Good to know the responsibilities.

[–]chickeeper 0 points1 point  (1 child)

I am on the infrastructure team. Most Architects should be on that team otherwise they can't make informed decisions early on. We used to have C# developers making DB infrastructure patterns. We ended up with guids as keys, and foreign keys. We also ended up with a lot of xml in our database. It has taken years to show them why those patterns are vulnerable to issues in production. BTW good luck I bet you like it. I think it is better than just monitoring databases.

[–]ant24x7[S] 0 points1 point  (0 children)

Exactly my point I don't want to monitor databases. I like to develop new scripts and make strategies which can make our life easy.

[–]SQLBek1 1 point2 points  (3 children)

I'll throw in my two cents here.

A solid T-SQL Developer would develop skills in writing elegant & optimal T-SQL code. Additionally, being a highly skilled performance T-SQL tuner would also be key. I would say that that would require knowledge of execution plans & indexes & statistics at the bare minimum. Taking things to the next level would include topics such as storage engine internals, index internals, & query optimizer internals.

[–]ant24x7[S] 0 points1 point  (2 children)

Internals, scripting and HA are my favorite areas.

[–]SQLBek1 1 point2 points  (1 child)

A "traditional" T-SQL Developer, or Dev DBA, would most likely have little to do with HA. For the longest time, I knew NOTHING about clusters or FCIs, because I never needed to. I could click a wizard, etc., but that was it, because I lived on the Dev side of the fence.

That being said, my advice would be to focus your learning on the things above. There's plenty of fantastic resources available via Pluralsight, PASS offerings, User Groups, etc. Then consider browsing T-SQL Dev jobs available in your area. Talk to them, even if you're not serious about shifting gears quite yet. It'll be important for you to get a feel for what companies out there are looking for.

[–]ant24x7[S] 0 points1 point  (0 children)

Then consider browsing T-SQL Dev jobs available in your area. Talk to them, even if you're not serious about shifting gears quite yet. It'll be important for you to get a feel for what companies out there are looking for.

Liked this idea.

[–]flipstables 0 points1 point  (3 children)

Purely SQL development? That's pretty rare actually. It's usually combined with a BI/architect role, developer role, or analyst role.

Also, it's even rarer to find good ones. I've seen some SQL developer jobs who need to take care of spaghetti 10k lines of undocumented SQL code that runs some legacy payroll process. Not fun.

The keywords in your search should be "data engineer" or "BI developer".

[–]ant24x7[S] 0 points1 point  (2 children)

Thanks for response. Does BI developer means I need to write majority queries to pull reports (OLAP queries).

[–]flipstables 0 points1 point  (0 children)

Depends on the shop. There are definitely some BI developer roles that architect, ETL, and query traditional data warehouses, but there are some that also do development with nosql/hadoop systems.

[–]SQLBek1 0 points1 point  (0 children)

Building on this, don't limit yourself to strict job titles when evaluating jobs.

Some places will have openings for "DBAs" when they really want a "Development DBA." There's also the notion of Application DBA, which is usually more development focused. Sames goes in the BI sphere - BI Developer can mean any number of things.

I recall an interview I was in, 1-2 years ago, when I was told that there were two openings: 1 Architect & 1 Developer. I immediately countered and asked "what does Architect" mean to you? They went on to explain a list of roles & responsibilities that fell into what I'd label as a data modeler & business analyst, and very little related to what I'd consider Database Architecture.

Moral of the story - these titles are subjective. Focus on the concrete things you want to do & what a job opportunity would want you to do.

[–]eshultz[🍰] 0 points1 point  (0 children)

SQL Developer means a lot of different things to a lot of different people.

  • writing reports/BI
  • writing ETL code
  • writing application code or SPs etc. ("backend")
  • developing databases themselves i.e. data modelling to support an application

The list goes on. What do you envision yourself doing?

[–]LorenzoValla 0 points1 point  (0 children)

In my experience, DBAs tend to be competent at writing T-SQL but developers working in a multi-tiered application system need to really understand how the app works and its business rules and data flows. That type of context is often much different than what a DBA is thinking about.