Today, I am glad. I am so very glad that I took this week off for a much needed vacation. It’s not exactly a vacation. I am helping my husband complete our state tax forms and working on home renovation stuff like scraping paint off an old window and doing a new paint job on the room that will be our son’s new bedroom when it is finished. And to mow the lawn because the grass had gotten about 18 inches tall. Definitely not the kind of vacation that inspires the envy of one’s co-workers and friends, so I won’t be posting any photographs of my family looking obnoxiously happy in an exotic locale. I might post the photos I took yesterday of my son looking tired and hot and my daughter chewing enthusiastically on an empty water bottle at Edaville, a local amusement park for the younger set. I don’t know how other parents manage to get photo-perfect moments of their toddlers and preschoolers. My kids had a blast, but I could only take photos that gave the impression that my kids wanted to give the world a pint-sized middle finger.
I have not written more than 100 lines of code since I completed the localization support for the page objects two months ago. Since then it has been manual testing all the time. QA Director had a heart attack two weeks ago, which I partly ascribe to the pressures of the job. By the time this happened, he had stopped talking about all the great things that were going to happen for our team. A few months ago, he said there were plans to expand the team so that we could do the kind of career building projects that ambitious people salivate over. I think he’s getting the same kind of bait and switch as my old boss. When my old boss recruited me, she was in the process of building out a team of QA super stars whose mission would be to implement a top notch system testing infrastructure. That never happened. We are still doing the same old manual regression testing we were doing four years ago. About 1/3 of the way through the team-building process, her open requisitions were yanked out from under her and she never got them back. My company, like many, loves to talk about much they want great QA, but they want it all for next to nothing. It is clear that the QA function is the last in line where resource allocation is concerned. We still have not closed the deal on our POC Sauce Labs services, a measly 10 test VMs that can barely service a half-assed regression suite for one simple application. Unfortunately, there are security implications to opening up our test environments so that they are accessible from the Sauce test VMs. Getting over this hurdle requires cooperation from another team. They have to configure the environments before we can use Sauce to test against them, and we are probably on the bottom of their list of priorities.
Before his heart attack, QA Director told me that we would be getting a dedicated support staff to support the test environments, which is great news. The shitastic state of the test environments has been a giant source of frustration and there is literally no one in the company who thinks they are properly supported. Up until now, we have all had to rely on the support staff for the production system and a cadre of volunteers to keep them up and running. Otherwise, I doubt there will be much additional investment in our function. Whenever there is money to hand out, every function is competing intensely to get it for themselves and QA does not get a VIP invite to that kind of party. We were even displaced from the space we were given in the new office they moved us into last week. Product Operations and Marketing were unhappy about the spaces allocated for their groups, so they were allowed to take our space from us and now we are no longer located right next to the development teams. Colocation of QA and Dev was highly touted as one of the great benefits of moving to the new office space. When the employee engagement survey results came back last year, there was some ‘concern’ at how terrible the morale for our group was and there were a fair number of earnest promises that these issues would be addressed. I am dying to know what the results of this year’s survey will be.
All of my spare time these days is devoted to MIT OCW. I am working my way through the readings and lectures for Mathematics for Computer Science. I am making Anki flash cards for all of the material as I progress through the course. It is highly labor intensive, but the effort will pay off in that I will thoroughly learn all of the material in the course and I will have spaced repetition flash cards that I can use daily to ensure that I don’t forget any of this material over time. After I complete this course, I am going to go through the intro to algorithms course and do the same. Afterwards, I am going to try out the harder programming problems posted at LeetCode and HackerRank. If I can quickly solve those problems, then I will consider myself prepared to tackle the coding interviews. I found that as I got into the harder problems, I was missing the core algorithmic knowledge they were designed to assess. I could cram, but I don’t want cram-style knowledge. I want a thorough and solid grounding in these concepts. There is no short cut really.
I am about 2/3 of the way through the Mathematics for Computer Science, which is MIT’s introductory discrete mathematics course. Compared to my UMass Boston introductory discrete mathematics course, it covers more material at a deeper theoretical level. Calculus is also a two semester affair at MIT, rather than the three semester program at UMass Boston. There are a few things I wish I had done in my life. I wish I had applied to MIT and chosen to go there for computer science rather than comparative literature at Harvard. Barring that, I wish I had just sucked it up and taken private loans and gone to school full time at UMass Boston for computer science. I tried to cut down on my debt burden by doing school part time and working full time, which in hindsight was a terrible idea. I did not give myself the opportunity to gain the kind of education I should have gotten there. I missed too many classes and focused too much on just getting the degree. The better choice would have been going to MIT for computer science from the beginning. I blame my indecisive and feckless youth for the meandering and unfocused I path I took to this point in my life.
I want to get into data science or machine learning as a developer not a QA jockey. I have given up on quality assurance as a career that is going to offer me any real serious engineering challenges. Most companies just want someone to verify that buttons are enabled and that 1 plus 1 equals 2. They tell potential new hires that the positions they’re offering will be engaging, challenging career-building automation and infrastructure opportunities, but in reality, they want all that amazing automation and infrastructure for nothing more than the cost of a glorified button clicker. Verifying that the button is present and clickable will be the new hire’s first and foremost responsibility. There will be thousands of buttons too, and lots of input boxes to test. Only after the QA engineer laboriously writes all the test cases related to the clicking of buttons and entering of text into input boxes will they be permitted to even open an IDE to write code for automating away that soul-sucking, mind-destroying monotonous shit. Except there will never be any time for automation because they will have run the regression suite of button clicking tests over and over and over again.