Looking for the perfect match

Lately, I passed through many selection processes, and I still will go through some more. Did I meet a company where I really wanted to work at? Surely, for many I could have made a positive impact working there. But none was a perfect match. 1I’m not talking about cultural fit here

Why do we look for the perfect match? We should already know that such a thing doesn’t even exist. Lasting couples aren’t a perfect match. How can colleagues be a perfect match to each other? For n colleagues, that would require n * (n - 1) / 2 perfect matches. Insane.

I don’t look for the perfect match with my colleagues, but I must confess that I’m often relieved to get rejected by colleagues which present to me in the testudo formation.

Almost impossible to be admitted here, by design.

How do you expect to find a new team mate if, as soon as a discussion arises, you close ranks and state you know better. Nonetheless, they keep looking for the perfect match, which boils down to a developer with the biggest experience to write quality code without spoon-feeding her, and the smallest experience to follow orders with humbleness.

That, or likemindedness. Isn’t it a known problem to hire like minded people?

Such practices can 2I stroke this through also lead to groupthink where all go along with decisions for the sake of team harmony. Creativity, innovation and growth can 3I stroke this through suffer in the absence of diversity, vigorous debate and conflict.

I never liked to sheepishly follow others. Decades ago, when I was 10 years old, our school teacher gave us a mathematical problem to solve cooperatively. I immediately found a short solution, and shared it with the others. They dismissed it and decided to elaborate one of their own. How proud I was when our teacher validated my answer and not theirs.

During my job interviews, I genuinely make an effort to understand and value the programming decisions, mostly the architectural ones, that my yet-to-be colleagues made in the projects I’m asked to collaborate in. How could I not show my surprise when they tell me:

  • We can’t use Docker / Kubernetes because our setup is too complex
    • What? They are used at Google, I don’t think they have a simpler setup.
  • We prefer vanilla JavaScript to React, because it wouldn’t scale for us.
    • What? It’s used at Facebook, I don’t think they have a smaller scale.

About legacies

I just stumbled upon the job offer that REDACTED-3 1the company where I had been working for the last 3 years, up to two months ago published to fill the vacancy I left.

Here it goes.

Role & Responsibilities

  • Reporting to the CTO, to be the reference in the Front development of the own platform. 2this is the same promise they made to me during my face to face job interview (after delivering a stellar solution to their job challenge) to entice me, but they were never able to hand over anything to me of their huge AngularJS platform in the next 3 years
  • Lead a migration project from AngularJS to a more current efficient solution, possibly VueJS. 3this is what I suggested just two months after I started working there; I had compiled and shared with them a GitLab repo with work-in-progress documents, describing all the steps I envisioned to migrate their big ball of mud, AngularJS, ES5 app to a well architected, VueJS, ES6+ app; they never ever gave me any feedback, until this posthumous job offer
  • Ensure the highest quality of the software developed. 4the newcomer will find the bar quite high indeed; the only feedback I got from the general manager was his praise of my excellent programming skills
  • Possibility of managing a team. 5this was also part of the initial enticing offer they made to me, but the initial team of 2.5 frontend developers shrank to one of 1.5 after a few months; I was the 1 and the .5 was another guy which (in his other .5) also developed the Java middleware; he had been doing both since the start of the company (7 years ago)

Skills & Qualifications

  • Empathy with our Product, high communication skills and a desire to understand how our REDACTED-3 platform works. 6did I say anything about a big ball of mud? be ready for it
  • Experience of at least 4 years in FrontEnd development and specifically with AngularJS. 7this will be of little help to you, as it was to me; not only because of the big ball of mud, but also because the original developers who chose AngularJS, and knew how to create an AngularJS app, had left the company years before my arrival; now you will find misuses at many levels, together with indiscriminate use of $scope and timeouts, be ready for it
  • Ability to build leadership based on both technological mastery and the ability to combine team, tasks and effort, leading by example.
  • Committed, positive, decisive, empathetic person, with the ability to work in a team and quality-oriented.
  • Aligned with continuing to build the best Product on the Market to provide the best services to our Clients

Benefits

  • Face-to-face 4 days a week
  • 1 day remote
  • Office in Barcelona Center 8nice and spacious office, in the most central street, close to public transportation of any kind, but a bit expensive to eat out, be ready for it
  • Indefinite contract
  • Flexible schedule
  • Solid, growing and sustainable project
  • REAL growth possibility 9I doubt it, the company was very small (15 employees) when I joined it, and it was much smaller when I left (5 employees)

About external improvements

Do you know Outline?

Lately, I started using it to skip over so called soft paywalls. It works most of the times.

But today, unexpectedly, it resuscitated dead content too!

Look at the following snapshot of a passage in an interesting article about software architecture with microservices:

https://segment.com/blog/goodbye-microservices/

Look at how the second paragraph ends: “A sample payload looks like the following:” and how the next paragraph begins: “As events were consumed from the queue,“. Something is clearly missing. Where is the payload sample? Nowhere to be found.

Completely unrelated to that issue, I decided to open the page in outline, because I remembered I had seen it was possible to add annotations to transformed pages.

To open a page in Outline is extremely simple, just prefix its full URL with “https://outline.com/” and the service will present to you the transformed page at that URL.

What a surprise when I scrolled through the same passage and saw this:

https://outline.com/asskU

For some reason, Outline was able to resuscitate the dead content, but it got the section title wrong. (sigh, a minor drawback).

Do you know the Web Archive?

I researched a bit in its captures of the microservices article (almost 200, as of today) and found out that the payload content died between the 28th of March 2020 and the 23rd of April 2020, as yo can see from these captures:

28 March 2020

https://web.archive.org/web/20200328190530/https://segment.com/blog/goodbye-microservices/

23 April 2020

https://web.archive.org/web/20200423005607/https://segment.com/blog/goodbye-microservices/

But, wait a moment. Look at the section title in the capture of the 28th of March: “Why Microservices work worked”. Outline’s error seems so much minor now. So much so that the original page got it wrong too.

Do you know Hypothes.is?

I was going to end this article with a link to the Outline page with my worthy annotations, but it turns out that Outline URLs are broken, apparently. This page https://outline.com/asskU doesn’t work today.

However, the annotation service is provided by Hypothes.is. If you have Google Chrome, you can install their excellent browser extension, and navigate to the “official” Segment article to see my annotations, and add yours, if you like.

My annotation is here