Industry Insights

Technology trends, industry commentary, career reflections, and personal insights from the engineering leadership journey.

24 Posts
Jan 5, 2021
One minute

New How Not To Series

Welcome to the newest series on The Geek Speaks, How Not To. The focus of this series will be to highlight some of the things that should be avoided when running development teams. It is from a developer’s perspective that has spent time working extensively in support, product management, and team leadership, and will cover some of the things that I have seen companies do poorly. In addition, I will also highlight some of the things that you can do that undermine the things you can do well as seen in the How To Series.

Jan 5, 2021
One minute

New How To Series

Welcome to the newest series on The Geek Speaks, How To. The focus of this series will be to highlight some of the best practices for how to run development teams. It is from a developer’s perspective that has spent time working extensively in support, product management, and team leadership, and will cover some of the things that I have seen companies do well. In addition, I will also highlight some of the things that you can do to counteract those things you shouldn’t be doing, as seen in the How Not To series.

Jan 1, 2021
9 minutes

A Look Back at 2020

What a year it was. 2020 was a year that we will all look back on as being completely unique. As far as memorable years, it’s right up there with the events of September 11, 2001, though these events have persisted for the majority of the year instead of a more focused impact.

Professional

When I look back at everything that happened professionally, it truly is a lot. After starting the year working through the final days of removing a member of my team, which had all its own challenges related to interpersonal relationships and stressors that the process wasn’t happening as fast as I and other members of the team would have preferred. I had hoped that once that was complete, the rest of the year would smooth out and get a bit easier. However, that really wasn’t the case. Instead, meetings with our consulting company, before ultimately discontinuing the usage of the company made for some interesting days.

May 30, 2020
2 minutes

Goodbye Jekyll, Hello Hugo

If you’ve been paying attention to this site, you would have noticed that the blog has been going through some updates for a while. Hopefully those are taken care of for the moment, but the biggest thing thats changed is the platform running the site. This started out as a self-hosted Ghost site, then a GhostPro site, and then a site running on GitHub Pages via Jekyll. However, due to the requirements of site previews and building Jekyll locally, it’s caused updates to be more difficult than they should be.

Dec 13, 2016
3 minutes

What is Jekyll, and where have I been?

It has been a while since the last time this blog was updated, and I thought it was time that changed. The plan is to make sure to regularly update the site so that it doesn’t become completely stale, but its obvious the best of intentions don’t work unless they do, so here’s to something.

I’m sure if you have seen the site before, you will notice that the design has changed to look a bit different than it was in the past. That really just has to do with the platform of the site, which historically has been a Ghost powered blog. However, after using Jekyll for a few other projects, writing posts in Markdown with a static site generator has become quite attractive to me, and as a result, this blog is now using Jekyll for the management of the posts. One of the nice side effects of using Jekyll for the site is that you are able to take advantage of Github Pages for free hosting of your site. From what I have seen, the performance of sites using their infrastructure works wonderfully and always seems to be quick.

Apr 2, 2015
One minute

Social-Buttons.Com Spams Google Analytics

Typically when you see traffic in Google Analytics, you can be sure that it is legitimate traffic to your website. However, there are a few known spammers out there that successfully spam Google Analytics tracking codes with bogus visits, hoping that the Analytics users visit the site that is supposedly “referring” traffic. One such domain that is being used for this is Social-Buttons.com.

I have just begun to see traffic in Google Analytics from Social-Buttons.com in the middle part of March 2015, and if you look at the Google Trends statistics for search terms of Social-Buttons.com, you can see that there is a spike in searches for Social-Buttons.com in March 2015 from a baseline of 0 searches prior to March 2015.

Mar 26, 2015
2 minutes

Another Micro-Optimization Provides Useless Results

One of the things to remember about performance optimizations performed in isolation is that their results are rarely representative of real-world performance results. This article outlines the “findings” of the students at a couple of Canadian universities, and comes to the conclusion that string concatenation in memory is slower than writing the same total number of bytes to disk, one after the other.

String concatenation is a slow and CPU-heavy operation. It drastically affects Micro-Optimization testing when both algorithms do not utilize it.

Mar 24, 2015
2 minutes

Laravel Removed The QuickStart For Version 5

To start out, I want to be clear that what follows should not be interpreted to be a criticism of the software framework that those that work on Laravel publish, nor an indictment of open-source software as a whole. Rather, it is a look at how some projects, open or closed source make it harder than it should be for new users/developers to utilize their terrific products.

It seems experts conveniently “forget” the tips and tricks and tribulations it takes to learn a new technology, covering it all with, “It’s just so easy”.

Mar 23, 2015
2 minutes

Google Chrome Improves JavaScript Speeds Again

One of the old rules of optimizing website load times for all browsers was that the browser didn’t begin to parse the downloaded JavaScript until each file was downloaded. Starting with Chrome 41, Google has announced that this is no longer the case.

In this announcement, Google has said that new versions of Chrome will begin parsing JavaScript as it is downloaded to the browser, even before the particular file’s download is complete. However, in order to see this happen more quickly, you must utilize the async or deferred tags in the <script> tag. JavaScript that is loaded without async or deferred is still a completely blocking action that pauses all rendering while downloading and parsing the JavaScript files. According to Google, this can improve website load time by up to 10%.

Mar 20, 2015
One minute

Google To Begin Rewarding Mobile-Friendly Websites

Google recently announced that beginning April 21, 2015, they would start slightly rewarding websites that are mobile-friendly at the expense of sites that are not. There are several things that Google looks at to determine whether or not a site is easy for a user on a mobile device to view and navigate. Some of the things that Google looks for include the following:

  1. Fonts that are big enough to be legible
  2. Users don’t have to scroll left and right to see content
  3. Links are big enough and have enough space around them to be clickable with a touch of a finger.
  4. Avoids technologies that are not present on mobile devices, like Flash.

If you make sure that you follow the above guidelines, your site will be prepared for the upcoming change in Google’s search results. To find out more, check out Google’s blog post.

Mar 16, 2015
2 minutes

Google Code Shutting Down

Google just recently announced that they are going to begin the process of shutting down their Google Code project hosting service. In the blog post announcing that they were shuttering the service, they let it slip that even Google had quit using Google Code for their project hosting, instead transitioning thousands of their projects to GitHub. Google seemingly blames the fact that GitHub and BitBucket handle project hosting better than Google does as the main reason that they are discontinuing the service.

Mar 11, 2015
One minute

Firefox 36 Has A Massive Memory Leak

While looking through our TrackJS logs the other day, I ran across a peculiar error message coming from Firefox 36 on Windows 7. The error message was simply out of memory. It seemed that the pesky local storage issue had reappeared mysteriously. However, with a quick check of the codebase, I verified that no one had accidentally reverted those fixes.

With that possible cause ruled out, I turned to a developer’s best friend, Google, for solutions. Well, it appears that Firefox 36.0.0 has quite the memory leak issue. When looking into the detail of the issue, it became highly probably that this issue was the cause of the errors in our monitoring tools. Apparently, this bug rears its ugly head when you are doing 2D rendering on your page, and the site uses a 2D charting library to present information.

Mar 2, 2015
2 minutes

Stop Wanting and Start Choosing

I am used to hearing people use phrases like “I want to be able to do X thing” or “I want to have X position at my company” when people are talking in generalities about their goals. I tend to do it often as well, especially when using “self-talk” to attempt to work on internal goals and desires. However, when reading a book from Paul Tough, How Children Succeed, one of the quotes that he references from Jonathan Rowson, a Scottish chess grand master who had written about the importance of emotion and psychology in chess success.

Jan 5, 2015
3 minutes

Let's talk about equality

Equality has been a major topic of discussion over the last few weeks. Whenever this topic comes up, I am always suprised how limited many people’s knowledge about true equality is. Relax everyone, I am talking about equality operators in JavaScript, and not the topic of national discussion recently.

Thinking back to some interviews I have been a part of recently, it became extremely obvious how little most Front End Web Developers know about the JavaScript equaltiy operators. You got that right, I said “operators” because there are two operators that test for equality between two objects, == and ===.

Jan 3, 2015
2 minutes

Bing ignores robots.txt

One of the long-standing conventions on the web is that automated search engine crawlers should follow a set of rules about what pages they should and should not visit and index. For many crawlers or bots, all you have to do is properly setup your robots.txt file, and viola, you control what the bot will and will not visit. The GoogleBot tends to behave well according to what is in the robots.txt file, but there are others, specifically BingBot that do not.

Sep 19, 2014
3 minutes

Apple's iPhone Announcement is a Big Deal for T-Mobile

Every year, we are treated to a big show from Apple about what the next iPhone will be like, and how magical it actually is. In case you have been living under a rock, this major Apple annoucement is one of the largest news-making fancy press-conferences you will see these days. It used to be this way when Microsoft would launch a new operating system, remember that launch announcement and launch party for Windows XP? What about for Windows 8? Oh yeah, these announcements are only a big deal when you are the dominant force in the marketplace instead of trying to play catch-up in all areas because your technology is old.

Sep 18, 2014
2 minutes

T-Mobile Buckles Under iPhone 6 PreOrders

When you are one of the major US carriers that allows its customers to pre-order the new Apple iPhone 6 and Apple iPhone 6 Plus, you would think that you would make sure your internal systems were up to snuff before the pre-order deadline. Well, as luck would have it, when September 12, 2014 rolled around, it turns out that many T-Mobile customers were out of luck when they went to try to pre-order the new iPhone 6 and iPhone 6 Plus.

Sep 4, 2014
2 minutes

Parallax Background Scrolling on Internet Explorer is Not Smooth

One of the pleasures of working on a website that is using some of the latest technologies is that you often run into strange compatability issues that only affect one browser or another, and many of the forums have little to no information about how to properly address the issues. Parallax scrolling is a technique that has been around for a while now, highlighted by Apple’s own iPhone 5s card-esque scrolling on their homepage, among others. While the site I am working on does not have as elaborate a parallax implementation, it does not work instantly across browsers by default either.

Sep 1, 2014
One minute

Quality Comments Welcome

One of the things, among many, that has been missing from this blog from its beginning has been the inability for users to post comments to articles in the blog. Ghost was created to allow bloggers and writers to focus directly on writing with as few distractions as possible. This is in stark contrast to the way WordPress was created where anyone running a site had to be immersed in the functionality of WordPress themes and extensions to have a fully-functional website.

Aug 21, 2014
4 minutes

Google Chrome Makes Web Developers Lazy

This post may make me sound ancient in the world of web development, but here it comes anyway.

Like Microsoft, Google has decided to implement functionality in their dominant browser that is incompatible with the other major competing browsers.

When I first started developing websites professionally, ensuring a website worked for 99% of the site’s visitors was easy, relatively, as you only needed to make sure the site worked in Internet Explorer 6. Obviously, there were a ton of random hacks and tricks required to deal with the quirks of this browser, but you were fairly safe knowing you had developed your site to be tailored to the browser of choice for your visitors. However, the dominance of Internet Explorer 6 was bound to come to an end and it ushered in an era of multiple popular browsers including Firefox and Chrome. With no single browser having a massive advantage in terms of users in all areas, web developers had to make sure that thorough testing of their sites was completed in each of the major browsers.

May 12, 2014
2 minutes

Mobile Web Development Is the New Internet Explorer 6

Developing a website that works well across devices and browsers is an excersize in playing Whack-A-Mole. Once you get one browser working on a desktop browser, you go to the next browser and find that not everything works the same way. In 2014, it seems that there aren’t that many differences in functionality between desktop browsers, but that all changes once you start making a responsive website that must handle mobile devices as well as it does desktop browsers.

Apr 2, 2014
2 minutes

Can Legacy Internet Explorer Go Away Already?

For years, Internet Explorer was a four-letter word around web developers. Recently, Microsoft has stepped up their game when it comes to their web browser. I almost have to pinch myself to make sure I’m not dreaming when I type this, but Internet Explorer 10 and 11 are decent and modern web browsers that many websites don’t have to do anything special to support.

However, Internet Explorer 9 and before are another story. The latest compatibility problemn I ran across would be one that is quite confusing to a web developer that has not been around those that have dealt with it before. The symptoms are that CSS rules that you can verify are in your CSS file are not being applied in Internet Explorer, but are applied in Chrome, Safari, Firefox, etc.

Mar 27, 2014
One minute

jQuery.hover Issues in Internet Explorer on Windows 7

When creating a new mega-dropdown menu for a site I was working on, I used jQuery’s .hover event to trigger which content the menu was displayed. This seemed to work as expected in most browsers that I tested in, except for one, Internet Explorer. Unfortunately, it wasn’t even in every instance of Internet Explorer.

Windows 7

After Windows Vista came out as one of the biggest duds that the world has ever seen, Windows 7 was a ringing success. Windows 7 is an extremely functional and useful Operating System in the vein of Windows XP, but during testing of this website, we found one troubling issue with every version of Internet Explorer we installed on it. When you hovered over the menu and triggered the jQuery.hover() event, Internet Explorer seemingly locked-up for a few seconds, making the entire browser unresponsive. In a stroke of strange luck, I was unable to reproduce this functionality in Internet Explorer on Windows 8 or 8.1, so this is something that only affects the older operating systems. The fix is to replace jQuery.hover() with jQuery(document).on(“mouseenter”) and call the appropriate function as well.

Mar 24, 2014
One minute

Welcome to The Geek Speaks

Way back in August, 2012, Scott Hanselman had a great post about how our keystrokes are wasted by blogging/writing for another company or any locations where you don’t control your own content.

All that time ago, that post inspired me to put more effort into writing on this blog, however, life got in the way, and I never really was able to get started blogging. Not to mention, that I really don’t like using WordPress for hosting my blog, as it seems to be quite the target hackers looking to hack into systems.