Skip to main content

Adding TypeScript to my skills to become a Full Stack Developer

Background

In 2015, I started with Java during my Bachelor in Computer Engineering to pursue my career as a Software Engineer. After my graduation, I landed my first developer position as a Java Backend Developer for a large financial platform. The platform was built on top of a Microservices architecture. I was thrown in the deep since the Microservices pattern was not something they teach you in university. This forced me to always focus on the quality of my code.

Adopting TypeScript next to Java

As my career progressed, I found myself drawn to the dynamic, fast-paced and open-source world of JavaScript and wanted to start using NodeJS. I switched companies and immediately I was surrounded with the ability to build an API in minutes. On top of that, I could use the same language to build other types of applications like responsive frontend applications, mobile apps and desktop applications.  

Adopting JavaScript next to Java was both exhilarating and challenging. JavaScripts versatility and widespread use across the web presented me with a wealth of opportunities! However, there is a downside to this flexibility and compatibility for multiple channels: no types. No types meant I spent more time ensuring my code did not break because of type mismatches. The upside of this is that I got plenty of experience writing tests!

Unlike the strictly typed Java language, JavaScript does not support typing but this was solved in 2012. The Open Source community introduced TypeScript, a superset of JavaScript, adding (dynamic) static types to the language. I adopted TypeScript, the overlap with Java became much bigger and my adoption accelerated. I now use TypeScript to develop NodeJS backend applications and React/ NextJS frontend applications.

The power of the Open Source Community

TypeScript is supported by many tools that make coding faster and better. Tools like VSCode allow you to develop code with the help of extensions. These extensions, but also frameworks like NestJS and React, help you write code better and faster. I found that the downside of relying on extensions and frameworks is that you run the risk that you lose touch with the core software design patterns of a language like JavaScript. 

I always strive to fully understand how a language works under the hood. This helps me to faster understand and adopt frameworks (frameworks come-and-go in rapid succession in the JavaScript world).

Lessons learned and best practices

I agree with many that JavaScript is not the best language in the world, but that is the price of multi-channel compatibility I guess. To make up for its quirks and limitations, I use e.g. The Gang of Four Design Patterns to understand how JavaScript and TypeScript work under the hood. It is impressive to see how the Open Source community accelerates the improvements of JavaScript and TypeScript! 

In summary, adding TypeScript to my skill set besides Java was a great decision for my career! It created new possibilities and expanded the domains I am able to develop in. Even though I started with Java and I still enjoy developing with it, I consider TypeScript to be the best addition to my skill set so far! Next on my list is GO...

I use both Java and TypeScript in my current project where I am developing a large composable platform, leveraging the strengths of both languages! I've written a Blog Post about Unlocking efficient, scalable service communication with RabbitMQ where I apply both Java and TypeScript.