Posts

Showing posts with the label Software

The Best (and Worst) Code I Ever Wrote

As a software engineer, I've written a lot of code through the years and forgotten most of it. Some bits, though, I remember vividly. One routine in particular sticks out in my mind as simultaneously the best and worst code I've ever written. Picture this: we have a set of official forms used in nursing homes that need a UI to set the configuration for each form. There are three types: Physician Order (A), Medical Administration Record (M), and Psychotropic (P). For reasons I can no longer remember, there were two categories: the first had only Physician Order and MAR forms, the second had all three. With me so far? Herein lies a cautionary tale against the "it's just..." reasoning. The request probably sounds simple so far. It's decently easy to explain and understand. However, because of the complexities around that functionality, I wrote a routine that persisted in that code for probably a decade or more until the project was officially deprecated and shut ...

[Not] Floating Point Math

Floating point math is something I always took for granted in software development, but I’ve recently been exposed to some of its nuances and how to better calculate values in some cases. Crash course, floating point is effectively just math with decimal places. Different languages use different terminology for the specific data types (“float” and “double” for double precision are common), but they’re all pretty much the same in concept. In decimal (base 10), it’s really not a big deal. Positive exponents go left or more significant from the decimal point, while negative exponents go right or less significant. You multiply or divide by 10, you go up or down in significance. This is all pretty elementary for most of us. The problem is that computers don’t operate in decimal, they use binary (base 2), zeroes and ones. So numbers with digits after the decimal point, fractions of a whole number, aren’t easily represented in binary. Instead, floating point data types use a combination of pr...

LinkedIn Learning

Image
A condition of my new lease on life  is that I continue making myself better: socially, personally, and professionally. One way I’m engaging that drive is with LinkedIn Learning certificates. When I lost my job, I was devastated. I made a pact that I would never let myself get put back into that situation. The biggest problem was that my skills were too dated to be relevant for most employers. Obviously, the fix for that is to refresh my skills and learn new languages and architectures. Fortunately, I did get a great job, and my new position does allow me the opportunity to grow and learn. That’s fantastic, but it takes time. What happens if the company suddenly takes a negative turn and they have to terminate some employees? I’m the low man on the totem pole, and I’m almost definitely going to be the first person cut. I can do my best to modernize my skills quickly, but I can’t affect market trends, and I would be helpless to combat that. My best option, after some analysis, seeme...

Death of a Lifestyle

Image
On Tuesday, July 14, 2020 at approximately 10:00 am, I died. Not literally, I just got laid off from QS/1 Data Systems (RedSail Technologies), but a part of me was certainly gone at that point. Where it Started (and Ended) I was shook. I had dedicated 8 years of my life, my entire career, to this single company. QS/1 was my professional home. I started as an intern during my last year of college, got hired on full time after I graduated, and I stayed there. At some point, I imagined I would probably be employed elsewhere, but I figured it would be on my own terms, and in my own time. For the time, though, I was comfortable. Comfort is a big deal to me. Looking back, this was naive of me. I should have known that I might be terminated, and I should have prepared myself for that possibility. Sure, there were several rounds of layoffs at the Q, but it was always somebody else. I hated it for them, but I was sure they would all go on to find gainful employment elsewhere. That wasn’t someth...

GoPro Video Delay

Image
If you look at my GoPro playlist  on YouTube, you’ll notice that I haven’t added a new video since  23 June 2017 . Honestly, I find that a little depressing and frustrating. It isn’t that I haven’t wanted to add new videos, or even that I haven’t recorded footage to make new videos. It’s that I just haven’t had time to edit them together. Between work, school, raising kids, and writing articles for my side gig, I really don’t have time to sit down and create a video. Looking back, I sound like a broken record because I’ve mentioned not having enough time to make videos before . Still, as much as I love creating content, I have much bigger priorities at the moment. In addition to my lack of time to work with videos, I also don’t have time to learn a new editing software right now. Microsoft discontinued Windows Movie Maker , and if I’m going to learn a new editing software, I may as well go with what a lot of videographers use with DaVinci Resolve. The problem is that Da...