March 2020 Update

by Jon Davis 18. March 2020 08:05

What's up ya'll? It's Tuesday, March 18, 2020. Everyone is on lockdown from a panic over a flu-like virus that mostly only kills old people. I'm 43, not old yet. So this is lame.

It's been a (literally) forgotten ghost town here on this blog, nobody's reading this. Except you, you weirdo. So yeah. Like I said in my last post, I just started a new job, and so I've been focusing on that. It's really interesting (I guess) how starting a job can make me so completely uninterested for so long in personal professional investment like I was doing here on this blog and what I was trying to set myself up to do. Invements in personal professional development instead become professional development investments on the job I've actually been hired to do, and while there may be some alignment, subconsciously I tell myself "don't you dare set yourself up for selfish motives that could become conflicts of interest", and so I don't.

But anyhow, yesterday I just completed the final task that I was able to contribute to without any significant skills development or rediscovery. I just looked at my available tasks list this morning, everything is either in someone else's domain or will require me to ramp up on non-proprietary tooling skills. Mostly that means Angular and React. But prior to now, what I've been working on has been all straight up server-side C# code, with zero database interaction and, I would say no user interface, but in reality it's an altogether unique kind of user interface. And that is voice and chat. I've been working on the chat bot AI system. Honestly, I've not been doing a great deal of new work, and most of the interesting stuff is actually bought, not built, but I'm definitely not complaining. Any chance to code is always a good thing. Most of the work I've been doing has been refactoring and cleanup.

And in case you're curious, the trend of refactoring I've been doing has been, first, eliminate every single instance of causation of KeyNotFoundException and NullReferenceException that the system generates. Literally sign up for the e-mail recipients list for every single exception that happens at runtime. Let no error go unnoticed, fix them as they come in. That meant 60-80 hour work weeks for a while. Second, prefer strongly typed models over generalized object dictionaries. So many of the bugs that happened in the first pass that I fixed would never have happened if the model was well defined.

But I'm getting burned out on refactoring. It's been half a year now; I've only had a couple sprints where I could actively introduce new features.

There are a couple more talking points deriving from my new job worth bringing up. The first one, I'll be brief about it: Computing is going the way of pseudo-AI and AI. By what I mean by "pseudo-AI" is, if what constitutes a "bot" is considered "AI"--a computing topic I've never really delved into--then I'm sorely disappointed, because there's nothing much to it, except maybe a lot of data that feeds into rules, a process called "machine learning". At the most simple level, then, my Outlook e-mail filter rules would constitute "AI", and that's lame. So I call it "pseudo-AI". Whatever. Anyway, the future of technology economy is more and more automation. For example, I celebrate, rather than bemoan, the introduction of kiosks at McDonald's. That just means more jobs for kiosk coders and for engineers for their setup. So be excited about cool stuff like bots and automation trends. In the case of my current workplace, the product includes support for answering the phone and actually having a decent conversation. This kind of thing can really go places.

The second talking point is, this is my first job where I've had the opportunity to work with Amazon Web Services (AWS). I've had just enough taste in my mouth to be able to sum up with great confidence my opinion on AWS, after having spent years with Azure:


  • AWS and Azure have feature parity, but only on the highest bullet-point levels
  • AWS is clunky, and many of the primary products are built on spinning up a whole clunky virtual machine (EC2 instance), most notably Beanstalk. Just modifying environment variables in Beanstalk means about 2-5 minutes of downtime while the EC2 instance shuts down and spins back up. Ridiculous.
  • It's nice that X-Ray data works its way up to CloudWatch as ServiceLens, similar to how Application Insights data works its way up to Azure Monitoring. But comparing X-Ray as AWS's supposed equivalent to Application Insights is a painful joke no one can laugh at. Better to use one of the other 500 other similar products, like New Relic, or DynaTrace. Application Insights served as both an APM and a performance metrics logging tool, but more importantly its reach in integration support goes beyond anything I've ever seen in my life, between dropping in a simple Javascript file on a front-end for tracking errors and load times and more to automatically tracking SQL Server connections and even SQL statements on the back-end. And the tooling to access the information is phenomenal; it even exports to Power BI. In my own efforts, the best I've been able to accomplish in AWS has been to combine logging to X-Ray alongside logging to ElasticSearch for redundant telemetry parity. At that point the tooling for accessing the information still remains so limited we don't really even use it all that much.
  • AWS is unreliable; ElasticSearch + kibana for example balks on dynamic index definitions with dynamic object properties and this reflects as "2 of 5 shards failed" errors with no recourse to fix it. Without having manually invoked customer service ourselves, turnaround time for it to magically resolve on its own was weeks.
  • AWS is behind on .NET support. Beanstalk released .NET Core 3.1 support on time, but Lambda services are still waiting for official support for .NET Core 3.1.
  • Unlike Microsoft, Amazon is not a software company, and it shows. Amazon is a bookseller turned A-to-Z online marketplace with physical warehousing, while AWS was just Amazon trying to capitalize on their internal IT investments.
  • But, to be fair, the evolution of AWS is not in refining existing services, but introducing new services that are actually (probably) pretty decent. Not the least of which is Kubernetes / container hosting services. I haven't had the luxury of utilizing much yet but, again, all the overall feature set is on parity with Azure at a bullet point level.
Don't get me wrong, AWS is legitimate, the suite of services is complete, and it's overall a high quality cloud. It's just not a fun experience switching to it, and no, mine is not a Microsoft-religiosity standpoint. I don't hate AWS like Linux folk hate Microsoft. What I hate is when tools are incomplete or fail. Azure has had incomplete tools and has failed, too. Just not as often, and the depth of the developer tooling and readiness is (now, recently) light years ahead of AWS. It didn't used to be. Azure went years being way behind AWS. But as of around 1997 or 1998 or so, Azure finally caught up, and got ahead. It really is quite a better cloud. 
And I miss it.
Anyway, I now have to figure out which tasks to focus on, and ramp up for. Stay safe, everyone, and be sure to lick every railing just for fun's sake. 

  Image result for lick railing

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5



Powered by BlogEngine.NET
Theme by Mads Kristensen

About the author

Jon Davis (aka "stimpy77") has been a programmer, developer, and consultant for web and Windows software solutions professionally since 1997, with experience ranging from OS and hardware support to DHTML programming to IIS/ASP web apps to Java network programming to Visual Basic applications to C# desktop apps.
Software in all forms is also his sole hobby, whether playing PC games or tinkering with programming them. "I was playing Defender on the Commodore 64," he reminisces, "when I decided at the age of 12 or so that I want to be a computer programmer when I grow up."

Jon was previously employed as a senior .NET developer at a very well-known Internet services company whom you're more likely than not to have directly done business with. However, this blog and all of have no affiliation with, and are not representative of, his former employer in any way.

Contact Me 

Tag cloud


<<  August 2020  >>

View posts in large calendar