Skip to content
  • +

Should Have Paid Me More

Tales from the underpaid
Contributor registration is now open! Get your account now!

I used to be a .NET Developer and DBA for an appliance manufacturer in a previous life.  The company was your basic good ole’ boys shop where maintaining the status quo was priority number one.  It was such a staunchy work environment that you could determine where an employee was on the ladder based solely upon their attire.  High Level Execs wore full-out suits, with ties, vests, and sports jackets.  Your typical salaried employee generally just wore a button-up shirt and tie.  Shift managers wore polos, while the lowly hourly assembly workers donned jeans, steel-toe boots, and ratty shirts.  Basically, this manufacturing company is stuck in 1976 and doubled as my personal hell. continue reading…

Jim’s Keys

Nov 4
Java, Users

Note: You may wish to read Part IPart IIPart III, Part IV, and Part V of this series to gain context.

As relayed in previous posts in this series, the Plus application was meant to facilitate the transmission of data from field technicians to the home office. However, at some point it was decided that Plus should also be responsible for transmitting and displaying data from the home office to the field technicians. This information ended up being things like equipment-specific metadata, customer contact numbers, location of each piece of equipment, a directory of everyone employed at the company that developed Plus (no, I’m not kidding), and schedule data. All of this came from a poorly-standardized, non-normalized database used by the company’s CRM application, Nexterna Clearview, which uses a batch-and-post system. continue reading…

Below you will see some code I ran into a couple days ago.  It is one of those things that took me back to 3rd grade math and made me second guess myself.  If you look there is a new integer declared and it is set to zero.  Then a loop starts in reverse order to iterate through some tabs which are always going to be a quantity of 5.  What is interesting is that the integer is multiplied by -1.  At first glance it made sense, multiply 1 times -1 you get -1, 2 times -1 = -2.  But the value of intTabCounter was never being set inside the loop.  So it appears that it was always zero.  And sure enough as I debugged the code it was always zero.  So it was completely useless.

Dim intTabCounter As Integer = 0

For intTabIndex As Integer = tcNewsDayTabs.Tabs.Count - 1 To 0 Step -1
tabDate = Date.Today.AddDays((intTabCounter * -1))
tabDate = NewsUtil.FindBusinessDayDate(tabDate.AddDays(1), ldTabPanelDates)
ldTabPanelDates.Add(intTabIndex, tabDate)
Next intTabIndex

This is an example of a time something looks good on the surface but has no functional value once you look a little deeper.  In a bad economy like we have these days I look at this as job security.

Note: You may wish to read Part IPart II, Part III, and Part IV of this series to gain context.

As demonstrated in Part IPart IIPart III, and Part IV of this series, the Plus application was a mess. It never really worked and when the desired functionality was simulated, it caused other issues. To be fair, the department that requested Plus in the first place was also a mess – its manager not only couldn’t manage the department’s 150 employees, but further had no understanding of what they did or what they were supposed to be doing (and those two things were definitely not the same). As a result, change requests for the Plus application had no order, logic, or sanity, and often contradicted other change requests made by the same department slightly earlier. It was a constant cycle of “Make this change” “Why did you change that? Change it back!” “Make this change”. continue reading…

Note: You may wish to read Part IPart II, and Part III of this series to gain context.

One of the prevailing requirements for the Plus application was that it allow field staff to enter data offline and “sync” it over the Interwebs at their leisure. In addition, the application had to get updated schedule information and previously-synced data and show it to the user while offline. As you know, the most logical design that meets this requirement is a disconnected client-server model. Therefore, a server had to be built to accept connections from the client, process incoming data, and send back schedule  information and previously-synced data. continue reading…