Monday, 29 January 2018


Over the years, I’ve really developed a love for breaking stuff…

Whether it’s a code review or blackbox testing of a third-party application, I go into it expecting there to be problems… I might not always know where they are, but I am confident they exist.

In the world of infosec, the mantra is “assume breach”. Well, I apply a similar mindset to testing — “assume bug”.

If all of the tests are pretty green “PASS” messages, I assume it’s only because the tests aren’t extensive enough or missed some edge-case scenario.

I’ll do some more posts in the future about it, but I’m going to start playing with some different testing harnesses and frameworks in the upcoming months and try to see how much I can get out of them. Until then, though, I guess I’ll just stick with my manual testing.

Sunday, 31 December 2017


Another year over… and a new one on the way…

This year I was able to take a more active lead in the hiring process — everything from creating a job description from scratch all the way to creating and implementing interview questions and tests. It was a lot of fun.

There was more C# development this year, but still quite a lot of work being done in VB.NET. I’m at the point where I don’t have a huge concern whether I’m working on VB.NET or C#. It’s not the language that makes the code good or bad. I’m generally happy just as long as things seem understandable, maintainable, and don’t have the stink of being a rushed hack just to get stuff out the door.

In the upcoming year, I’d like to get more involved in the local dev community. I used to go to the various SQL Saturday events and stuff, but kind of got burnt out on them. I found a pretty nice Tampa development group on Slack that does local meetups, so I might give that a try. Always good to have others available to bounce ideas off of, swap stories with, etc.

See ya’ll in 2018!

Monday, 27 November 2017


It’s no secret that I dislike working with JavaScript. Maybe I’ve just grown accustomed to strong-typed languages with great tools for static analysis. Plenty of my bad experiences with JS were the result of bugs/typos I introduced and not a direct fault of the language, but many of them could’ve been caught ahead of time…

All of that being said, I’ve actually enjoyed playing Screeps. Basically, it’s a massive multiplayer online game where you program (using JavaScript, TypeScript, or other transpiled languages) how your objects in the game will behave. It’s a bit like an ever nerdier version of Minecraft :)

It hasn’t made me love programming in JS but it has at least kept me from being annoyed about it… I’m too busy solving (in-game) problems to dwell much on the language… which is probably a good thing…

Monday, 23 October 2017

Learning To Learn

I love learning. Even when not successful at applying it all, I generally get at least something out of it.

Recently, I’ve been learning a new language. Rather than a new programming language, though, I’ve been trying to learn Russian. It’s something I’ve attempted in the past, using Rosetta stone and Pimseleur CDs (none of which were pirated copies, I swear…). It helped but ultimately didn’t provide any sort of lasting success.

As I researched different ways to tackle it this time around, though, I stumbled upon Gabriel Wyner. My inner-geek really enjoyed the way his methods all tend to have evidence-based researching supporting why and how they work. Things like spaced repetition systems, using the International Phonetic Alphabet to help properly learn pronunciation early on in the process, learning concepts in the other language rather than simply ‘translating’, etc.

I found podcasts he had been interviewed on, read his book (Fluent Forever), and decided to back his Kickstarter campaign.

All of this was interesting to me, but at the time I didn’t think there were any obvious tie-ins with software development. I recently watched a talk by Edward Kmett called “Stop Treading Water: Learning to Learn“, which changed my thinking on that…

It covered similar topics as Wyner, but from a computer science and mathematics perspective. Definitely an interesting talk.

By the time I had finished watching it, I was able to see how some of the techniques I’ve been using for learning Russian can also be applied to learning other development languages or even just solving problems in languages I already know.

Of the takeaways from the talk, there were two concepts that stood out the most as being applicable for me. The first bit of advice is to dive deeper whenever returning to a topic. That way, concepts and methodologies remain fresh and are easily-accessed when needed. It’s sometimes easy to just go for the ‘quick win’ of solving a specific and moving on without spending much time understanding how that solution is working behind the scenes at a lower level. The second takeaway is that even though you should be willing to abandon things once a solution is determined not to be appropriate, it shouldn’t be abandoned simply because it is hard. I know that’s some I sometimes struggle with…

Saturday, 30 September 2017

Memory Fault

Whether it is my original system-generated username from Prodigy in middle school (MMFD70D), my dad’s license plate from when I was in elementary school (LDV-34G), or completely seemingly-useless bits of details like the manufacturer of the urinals at the office (Sloan), my brain just tends to soak it all up.

Over the years, people have praised my ability to remember things…

Sometimes I feels like quite a blessing. But I feel like it is also a bit of a curse.

Because I could rely on my memory, I didn’t really have to apply myself in school. As long as I could remember enough concepts and terminology, I could squeak by without really having to put in much effort.

Looking back, I regret taking that path of least resistance.

Don’t get me wrong… I definitely appreciate having it as one more tool at my disposal. Thanks to my memory, I can keep track of a lot more moving pieces during projects than most folks, which is a huge boon for my productivity and efficiency.

It just might have been nice if I hadn’t been able to use it as a crutch while I was in school… Still, though… Can’t change the past… And even if I didn’t put in all of my effort into education early on, who’s to say I would be in a better position at this point in my life if I had? I have an awesome wife, an adorable daughter, and things are good. Maybe I need to remember that more…