This past Friday night, I made the trek down to the Improving Houston office for a Houston Java Users Group meeting. If you say I’m not a Java developer, I’ll say you are correct. The topic tonight peeked my interest since this is something that I’ve been thinking about lately. It was Beyond Senior Developer: The Next Steps For Your Technical Career by Bruno Souza. If you are a senior developer trying to figure out where to go next in your career, this talk is worth your time (even if you aren’t a Java developer).
If you’re looking to start taking Azure certification exams, this is a good first one to do to get a feel for how the exam process works, etc.
So what’s next? Given that I’m on the bench currently and I have more time to dedicate to prepping for another certification; AWS Certified Cloud Practitioner. I’ll have to take a deeper look into what that exam entails on Monday.
By themselves, no bullet point covers all the bases, rather each one provides a slightly different perspective on the exam. I do want to make sure I call out John Savill’s Technical Training YouTube channel for the excellent video he put together. The video is almost 3 hours long and it looks like he filmed it in a single take. Respect.
If you’ve been paying attention to LinkedIn, you’ve probably noticed that I am looking for a new job. If you are hiring and you would like to talk, shoot me an email.
When I get this new job and I have some income, I’m going to update my licenses for the following Linqpad and NCrunch.
I love this app. I first used this back during my tenure at Logica when we were working with StreamInsight. It’s a good app to use to be able to quickly test out chunks of C#, VB.NET, and F# code. The app is extensible so you can download other drivers that let you hook up to other SQL/NoSQL databases. Really cool for learning/prototyping code. Check out the website for more information: https://www.linqpad.net.
NCrunch is an automated concurrent testing for Visual Studio. What that means in English is that you can configure it to run your unit tests as you are typing your code. You can configure it to run the unit tests that are impacted by the changes you make so you aren’t running the entire suite of unit tests. This is very handy, especially if you have good code coverage. It even collects code coverage numbers and performance metrics. More information can be found on the website: https://www.ncrunch.net.
I have a job change coming up and I thought it would be a good idea to do an update to New High Score (update)! and New High Score! posts. Since those 2 posts I’ve had a couple work items that required updates to that monster class. Here is what the metrics look like now.
Depth of Inheritance
Lines of Source Code
Code metrics covering the class in aggregate.
Depth of Inheritance
Lines of Source Code
Code metrics covering the 3 longest methods in the class.
I’m a big believer in leaving a code base better than you found it. I had a couple work items that required me to go in and refactor this monster class a bit. As a developer I feel a lot more comfortable making these kinds of changes (i.e. Strangler Fig design pattern) when I have the proper tools such as JetBrains ReSharper. The payoff for this change was that it allowed me to write unit tests to cover the part of the class that I needed to complete the work items. When you have a code base that is this convoluted, it’s nice to have a series of unit tests to proof that the changes you made to the code base work. This came in handy in a discussion with a QA guy. I was able to walk him through each one of the tests I had written. Turns out the issue was in a basic understanding of the work item the way it was written. However, my code worked correctly in the end and I could prove it.
I wasn’t the only one working on this code. There were at least 2 or 3 teams making changes to this code.
I came across an interesting article today. It’s called Why Older People Struggle In Programming Jobs written by Adam Nathaniel Davis. There are several sections to this article around dealing with office politics, tech churn, fanboys, and the cookie-cutter-ing of software.
One of the most soul-sucking trends in dev over the last decade-plus has been the constant effort to reduce programming to some sort of assembly line kinda process. Although I can understand the desire to refine a complex process into a simpler one, the end result of these efforts is that the programmers often end up being treated like… assembly line workers.
Adam Nathaniel Davis
This quote spoke to me because a few of my last few jobs have felt like this. It might have more to do with joining a team while a project is in flight as opposed to getting onboard before the project starts. When you come on to a team with a project already running, you are busy trying to learn the system that has been built, not make any breaking changes, and still deliver value for the client.
There are a bunch more interesting tidbits in this article and I think it’s definitely worth the time to give it a read.
Pretty good idea isn’t it? Why should we stop there?
When you are looking for a job, you give the potential employer a lot of information about who you are (SSN, education, marital status, background check, credit check, and any information they can glean from the interviews). There is a smaller amount of information coming back the other way, specifically about who your manager is. Normally, you hit the high points in the interview and then “stumble” over their intricacies while on the job. Do you ever wish your manager came with a README?
Now they can! Enter https://managerreadme.com/. I had a manager who included a link to his README in a batch of onboarding documentation. He covered several topics:
My Commitments to You
My Expectations of You
Did it tell me everything I need to know to work with this person? No, but what a great way to help set expectations for new people on a software development team.
If you think this is a good idea, send your boss a link to https://managerreadme.com/ and tell them create a README to help your future teammates with their on-boarding.