2022

Software Developer I → II

Promoted to Software Developer II 2 months before having accepted the Ticketmaster offer. I had to haggle HR and management to get it retroactive applied, as my promotion was slowed with bureaucracy and unclear communications with management. Technically I was Software Developer I until I left for Ticketmaster (but since I had written proof that management had promised me a promotion 2 months prior my departure they had to honor it).

Not an exhaustive list. Items below were picked to reflect the shape of my work that year and don’t cover everything I did.

Support

  • At the time of my departure, I had written about 130 idempotent SQL scripts (including weekly updates for new DINs)

POS software

  • Programming some of the initial code needed to set up a new POS system that was planned by McKesson (ReflexPOS)

Conversion

  • First line of defence on the engineering side against the now increasing amount of conversions.
    • Had to reverse engineer multiple functions of competing software via their database schema only. (failure to do so would lead to missing data in new clients, leading to possible litigation/issues).

End-To-End Testing

  • Created the SmartBear TestComplete stack used, as well as instructing the consultant hired for end-to-end tests in how to properly use it.
    • Wrote custom python code to interface with Windows API (mouse/keyboard) while never using any screenshots (finding elements by internal name to avoid brittle tests that would break at every visual change)
    • Wrote a basic test suite that would validate the login flow for pharmacists and lab assistants as well as basic patient interactions.

Parting thoughts

McKesson showed me the importance of handling tech debt at a corporate level. Not doing so means that inevitably some people have to do tedious and redundant work to compensate. (which often tends to be those with the less experience) It also showed me how dangerous it can be when higher management does not understand the size of the debt, which leads to them adding more and more features on an unstable or obsolete base.

Returning on the work market with my 2 and a half years of VB.NET/C# experience also showed me that it is essential for a software developer/engineer to have a say in the technologies being used. I was quite sad to realise that the amount of experience that I had accumulated at McKesson was seen as low value in other companies, as I had received very little of the ‘good’ work that would have shined in my applications.

tl;dr: Barely any devops, no infrastructure as code and barely any observability leads to an excessively big QA team, which in turn leads to less resources for actual development, which spirals into an ever-increasing technological debt.

My biggest decision factor was the complete lack of Kubernetes, which I was perceiving as the ‘way forward’. Being told by the team lead it would take at least 5 years to get it in place, I figured I would find experience with it faster through another company.

Despite these strong words, I mean no resentment toward anyone. I believe it is the normal function of a company that has to deal with a lot of tech debt. The people with whom I worked were all nice and up to the task.