January 11

Looking Forward in 2025…

At the tailend of 2024, I was asked to put together an "engineer development plan" for my employer. In that plan I had put down a path of certifications to pursue in 2025. Originally, it was AWS AI Practitioner (optional), AWS Developer Associate, and AWS Solution Architect Associate. All of that between January 2025 and December 2025.

At the time in January 2025, I was toying to get the Azure AI Fundamentals, the AWS AI Practitioner, the AWS Developer Associate, and then the AWS Solutions Architect Associate certifications in that order. I picked up the Azure AI Fundamentals certification. It was easy enough with having to find drivers for the microphone on the laptop I was using and the very loud conference call that kicked off next door. The lesson to be learned here is to do the exams later in the evening when the bulk of people have gone home.

I got the Azure AI Fundamentals certification on January 8th and then my manager mentioned to me that I should plug a "perceived skill gap" between my current skillsets and where my employer is apparently wanting to go. Apparently, there is some work coming in the future around machine learning. Microsoft's certification that covers machine learning is Azure Data Scientist Associate. It's weird that it's not an "Expert" level certification because the exam for that is DP-100. The Cybersecurity Architect Expert is SC-100 and that's an Expert level certification.

I'm going to call an audible and go after the Azure Data Scientist certification and then after that get back on the AWS plan I outlined towards the beginning of this blog. Let's talk timing on when I'll get this certification. I think (given the current conditions at work which are subject to change), that it is reasonable to expect to pick up this certification sometime between February 1, 2025 and February 15, 2025. If I feel that I'm ready for it before then, I won't have a problem taking it earlier. If I get the certification earlier, that'll be lagniappe.

...and here we go!

December 1

Advent of Code 2024

It's that time of year again. That's right it's Christmas time and that means...Advent of Code!

Why am I doing Advent of Code this year?

  1. I'm trying to learn Python better. This is the perfect excuse.
  2. My employer, BJSS, is a sponsor again this year.

Language + Tech Stack

In previous years, I've done AoC with .NET/C#, but this year I will be using Python. While an IDE is not needed for Python, I've decided to use JetBrains PyCharm. Check it out if you haven't seen it. I'm still learning the shortcuts, which reminds me to print out the shortcuts. I like using unit testing to help verify that my code works and for that I'll be using pytest. I've been using NCrunch as my .NET continuous test runner but I'll have to use something else for Python; pytest-watch.

Source Control

Git/GitHub is my source control of choice. I added a CI/CD pipeline to validate the code once it's been pushed to the master branch.

Workflow

  1. Setup the code for the puzzle of the day (i.e. add the boilerplate code, but try to keep the amount down)
  2. Read the prompt for part 1.
  3. Start writing code to get the example working for part 1.
  4. Once the code is running with the example, run it against the actual input.
  5. Submit the actual output value.
  6. If the answer is incorrect, rework the code and go to step 4.
  7. If the answer is correct, update the expected value for the part 1 test so that it's green.
  8. Read the prompt for part 2.
  9. Start writing code to the example working for part 2.
  10. Once the code is running with the example, run it against the actual input.
  11. Submit the actual output value.
  12. If the answer is incorrect, rework the code and go to step 10.
  13. If the answer is correct, update the expected value for the part 2 test so that it's green.
  14. Commit the puzzle as is to Git.
  15. Refactor the code til it looks presentable to the public and/or resolve any perf issues.
  16. Commit the refactored code to Git.
  17. Done.

Where can I see your progress?

You can see my progress on my GitHub repo.

Category: .NET, Advent of Code, BJSS, C#, Python | Comments Off on Advent of Code 2024
September 21

gRPC + .NET: Lessons from the Trenches Retrospective

Now that I've had a chance to slow down a bit let's do some creative writing. Let's talk about the "gRPC + .NET: Lessons from the Trenches" talk I gave at the North Houston .NET User Group. As I said previously, the talk was received well and I was really happy about that.

The inspiration or the idea to talk about gRPC came from the work I was doing at a large oil & gas company located in the Energy Corridor in Houston, Texas. My stint on the project lasted about 20 months.

This was actually the 3rd time I've given the talk. The first time was for an internal BJSS event in April of 2024. The second was at the Houston .NET User Group back in June 2024. The neat thing about taking a talk from scratch all the way through several iterations is how the presentation "feels". You should find potholes as you go and make notes to double back to correct and/or add to them.

The intent with the talk was to answer the following questions:

  • What is gRPC?
  • Can you give some evidence that shows that gRPC out-performs REST API?
  • Have you ever used gRPC on a real project?
  • What were some of the issues/problems you encountered and how did you work around them?
  • When should you use gRPC?
  • When should you NOT use gRPC?

I feel like when I got to the 3rd iteration of the talk I was answering all those questions completely and coherently. Including the benchmarks in this version of the talk was a good addition and I'll credit Daniel Wright, Principal Technologist @ BJSS Houston with the idea for that one.

I was surprised that the audience this time around had more experience with gRPC than I was expecting. This lead to alot of good questions and some leading questions that came up right before I answered them on the next slide. The talk started to take on more of a conversation kind of feel than a lecture.

While I did have fun putting this talk together and giving it, I don't think I'm going to hang up my developers hat yet. I'm sure there is still a project out there that needs my help! Now it's time to find another topic to talk about and then probably re-do the circuit next year.

Category: .NET, BJSS, C#, gRPC | Comments Off on gRPC + .NET: Lessons from the Trenches Retrospective
September 20

gRPC + .NET: Lessons from the Trenches Powerpoint Slide Deck

Hey! If you were one of the people who came out to the September 2024 North Houston .NET User Group meeting tonight...thank you! You all were a great audience and I loved the interaction.

As promised, here is a copy of my Powerpoint slide deck (gRPC + .NET: Lessons From the Trenches). Feel free to ask questions if you still have any.

Have a suggestion for another talk I should do? Let me know and if there is enough there I can put one together.

Category: .NET, ASP.NET, ASP.NET Core, C#, gRPC | Comments Off on gRPC + .NET: Lessons from the Trenches Powerpoint Slide Deck
September 11

How to Host a gRPC Service With an Azure App Service (as of 9/10/2024 anyway…)

I'm giving a talk on gRPC next week and I wanted to add more content around some gRPC benchmarks. The recent work I was doing for a client with gRPC was hosted in containers and hosted in AWS. This worked well and we had minimal issues once we got it up and running. For the benchmarks I'm looking to run, I just needed to host the gRPC service in an Azure App Service. Now that I found the correct documentation, this is a piece of cake and I'd like to point it out to anybody else who might be looking for this information in the future.

This is the documentation for deploying a gRPC app on an Azure App Service:

I can confirm that this will also work for .NET 8. It was not working for .NET 9 as of 9/11/2024. I'd expect that to get fixed in the near future.

Category: .NET, ASP.NET, ASP.NET Core, Azure, C#, gRPC | Comments Off on How to Host a gRPC Service With an Azure App Service (as of 9/10/2024 anyway…)
August 6

H2 2024 Update

Well...we're alittle over 1 month into the second half of 2024. It's been a bizarre July filled with a hurricane, a vacation, and some unexpected twists and turns.

Let's go over the TODO list of the things that I know I need to do.

  • Take and pass the GitHub Foundations exam (holdover from H1 2024)
  • Renew Information Protection and Compliance Administrator Associate (< 9/28/2024) - Completed 8/6/2024
  • Renew Identity and Access Administrator Associate (< 10/9/2024) - Completed 8/7/2024
  • Renew Security Operations Analyst Associate (< 10/28/2024) - Completed 8/8/2024
  • Renew Cybersecurity Architect Expert (< 11/21/2024) - Completed 8/9/2024
  • Give gRPC + .NET: Lessons from the Trenches talk to NHDNUG in September 2024
  • Attend HDNUG meetings
  • Attend NHDNUG meetings
  • Attend HAUG meetings
  • Attend Clear Measure Architect Forums
  • brainstorm ideas for another talk to give in 2025 (maybe with more of a Azure-cloud flavor?)

And then the areas that still need more clarification:

  • Decide on a cert path to go down
    • GitHub - Actions, Advanced Security, Administration
    • Azure AI - AI-900, AI-102
    • AWS - AI Practitioner, Solutions Architect Associate, Developer, DevOps Engineer, Solutions Architect Professional

That's all I've got so far. I still need to have some conversations with people at work to figure out what I need to prioritize with respect to my employer. I'll provide an update when I have one.

Category: .NET, Azure, Career, Certifications | Comments Off on H2 2024 Update
May 18

Penny-Wise or Pound-Foolish?

When I mention using "Azure Virtual Desktop" as your daily driver for software development work, what is your reaction?

If you are a CISO or another cybersecurity professional, you like it because of the lower management overhead (hardware and software), enhanced security features, consistency between AVD instances/images, and the additional help with compliance it gives you. I would also hope this makes your job easier and improves your life at work.

If you are an experienced software engineer/developer who uses a bunch of software-based tools (i.e. Visual Studio, VS Code, NCrunch, LinqPad, JetBrains ReSharper, JetBrains dotCover, etc) to develop solutions, you are probably rolling your eyes right now. Your computing needs/wants are higher than someone who is slinging PowerPoint decks and Excel spreadsheets all day.

Sure, you can knock someone for using more tools to get the job done and tell all the "Back in my day..." stories you want. But if it speeds up their delivery, improves the quality of their code, and makes them feel better and less aggravated at the end of every working day, this is going to be an absolute win for the company in the end.

I don't understand for the life of me, why somebody would make the blanket decision that all contractors at the company cannot have a company provided computer and must use AVD. Then on the AVD instance they do get, the most RAM they can have out of the gate is 16GB. This might make sense for the contractors who spend most of their days slinging PowerPoint decks, Excel spreadsheets, and/or working with web-based apps where most of the compute is done on the server. But what about the software engineer who is running a bunch of tools that need more system resources to run smoother, with less aggravation and lag? This constant lag and waiting for applications is enough to pull you out of "Flow". As a software engineer, I love the State of Flow that you can get into while working. It's very calming and makes me feel amazing after a long stretch when I can turn around and see how much work I've done. Why would you want to put yourself in that environment where you can't get into that state for any great length of time?

Anyway, I feel like if you want a good job done right, then give the people you have working for you what they need. You don't want to give them phyisical hardware? Fine then give'em the 32GB or more of RAM on their AVD instance and let them do their thing. This shouldn't be rocket surgery.

What do you think? Is it worth it to provide software engineers with the resources they need to do a job quicker and with less pain even if it might be alittle more expensive or would you rather them do the job slower with more aggravation for cheaper? Penny-wise or pound-foolish?

Category: Rants | Comments Off on Penny-Wise or Pound-Foolish?
April 28

Q1 2024 Update

Let's go over the things that I have done in Q1 2024.

Certifications

  • Renew Azure Data Engineer Associate - Completed 1/14/2024
  • Renew Azure Security Engineer Associate - Completed 1/15/2024
  • Renew Azure Solutions Architect Expert - Completed 1/16/2024
  • Renew Azure Developer Associate - Completed 1/17/2024
  • Renew Azure Cosmos DB Developer Specialty - Completed 1/18/2024
  • Renew DevOps Engineer Expert - Completed 1/19/2024
  • Acquire Azure Administrator Associate - Completed 2/23/2024

Talks

I was planning on just 1 talk this quarter, but BJSS (my employer), had other ideas. I gave a short talk as part of the 1st BJSS External Tech Forum. This talk covered some of the particulars of how we did at CodeLaunch including drafting a company, the hackathon, and the big event itself. I thought it went off well.

Events

We did CodeLaunch again this year. Unfortunately, we were eliminated in the first round. However, we picked a good company (Glydr) and had alot of fun working with them.

What were my misses?

  • Take and pass the GitHub Foundations exam
  • Give talk on gRPC + .NET to the BJSS Houston Tech Forum

I think the GitHub Foundations exam should be easy to prep for so I'll bump that to one of the higher priority items. The talk on gRPC + .NET I ended up giving on 4/25/2024. It was still late though. I've put in to give the talk to the Houston .NET User Group as well as the North Houston .NET Group. I'll post more about that here when those get scheduled.

That's all I've got for now. I'll post another update at the end of Q2. Back to work!

Category: Azure, BJSS, Career, Certifications | Comments Off on Q1 2024 Update
April 1

CodeLaunch

This came about after the start of the year so it wasn't part of The Plan™. I ended up giving a quick talk over BJSS's participitation in CodeLaunch for BJSS Houston's first Tech Forum. Anyway, I thought the talk went well. Here is the link to the slide deck I put together for CodeLaunch Houston 2024 - EXT Tech Forum. Enjoy!

Oh! If you have any questions or comments, let me know.

Category: BJSS | Comments Off on CodeLaunch
January 12

Looking ahead to 2024…

I think I'm going to take an approach where I aim to do a project every month of 2024. It can be a certification, a talk, or an event. I think this approach gives me something that I can commit to doing and provide a flexible enough deadline to be able to get it done even with the rest of life happening around me. I have "projects" scheduled for every month in the first half of the year. I think when I get to June I'll stop, take a breath, and then plan out the remainder of 2024.

As far as BJSS work goes for 2024, I'm expecting to be on the same project throughout 2024. This will be good because I won't have the stress of having to change clients or do any ramping up for newer projects. This should also free up some time so I can work on other things too.

I also need to make an effort to post on this blog more about tech topics. Got any ideas?

2024

  • January 2024
    • Take and pass the AZ-104 exam
    • Take and pass the GitHub Foundations exam
  • February 2024
    • CodeLaunch 2024
  • March 2024
    • Give talk on gRPC + .NET to the BJSS Houston Tech Forum
  • April 2024
    • Give talk on gRPC + .NET to the Houston .NET User Group
    • Referee at the 2024 USA Powerlifting Collegiate National Championships
    • Take Cat II referee exam/practical
  • May 2024
    • Give talk on gRPC + .NET to the North Houston .NET User Group
  • June 2024
    • Run the USA Powerlifting Summer Power Fest with Mike Hafenbrack
  • December 2024
    • Participate in the Advent of Code 2024 (gotta get more BJSS Houston folks involved)

Certifications (New)

Here are the certification exams which I am prepping for right now. I was planning to have the AZ-104 taken and passed in 2023, but for reasons, that didn't happen. I passed the equivalent exam a few years ago while taking exams for the Azure Solutions Architect, so this is a "completitionist" task. I'll get it though. More labs, more practice exam questions, more reading...

  • Azure Administrator Associate (January 2024)
  • GitHub Foundations (January 2024)

Here is a list of certifications I could take this year. I don't anticipate getting the bulk of them, but I need a goal for beyond June 2024.

  • GitHub Advanced Security
  • GitHub Administration
  • GitHub Actions
  • AWS Developer Associate
  • AWS Solutions Architect Associate
  • AWS Data Engineer Associate
  • AWS SysOps Administrator Associate

Certifications (Renewals)

Here's a list of all the certifications I need to renew this year.

  • Renew Azure Data Engineer Associate (< 1/20/2024) - Completed 1/14/2024
  • Renew Azure Security Engineer Associate (< 2/23/3024) - Completed 1/15/2024
  • Renew Azure Solutions Architect Expert (< 3/3/2024) - Completed 1/16/2024
  • Renew Azure Developer Associate (< 4/15/2024) - Completed 1/17/2024
  • Renew Azure Cosmos DB Developer Specialty (< 4/30/2024) - Completed 1/18/2024
  • Renew DevOps Engineer Expert (< 6/15/2024) - Completed 1/19/2024
  • Renew Information Protection and Compliance Administrator Associate (< 9/28/2024)
  • Renew Identity and Access Administrator Associate (< 10/9/2024)
  • Renew Security Operations Analyst Associate (< 10/28/2024)
  • Cybersecurity Architect Expert (< 11/21/2024)

...and that's what I've got planned for 2024. I'll have to revisit this post in December 2024. I hope I get a bunch done.

Category: AWS, Azure, Career, Certifications, Certifications | Comments Off on Looking ahead to 2024…