HR

IBM and other companies now claim to be loosening college degree requirements.

August 29, 2018 Incoherent ramblings , , , , ,

Here’s an article about companies that are starting to drop college and university degree requirements.

I’ve been expecting this for years.

I really enjoyed university and much of what I learned on my undergrad engineering degree. However, most of the skills that I required for software development, I learned on the job at IBM on my student internship, not from my undergrad engineering degree. I was very disappointed in the software engineering course that I took in university, as it was primarily droning on about waterfall models and documentation driven development, and had very little substantive content. I learned a lot of mathematics and physics at UofT, but very little of it was useful. I was once really pleased with myself when I figured out that I could do compute some partial derivatives on the job to compute error-bars in some statistical performance analysis, but that one time calculation, was the only non-trivial math I ever used in about 20 years at IBM. In short, most of the specifics I learned at University were of little value.

My view of the engineering degree I obtained, was that it was mental training. They tossed problems at us, and we solved them. By the time you were done your undergrad degree, you knew (or at least believed) that you could solve any problem. There’s definitely value to developing that mental discipline, and there’s value to the employer as a filtering mechanism. Interestingly, my first manager at IBM as a full time employee told me that they preferred hiring new engineering graduates over new computer science graduates. That is despite the fact that many of the computer science courses are quite difficult (computer graphics, optimizing compilers, …), and arguably more relevant than all the physics biased courses that we did in engineering. Perhaps that preference was due to the problem solving bias of engineering school?

An apprenticeship based recruitment system can potentially save software companies a lot of money, as it should provide cheap labor for the company and a valuable opportunity to learn real skills for the apprentice. It’s a good deal for both parties.  You can get paid to learn, vs. going to school, and paying to learn things that are not truly valuable. I’ve actually been very surprised that IBM, who is offshoring so aggressively to save money, has not yet clued in that they can hire students directly out of high school (or earlier!), for much less than the price tag that a university/college graduate would demand. While offshoring is nominally cheap, unless the whole team is moved, it introduces large latencies and inefficiencies in development processes. Hiring out of high school would provide companies like IBM that are desperate to reduce their costs, the chance of acquiring cheap local talent, free of the hassles and latencies of splitting the team to pay some members offshore rates, less benefits, and so forth.

Assuming that a university degree is not actually useful, the problem to be solved is one of filtering. How does a company evaluate the potential of an untrained candidate without using (potentially useless) accreditation as a filter? I’d guess that we will see a transition to IQ style testing (although that is illegal in some locals) and a bias for hiring youth with demonstrated interest and proven open source project contribution history.

LinkedIn replies to headhunters

September 25, 2017 Incoherent ramblings , , , , , , , , , , ,

I blundered upon my messaging history on LinkedIn the other day, and noticed that it has, for the most part, transitioned from chats with IBMers that I was saying goodbye to (and the ever growing ex-IBMer population that I now know) to rather canned responses to headhunters.

Like contact requests from anybody I don’t remember having worked with, I ignore those from headhunters.  I’ll reply to the headhunter connect requests with a terse “Sorry, I don’t accept requests from people I haven’t worked with personally”.

Going through my replies to the last 10 headhunters who explicitly messaged me, it appears I’m pretty consistent, and most of my replies were fairly close to the following:

Hi XXX,

Thanks for reaching out. I enjoy my current work, which is challenging and interesting, the potential of the company I am working for, and my compensation. I’m not currently interested in a job change.

Peeter

The company that you are recruiting for would have to offer really damn interesting work to get me to defect from LzLabs at the moment.

There were two headhunters that got non-canned responses:

1) A banking and financial sector headhunter got a more direct response:

Hi XXX, thank you for reaching out, but I’m not interested.

This may surprise people, but it’s a moral choice.

I picked up a microeconomics text from the bookshelf of our local Unionville recycling depot (the best priced second hand book store in Markham). That text book was packed with enough Hamilton and Lagrangian equations to make any physicist (or want-to-be physicist like me) at home.  Application of those techniques would surely be interesting, and I was being targeted by a recruiter for a company where that probably would have been possible.  However, it would take a lot more than that chance to make me work directly for a financial parasite.

Yes, I know that I spent 20 years working in the guts of DB2 LUW, which is a product that is used in many financial institutions.  Yes, I know that I am now working for a company with a mainframe solution that is going to be used by many financial institutions.  Both of these cases have a level of indirection that influences my attitude.

If I wasn’t employed, or I had my mortgage paid off, perhaps I’ll feel less hostile to the financial sector.  However, in the near term, I’m certainly not going to work directly for one of the leeches.

2) google.

Hi XXX,

I’m very happy with my current job, which is challenging, interesting, pays very well, and is with a company that has potential I find very appealing.

Google was previously a company that I found intriguing as a possible employer, but has recently demonstrated aspects of authoritarian political correctness that make it much less appealing. There is also evidence of political bias, anti free-speech tendencies, and censorship related to the google products that I find very unsettling given the power and scope of its technology. It is not at all clear that I would be comfortable working at google in its current state.

Peeter

This response was one that surprised me when I wrote it, but I think it is honest.

I would have previously considered working for google if the conditions were right.  When I was at IBM, I never accepted any interview requests from google.  The rationale for that choice was knowledge that relocation was required for any interesting technical work at google (their Toronto lab was marketing only), and I made it clear that relocation was not an option in any correspondence.  I’ve been rebuked by colleagues for that hard line position on relocation, since interviewing at google is said to be really fun.

In recent times, I have been continually reading and hearing of political bias at google.  I’d expect a company that wields so much power to take a non-partisan political position, but they seem to have actively attempted to bias the recent opportunistic-psychopath vs narcissistic-idiot competition in the US, and also appear to be actively attempting to introduce questionable social engineering (biased search rank manipulation, selective demonetization, …) into their products.   In spite of this, even in recent times, had google had google offered up interesting work at interesting compensation levels, without a relocation requirement, perhaps I would have bitten hard enough to interview.

The recent James Damore fiasco is a game changer.  Damore’s primary crime appears to be have been the use of the psychological term neuroticism (a “big five” personality trait that seems to roughly be a measure of negative emotion) without explicit inline definition in his memo. If you are going to fire somebody and make them a scapegoat just to appease the diversity police, then you become uninteresting as an employer.  I just finished working for IBM, which seems to have made it their business to treat people as entries in a HR ledger, irrespective of competence.  It will take some hard sales work to pique interest in google when their HR department is evidently trying to be orders of magnitude more insane than IBMs.  Unless there’s some evidence of HR reform at google, I suspect google technical recruiting is going to get really difficult until their treatment of Damore has been forgotten.

IBM and government are both strong evidence that insanity scales with organization size.  With google clearly growing in size, I am not holding my breath for the chance that it will reverse any of its tendencies down the path toward organizational dementia.

Leaving IBM: A causal analysis.

May 3, 2016 Incoherent ramblings , , , , , , , ,

EDIT: fixed the title; casual -> causal. I am clearly not ever going to be headhunted by any editing or proofreading companies.

I was not looking for a job change, but one found me. There has been persistent headhunter (Google, Microsoft, Facebook, Amazon, …) interest over the years, but any interesting job available also required relocation. I also wanted something compatible with my part time studies, as I have been working 80% part time at IBM to accommodate those studies.

I was contacted by the founder of a new startup. As a long time salaried IBM employee, I am surprised that the possible instability of a startup operation was of interest, but they made a convincing case for the future success of their product ideas and company. Their salary offer was also significantly higher than what I make at IBM, which sure didn’t hurt.

With interesting work as a prospect at this company, an attractive salary, no relocation required, and none of the negatives of current IBM HR practices, I took this offer after a week of deliberation.

Pros of working in DB2

One week of deliberation, especially when I wasn’t looking for a change, is a short amount of time to decide to say goodbye to a company that I’ve worked for about 20 years, which is almost half my life! Both my kids were born while working for IBM, and are now almost grown. I have a roots with the people and work that I am leaving behind.

I did a lot of really fun work in my years with DB2:

– Implemented multithread support and associated reentrancy retrofit of DB2’s Unix client code.
– DB2 Linux porting work, including portability reengineering.
– DB2 64-bit port. This was a project of massive scope. We can now eat terrabytes of RAM for breakfast.
– Development and maintenance of DB2’s internal mutex and atomic implementations, and associated memory ordering mechanisms.
– Lots of fun parts of our platform stackwalk and related post mortem factilities.
– AIX/TPCC performance and exploitation liason.
– DB2 contact for xlC and other compiler coordination.
– Lock-free reimplementation of DB2’s reader-writer mutex. The performance of our original reader-writer mutex code sucked for a number of reasons (including use of an mutex within the mutex.) This was a from scratch implementation where we used a single atomic to track the reader and writer linked lists (indirectly), the reader count, the writer held bit, and a writer reserved bit. This code has stood the test of time and remains one of my proudest creations.
– Implementation of DB2’s asynchronous IO abstraction layer. It’s hard to believe that it wasn’t that long ago that we did all our IO synchronously. This bit of code hides an impressive amount of operating system centric code from our high level development consumers, while squeezing maximum performance from each system.
– Development and maintenance of many other aspects of DB2’s operating system abstraction layer.
– Lead of project branch integration team during internal transition from the CMVC version control system to clearcase.
– Ad-hoc build tooling and makefile maintenance as required.
– Technical owner of DB2’s coding standards
– DB2 pureScale project (distributed shared disk database): Implemented various duplexing, failover and reconstruct aspects of the communications between the DB2 engine and the shared buffer pool and lock manager component.
– Lots of other stuff along the way that took me into various components of DB2.

I started straight from school in ’97 with a low salary (somewhere around $50K CAD). My salary and band rating both progressed very rapidly from there. There were also frequent bonuses in those early days. I was clearly perceived as being of value.

I also really enjoyed the people that I worked with in IBM. I’ve worked with so many very competent and skilled software developers over the years.

So, the pros include:
– Lots of fun and challenging work.
– What seemed like a decent salary.
– Almost nobody else to work for in the Toronto region for whom I could do systems and low level programming.
– Part time options for my educational project and extra time off with the kids.
– Awesome fellow developers. It is humbling and rewarding to work with so many really smart people.
– Working for a startup carries the risk of complete failure.

So why leave?

Many of the reasons to leave DB2 mirror the reasons to stay:

– Fun and challenging work.
– Better salary.
– Flexibility offered for part time work if desired.
– Opportunity to continue to work without relocation, and without having to do something boring like web programming, phone app development, java coding, …
– A collection of really smart developers.
– Staying at IBM can pigeonhole me and leave me viewed as a one trick pony.
– Expectation of a stock distribution and/or bonuses with success.
– The chance to work for a small company, shaping things instead of being a nameless drone.
– No inhuman IBM corporate HR policies to have to observe or be impacted by.

Fun and challenging work.

Now that I have started with LzLabs, I am starting to get a glimpse at just how aggressive and visionary this project is. The scope of it is very impressive, and I’m going to have a lot of fun working on it. My work is likely going to be some combination of concurrency, porting, and build & test infrastructure. These are all things that I am comfortable with and enjoy working on.

Better salary

I was very satisfied with the rate that I achieved my maximum full time equivalent salary at IBM.

I was not satisfied with the way that it stagnated after that. I had not had a raise in a long time. Living in Canada it seems that food costs have 2x’ed in recent years, as have gas prices, hydro bills, and many others. My IBM salary was clearly not even tracking inflation.

The offer I got from LZ certainly made up for that stagnation.

That said, I probably could have asked for a lot more. I got heavily berated by an ex-IBM buddy for accepting the offer I got from LZ, which he said was way too low. He had the good fortune to have been canned by IBM. He’s since moved around and found just how low IBM Canada pays in comparison to others, and is now making $200K USD on the west coast. While my new LZ salary is significantly better than my IBM salary, he said that I shouldn’t have accepted anything less than $240K USD given my skills, and would have easily gotten that, even without requiring relocation. This was surprising to hear. I was clearly pretty clueless about the going rates for the sort of work that I’ve been doing.

My buddy recommends that I get away from LZ in short order (i.e. 6 months) if it shows any signs of not becoming a superstar player. It sounds like I could definitely profit by such a move, but I’ve never been primarily motivated by money. I’d rather play this new game long term and see where it goes.

IBM Canada capitalizes on the sort of salary comparison cluelessness that I had. It also capitalizes on what used to be a monopoly on systems and low level programming work. Without anybody else local to work for they have been able to keep salaries low.

With the ease of working remotely becoming so pervasive, IBM won’t be able to play this game as effectively anymore. This is clearly evident by the mass migrations that seem to be occurring (not even counting the frequent IBM purges).

One trick pony.

Loyalty to an employer used to be considered a virtue. I am not sure that is the case anymore. I left on my own terms, but should I have been fired from IBM, I think that the fact that I worked in only one place for 20 years would have hurt, not helped. Leaving IBM has a positive optics impact on my resume for future work.

Part time options.

I’ve started full time with LZ. I’ve been offered the chance to go back to part time in the fall when school starts again. The LZ founder has said of this

“You are going to have so much fun that you won’t have any desire to continue with an attempt to become a failed physicist. We have lots of those working for us already.”

Although this sounds like it is condescending, he is proud of his collection of very smart people, including all his “failed physicists”, which he said in a way that it sounded like a complement to their intelligence.

One of the LZ hiring strategies is to ask new hires “who is the best/smartest developer that you have ever worked with” (I can’t play my role in that game for a year since I was an IBM band 9). Judging by the interactions that I have had so far at the company, I can confirm that I am in with a really good group.

Inhuman IBM HR

I’ve mentioned that I really enjoyed the people that I worked with in DB2 and IBM. There are so many truly on the ball experienced developers in the pool. It was a real loss to leave IBM and not be able to continue working with these people anymore.

However, in recent years, I have seen IBM treat many of those skilled and experienced developers as disposable. Again and again and again, the most experienced developers are tossed like trash when the firing purges occur. These are in many cases guru level developers with irreplaceable knowledge. Some call this agism, but it may be more accurate to call it salarism, because I think their true crime was getting paid too much in the view of HR that is eying three new hire recent grads for the same total salary (or perhaps three employees in an offshore IBM lab where salaries are uniformly less).

As a 20 year employee, I had only 5 years before I also hit the apparent disposability threshold. Given that, the risks of a joining a startup that might fail are severely minimized. Worst case, if the start up fails, then I am left looking for a job, which is probably also an inevitability if staying on at IBM. The only real loss in that case is the IBM severance that I walk away from by leaving voluntarily, and the new larger salary should compensate for that, provided I sack some of it away for a rainy day.

When I did a final walk around of the lab, saying bye to so many people I had worked with for so long (some that I had never even met in person!), I observed many that had reached or surpassed what I thought of as the 25 year purge threshold criteria. There is no apparent sane rationale for who gets to stay and who gets the knife. That uncertainty for those who remain must be very hard to deal with. Some who I talked to did not even have this perception of disposability, which was interesting to observe.

Tossing employees who have expired is not the only example of cutthroat IBM HR I have seen. In one case, a co-worker who had become the goto guy for a complex component of our code had the bad fortune of getting a promotion too close to one of the firing purges. There is an internal ranking scheme within IBM, and in recent years, anybody with a rank three was toast when the purges ran. Unfortunately, a promotion usually means you are dropped temporarily in rank, since you have to compete with more experienced developers once you have your new band rating. In this case, the promotion in question, reducing the employee rank from 2 to 3, which put him into the automatic firing bucket. It seems to me completely insane to spend five years training somebody, and then essentially fire him for a promotion.

I have also observed two cases where IBMers were fired within what seemed like months of returning to work after having recovered from cancer. That’s a callous action that demonstrates the people with their fingers on the triggers truly don’t think of employees as people. They are resources. Just are just numbers to be shuffled in spreadsheets. Observe that I refuse to use the cowardly term “Resource Action” (or worse RA, or RAed) for firing that IBM HR employs. I am guessing that this a term invented so that HR employees feel less sadistic when they have to run a spreadsheet computation to see who gets the knife. I won’t miss that sort of corporate sadism, and it was a strong factor associated with my choice to leave IBM.

Weighing all the factors.

Looking at all the pros and cons, it seemed clear to me that joining LZ and leaving IBM was in my best interest.

It was certainly a scary move. I don’t even have a salary or real job offer since LZ is not yet incorporated in Canada, and I am currently working as a contractor. Now that I have started, things are no longer quite so scary.

This was a huge change, and has happened really fast. All said, I am happy to have been able to leave on my own terms, and am going to have fun playing a new game at LZ.

Would I work for IBM again in the future?

I had trouble with the binary “Would you work for IBM again” question that was part of leaving IBM feedback form. Having enjoyed my work and the people I worked with over these years, my first instinct was to answer yes, and I did so. However, corporate IBM would have to reform the way it treats its people significantly to be attractive again. I suspect IBM is too large for that to ever occur.