A Day in The Life of a... Senior Node.js Developer
Welcome to today's installment of 10Clouds’ ‘A Day In The Life’ series in which we’ll be talking to one of our Senior Node.js developers, Radosław Litman.
Could you tell us about what your role involves?
I’m primarily a developer. Adding new features, fixing bugs, and doing code reviews is my bread and butter. Before big new features or changes get implemented in my project I’m responsible for planning (and sometimes conducting) the required research, preparing the architecture, and often creating some proof-of-concept code.
I’m also a proud member of the 10Clouds Tech Hub team. Our job in that team involves helping developers in project teams with interesting problems, introducing tools, procedures and standards to our standard tech stacks, working with other non-technical parts of our company, such as the Sales Team, and many other tasks.
Last but not least, I’m also conducting tech interviews for Node.js and React candidates. So if you plan on joining 10Clouds as a JS developer, there’s a good chance we’ll meet!
Why is Node.js so widely used? What do you like best about it?
Node.js also has a huge community. A lot of tools and libraries are shared with frontend devs. There are off-the shelf solutions for almost any problem as long as it’s not very rare. Our problem is usually not to do with finding a library, but rather finding the best one which matches our requirements.
It’s a mix-and-match environment, which is a blessing, but can also be a curse. Using Node.js gives you a lot of freedom when it comes to solving problems, so you never get bored!
What is your favorite product that you’ve worked on at 10Clouds and why?
Maybe not a whole product, but a part of it. I was responsible for creating a tool for automatic management of cluster hosting user-created apps. Before that, this project used a single instance of a single Node.js process, and it couldn’t be scaled horizontally at all.
I used Docker Swarm APIs to interact directly with container orchestration infrastructure to dynamically create multiple copies of the application. As infrastructure costs were not negligible, it was really important to only keep running only those apps that were actually used. Later on we switched to Kubernetes, and I got to learn a lot about how it works under the hood, going far beyond simple deployments and pods. It was a relatively small (sub-)project but I really enjoyed it. I worked closely with our DevOps team and I gained a lot of useful knowledge.
You’ve been at 10Clouds for over 5 years. How has the company changed during this time?
Firstly, 10Clouds grew immensely during that time. When I joined, most of the company could fit into a single small villa (one of our early offices) in Saska Kępa. As we grew, the way we do things also grew with us. In the beginning, some things were done ad-hoc. Each project was often completely different, and used different tools and solutions. At the same time, everyone knew each other and gaining or sharing knowledge was easy. If you had a problem, then you usually knew the person that could help you with it and that person knew you.
Nowadays we’re a medium-sized company with a remote-first approach. There are many more developers, which means that knowledge sharing is different. It’s not a case of asking someone, “Hey, I’ve heard that you’re using X in your project; could we talk about it?” in the kitchen over lunch. But we have a range of other great ways to impart knowledge to a broader range of people, through training sessions and 10Clouds virtual lunches. Plus there are many occasions to get together in person, including socials, parties and the twice-yearly workation.
There have also been new processes and standards introduced which have made working with clients easier. The competition has also evolved of course, so we have to work smarter and often harder to get interesting projects. So in short - we grew and we evolved and we adapted, which are markers of a good company.
What advice would you give to anyone starting out their career journey in Node.js development?
Prepare for a lifetime of learning. If you don’t like to learn new stuff, consider switching your career tracks. I’m being serious. However, if you like playing with new t̶o̶y̶s̶ tools, reading new articles or trying to see “what happens if I do X”, you’ll love it.
And from a more practical perspective, I recommend that you get to know how to use your tools of trade properly and proficiently. Master JS/TS, this includes the standard library. Make sure that you know what useful features are built into Node.js itself, so that you won’t try to reinvent the wheel. Learn how to design databases and how to query them efficiently (or at least efficiently enough). Look at the most popular libraries (like lodash) and see how you can use them to your advantage and to speed up app development. Don’t be afraid to check how other people solve their problems (a.k.a. steal good ideas!)
If you don’t have a mentor that can direct your development path, look for a roadmap, because there are definitely a lot of things to learn.
PS. We can help you with the “get a mentor” part - take a look at the links below 😀