Less Junior Staff

As I’ve been working with some AI (Artificial Intelligence) technologies, what I’ve often found is that they produce junior-level code. The code I’d expect from someone early in their career or inexperienced in a particular area. That is code that likely works, but isn’t efficient or clean or perhaps incomplete in some way.

I’m sure AI technologies will improve, and we’ll be able to train them better for our environment. Just like we train junior developers to be better. However, what does that mean for junior people across the next decade? I ran across an interesting post on the death of the junior developer, which speculates we might have a problem as an industry.

The post references an article from Gene Kim, where a law firm sees a similar problem with their junior people, who are associates. That position might be equivalent to the junior developer in software. Someone with more experience and knowledge often reviews work and helps shape it, even though the junior person does the work. With AI, however, we might not need the junior person. Instead, the AI produces work the senior person has to review. Finding issues with associate work is a lot like finding hallucination problems in AI responses.

The same could be said of coding. There is plenty of poorly written code, but if senior people become good at writing prompts and getting the same code back that a junior developer would write, then how many junior people do we need? Arguably less, though you might still need a few. Or you might think that you need all the junior people and you’ll get 10x more work done, clearing your backlog. Certainly, I know most developers, DBAs, and other IT people have a large backlog of problems.

However, the problem with junior people using LLM (large language model) AIs and getting more done is that they might generate a lot more bad code, so much that your senior people can’t find the time to review the code and you end up with systems that contain even more technical debt than you have today. Perhaps we even find systems that don’t perform well enough for regular use or create constant issues that your developers try to fix with AI, which might not work. I can certainly see things deteriorating rapidly.

There’s a great quote in the Gene Kim piece: “I believe this furthers the case that AI helps the experienced people far more than inexperienced people — the seniors more than the juniors.”

I’m starting to think that might be the case. Senior people are going to become very productive, and very valuable. Junior people are going to struggle, and while they’ll get work done, the quality will vary. Maybe that’s good, or maybe we will start to see a rapid divergence of not only productivity but salaries. If you can hire a senior person to produce better code at the same rate as your 5 junior people, maybe you’ll want to pay that senior person $200k a year and reduce junior rates to $45k a year.

I don’t know that we’ll see rapid changes, as many organizations are slow to alter the way they hire, code, or structure their staff. However, as there is success by others, especially when it’s touted in places like the ETLS, I can see other managers being influenced. That will filter over time to those who hire to pick the productive, senior-level people who can showcase some code skills in an interview. Craft a prompt to solve a problem, get some code back, refine it, explain where and why you’d change your prompt or use parts of the code, and we might see the AI-capable people getting hired quickly, and for fantastic compensation.

I don’t know that I think this reduces a lot of junior staff, mostly because of organizational inertia, but I do think that learning to be better at your craft and learning to use AI is likely to increase your future earnings.

Steve Jones

Posted in Editorial | Tagged | Comments Off on Less Junior Staff

Creating a Synapse Workspace

As part of my job, I needed to research how a few things work with Synapse and Fabric. The latter includes the former, mostly. I decided to setup a workspace and a do some experimentation.

My first stop was the Stairway to Synapse Analytics. I started with Level 1, since I needed to create something.

In the portal, I created a new Synapse Analytics resource. I won’t go into details, but basically create a new resource and search. Read the article to see how this works. From there, I used a resource group I had for work stuff. I also had to create a new Data Lake Storage Gen2 account. I didn’t bother with the Managed Resource Group.

2024- 08_ 0039

I added a user account and password and then clicked Create. I went to the summary page, where I could see the small cost for serverless. I clicked “Create” again to start the deployment.

2024- 08_ 0041

The deployment failed.

2024- 08_ 0042

I was leaning towards this not being helpful, but I went into the details of the error message and found something interesting. My subscription couldn’t deploy in this region (westeurope).

2024- 08_ 0048

OK, go back, recreate the resource in UKSouth. That worked fine and I saw my resources.

2024- 08_ 0046

At this point, I had a resource.

Adding Data

The next step for me was to add some data. I grabbed a few csv files and uploaded them to my storage account. Lots of querying in Synapse is through external tables to flat files, so I picked some files I can query.

2024- 08_ 0049

Once these were uploaded, I was next interested to see if I could query this data. In my main Synapse resource, I see some endpoints.

2024- 08_ 0050

I copied the serverless one and then opened SSMS. I put this, my user and pwd, and got connected. I was hoping that @@Version would tell me I was connected to Synapse, but I got the same results I get some Azure SQL Database, albeit with a different timestamp. However, ServerProperty() helps.

2024- 08_ 0052

That works, what about my data? Let’s try a query from Level 2.

I’ll take this query and run it. I’ve adjusted this from the values in Level 2, which actually uses the Synapse Workspace explorer online.

–retrieve data from csv file

SELECT
TOP 100 *
FROM
OPENROWSET(
BULK 'https://synapsesqlprompt.blob.core.windows.net/sqlpromptfs/solar_2024_01.csv',
FORMAT = 'CSV',
        HEADER_ROW = TRUE,
        PARSER_VERSION = '2.0'
    )
WITH (
    [Time]  DATE,
    [System Production (Wh)] VARCHAR (100)
    ) AS [result]

It fails.

2024- 08_ 0053

Hmmm, let’s try that in the browser. Here it works.

2024- 08_ 0054

The error is with a credential.

There is a quickstart online, and that query works. However, there is a note in the query that I need a credential if my file is protected.

2024- 08_ 0055

The article had this link and used the sample code to create a credential:

CREATE CREDENTIAL [https://synapsesqlprompt.blob.core.windows.net/sqlpromptfs]
WITH IDENTITY='SHARED ACCESS SIGNATURE'
, SECRET = '';
GO

Now I can run my original query and it works.

2024- 08_ 0056

That was a pretty cool exercise for me to get started. In less than 30 minutes I was able to create a Synapse workspace, add some data, and query it.

Now to learn a bit more about how this works, and to use Flyway to deploy some objects.

Posted in Blog | Tagged , , | Comments Off on Creating a Synapse Workspace

One Month with the Dell Latitude 7450

It was just over a month ago that I got a Dell Latitude 7450 from our corporate IT group. It wasn’t my first choice, but as Redgate grows, they’re trying to be more secure and standard. I didn’t have a good reason to not try it, to I agreed to give it a try. My boss said if it was a problem, we’d get an exception and I’d choose another one. I had hoped for another HP Spectre, but this really is just a toaster to me. I need it to just work.

The Design

This is a bit heaver than my old Spectre, but also larger. It also has more ports.

I got the laptop, so it doesn’t fold over into a book or tablet or tent. I had thought that might be useful at times, but in 8 years of two Spectre versions that opened past 10 degrees, I think I’ve done that 5 times.

The screen is nice and works well for me. I like that I have both USB C and USB B ports on the laptop. I wish I had one of each on each side, but I have 2 Cs on the left and 2 Bs on the right. It’s a very minor gripe.

I do like I have an HDMI port built in, which is something my Spectre was missing. This means I can take something else out of my travel kit.

I got this with 32GB of RAM, which is probably a good reason why Windows 11 runs smoothly here. I also got a 1TB drive, which is overkill. I had a 512 in the last machine and after 5 years, I still had space.

The keyboard is OK, fairly standard, backlit, and responds well. The trackpad is large, and seems to work well with the left/right clicks.

The touchscreen is good and it also works with a pen, and I got an Active one from Amazon that I’ve used in whiteboard sessions with customers.

Annoyances

The big thing was the trackpad for me. It is a little sensitive and if a finder or hand brushes it, I get some weird actions. Mostly I do something the causes windows to minimize, which is really annoying. I’ve tried tuning down some of the actions, but I need to do more. It doesn’t cause too many problems, but enough that it’s on my mind.

The Home and End keys moved to the top row. They were on the side of my old machine, and I was used to those. I still can’t quite hit home and end without looking, or without hitting insert. I also lost my page up/down keys as well. I can use Funtion+up arrow (or down), but that’s not something I think about.

Concerns

I’ve had 2 blue screens coming out of a closed machine in a month. The system was unresponsive once and when I tried to CTRL+ALT+DEL it blue screened after a few minutes.

I’m keeping an eye on it. This might be my machine or this model, but if I get a few more, I might need to replace it.

Overall

Overall I learned that I don’t really care anymore about a laptop. It’s a tool, and I need it to work, but I’m not that wedded to the hardware. They keyboard matters to me, but of a bunch I tested, they were all find enough. Small differences, but overall they worked.

Other than that, this thing works well and runs fine. I still think some of the Win11 stuff that changed wasn’t an improvement and I need to figure out if I can turn some things off, but it works well.

I’d get another one of these without complaints. Assuming the blue screens stop.

Posted in Blog | Tagged , | Comments Off on One Month with the Dell Latitude 7450

Your Computer Science Education

I know a lot of people in this business do not have computer science degrees. While some do, I suspect it’s a minority. I’m certainly curious, so if you want to share your education experience in a comment, tell me if you have a degree and what the focus was, as well as answer a few other questions.

At DevOps Days in Minneapolis recently, professors Fox and Sen from Macalester College talked about their computer science curriculum for growing the next generation of professionals. Along the way, they also asked the audience these questions:

  • what were you required to learn?
  • what courses were key?
  • what topics were the focus?
  • what was the teaching style?
  • what was missing?

While these are good questions for any curriculum, these are interesting points to reflect on for any sort of learning. If you learned about technology in the military, on the job, or by yourself, what did others (or you) think was important and required? What did you feel was left out of your learning?

Of my small group of 4 that chatted about this, only one of us had a CS degree. I started in CS, but I actually have an economics degree. I switched to business, sensing more opportunity in the 80s there. However, I’ve continued to learn, even taking some classes post-graduation, that helped me learn more about computing.

It was an interesting look at a modern CS major, with lots of comments from the audience. The professors left us with their questions about how to look to the future, address AI, and even if they should teach an operating systems course, something both feel is missing from Computer Science at their college.

I think computer science is important for the world to advance how we build systems, but a lot of the deep theory on topics isn’t something that many of us need to learn. I would like to see a software engineering major come about that emphasizes more of the knowledge we’ve learned about building software, with emphasis on version control techniques, software design architectures, and process flows. While DevOps has been amazing, a lot of that knowledge could be used to better teach people how to build software in different ways. Distributed systems, database theory, performance measurement, and even different ways of managing code are things that need deep treatment, not just a module in another course.

Let me know today what you think of your education in computers.

Steve Jones

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

Note, podcasts are only available for a limited time online.

Posted in Editorial | Tagged | 1 Comment