About TypeScript

I didn’t touch TypeScript once in the last 3 years. I stopped using it when I changed my job, from Angular 4 back to jQuery, AngularJS, and forth to VueJS.

  • Did I miss it? Not once.
  • Did I like it when I had to use it? I did.

But now my opinion on TypeScript is that it works like a self fulfilling prophecy. You think you need some control on the types of values you pass around in your application, and, in fact, as soon as you write a line of TypeScript, the linter first, and the compiler later, will immediately spot so many type errors. If you think about how many lines you wrote in JavaScript in the past, without any sort of type checking, they must have been all wrong!

Well, not really. The simplicity and strength of JavaScript is it lacks type checking. I wrote millions of lines of JavaScript, and not many of them with errors. I already know how to protect me from most of them. While developing, the JavaScript linter and the JavaScript test runner will immediately spot whatever I mistook. But also TypeScript needs a linter and a test runner, so that they do not represent a price for the lack of type checking.

While running… well, while running TypeScript is JavaScript and loses any notion of type. Surprising, but true. TypeScript only checks types at compilation time. You should validate whatever data enter into and exit from your code. For example, using Ajv to validate the JSON schemas of the responses you get for requests issued to API endpoints. Again, you need data validation in any case, so it’s not a price for the lack of type checking.

In the end, it seems to me that the benefits of TypeScript are less relevant than the drawbacks. Which is essentially one: development slowness, for having to get types right, when wrong types are hardly so subtle errors that you wouldn’t detect otherwise.

Ship

Recently, I recovered an old piece of JavaScript code I wrote more than 10 years ago.

It’s a simple game where you control a (conceptual) spaceship.

You are under a continuous attack of red balls, which you seem to attract.

You get a chance to survive yet a bit more, by shooting at them before they hit you.

But don’t hit blue balls before they reach you, otherwise you won’t recover some much needed energy.

You shoot with the SPACE bar and aim with the mouse pointer.

Enjoy

About legacies

I just stumbled upon the job offer that BeTIX 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 BeTIX 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)