Category: Editorial

  • When is it time for a new job?

    I subscribe to quite a few newsletters, and one of them is for job hunters. I have a great job, maybe the best job for me, but I like to keep in touch with what’s going on because I, well, I have job insecurity and worry about being without a job. I think this is leftover from childhood. I also want to know how to help others in finding their dream job.

    Recently there was a question asking when it was time for a new job How can you tell (for yourself) when you should be seeking new opportunities? It might not be easy to recognize for many of you. Perhaps you don’t realize there are other opportunities you might appreciate because you’re comfortable. Perhaps you’re the frog in water that’s being heated so slowly that you don’t realize how poor your current situation is for your health.

    Earlier in my career I was constantly looking for new opportunities. Whether that was within my current employer or outside, I was looking every month for other jobs, asking people what they liked about their position or employer, and regularly looking to increase my salary. I was working hard to drive my career forward in my 20s, both with opportunities to grow and more compensation.

    In my 30s, I had children. They became important, and while I was aware of opportunities, I wasn’t actively looking to move unless I found myself in a very poor situation. Even then, I tolerated a couple of very poor managers for months because I had no options, little energy to look, and felt resigned at times. I worked on my career, but lightly. At some point, I somewhat fell into owning a business (with partners) with SQL Server Central. I had good and bad jobs, high and low stress, but I didn’t do enough to stop and think about my current situation at various points in time.

    In my 40s, I found a great employer in Redgate, a company run the way I’d want to run my own company. I’ve been there 16 years, and I don’t ever want to look for a job. I still evaluate how I feel, and I appreciate the ability to log my feelings periodically in Thymometrics, which helps me decide if I’m satisfied. This is a service that lets you rate your position in many ways. I question myself, regularly, as I fill out the form and I often look at the historical trends. I measure those graphs against how I feel that day and decide if I need to make any changes in how I approach my job.

    I’m older now, approaching retirement though not anytime soon. I don’t want to look for any more jobs, and I love the one I have. Thymometrics verifies this. My job has changed over the years, evolving to better help me support Redgate’s direction. Fortunately, I’ve enjoyed those changes. However, I do always keep an eye on my friends’ jobs and am aware of other opportunities. While I don’t expect to move, I’m always lightly looking. It pays to hope for the best but prepare for the worst.

    I still touch my resume a few times a year and try to keep it up to date. I recommend you do the same.

    Steve Jones

    Listen to the podcast at Libsyn, Spotify, or iTunes.

  • Under the Bus

    I’ve had a good career in database work. I’ve had success, and I’ve had some failures, fortunately the former far outpacing the latter. In my career across many companies, the code I’ve written has tended to work well, or at least well enough. I’ve managed systems and ensured a high uptime, and solved issues quickly. I have left quite a few jobs in technology, some because I was unhappy, some for better opportunities.

    I was asked to leave one job. I disagreed with my boss, thought he was a jerk, and our CTO told me this person was more valuable than I was at that time. The CTO suggested I move on, so I did. That day.

    I’ve been a manager of both development and operations groups at different positions. I learned as a manager that I praised my staff publicly and criticized them privately. That included taking blame for issues, but passing our kudos for success. A leader is responsible for the team, and that includes accepting the failures of individuals below them. That’s what I believe.

    In the last few years, there has been a bit of a trend where managers blame individual contributors. The Equifax ex-CEO blamed a single person for not patching their servers prior to the attack. Solarwinds CEO blamed an intern for an issue with posting a password to GitHub. There are other examples, but in many cases, senior management is blaming someone far below them for a mistake.

    I know technical people sometimes make decisions that are poor, they click the wrong thing, adjust the wrong server, or make some other mistake. However, in many cases, managers know about the work their people are doing. If they don’t, then isn’t that a management failure? While a manager might not know about patches, they know patching is important. It’s a manager’s job to place a priority on patching systems if this is important, and then ensuring someone verifies patches.

    I don’t expect managers to check repos for passwords, but certainly there are tools to help detect his. I certainly get alerts about a few passwords in my test scripts posted to some repos. Again, a manager should ask that controls, checks, verifications, etc. are a part of any processes that need security.

    I know that often the paychecks of senior managers are far above those of technical staff. I know it’s easy to blame someone making $60k a year and not accepting blame as a VP being paid $400k a year. I know that manure rolls downhill, but it’s disturbing that these executives aren’t being held accountable for the mistakes of their staff. It’s up to them to ensure that staff prioritizes what’s important, security, maintenance, whatever.

    As an individual contributor, I find this behavior is a symptom of a poor culture. We’re not a team when upper management throws people under the bus. To me, it’s a sign I need to seek new employment.

    Steve Jones

    Listen to the podcast at Libsyn, Spotify, or iTunes.

  • CosmosDB APIs Inside SQL Server 2024

    CosmosDB has been a great data platform in the Azure cloud that helps companies deal with disparate types of data. The CosmosDB APIs include those for MongoDB, PostgreSQL, Cassandra, and Gremlin. These wire-level protocols let you work in a way that is compatible with those systems for storing data.

    That’s coming to SQL Server.

    For the last few years the engineers at Microsoft have been working to separate query processing from storage, and they’ve used this to build products like Hyperscale. That work is being added to SQL Server 2024, so that you’ll be able to add a separate storage engine that doesn’t use the same RDBMS/extent/page structure, but instead is optimized to let you store documents, JSON, and other structures. In addition, there will be new query processors that can run queries from your MongoDB, Cassandra, and Gremlin graph clients.

    Like CosmosDB, however, you can’t have relational data and say, MongoDB data in the same database. You’ll need a separate database, and at least initially, you won’t be able to make cross-database queries. However, you will be able to store your relational and NoSQL data inside the same instance. This will make life easier for developers, who will be able to use one server for all their data.

    Of course, this is an April Fools joke and there are no NoSQL enhancements coming to SQL Server. Not for now. I’m not even sure if SQL Server 2024 is a thing.

    Hopefully, you’re dreaming and smiling. Maybe the engineers at Microsoft are as well.

    Steve Jones

    Listen to the podcast at Libsyn, Spotify, or iTunes.

  • Database Mirroring is Back in Azure SQL Database

    Database mirroring was a cool feature in SQL Server 2005. I guess it’s still a feature, though it’s listed as deprecated in the documentation. There is still a mirroring dialog in the SSMS database properties dialog in more recent versions of SQL Server, but I don’t know if there is a good reason to use mirroring over Availability Groups.

    That’s why I was surprised to see a public preview announcement of Azure SQL Database Mirroring to Microsoft Fabric announcement. Apparently you can easily move Azure SQL Database data to Fabric and have it written to Delta Parquet tables in OneLake. No ETL, no need to do the data conversion yourself, or at least not much of an effort. I suspect you still need to understand this and do some configuration for how your Parquet files will get written.

    If you go through the documentation, it’s interesting (and annoying) to me that the docs keep saying replication. I hate when we’ve overloaded terms as mirroring and replication mean specific things in SQL Server, so I wish they would use some other term (copy, extract, ??) to describe what is happening.

    Whether this is useful to analytic workloads remains to be seen. I am curious what the people working with Fabric think of this feature. I wonder if this is useful, or if this might cause headaches or performance issues. Since this feature is in preview, I doubt anyone knows yet, but it will be interesting to see how this compares with Synapse Link and if it is more or less helpful.

    Moving data around for different purposes has always been a challenge. I know that some people might feel the costs involved in this aren’t worth it. I know a lot of technical people that would say “I could do that.” I have no idea what they costs are. but I know that a lot of people have spent a lot of hours managing ETL packages and adjusting them as schemas change and new requirements appear. I get the appeal of Synapse Link and this new Mirroring to Fabric features.

    I do wish this type of feature was more solidly built into the SQL Server instance. I suspect it will come at some point, and it’s being tested and baked in Azure first. However, I hope that if/when it comes, that the feature has good tooling and some polish to its operation. We’ve had too many features in SQL Server that are partially built, with limited tooling, and a lack of performance characteristics that many of us would desire.

    Steve Jones