How to start a career as a full-stack developer, what is an "ideal stack" and which technological trends are in demand today.
Interview with Stanislaw -
JavaScript Software Engineer
of HF-Solution.
We believe that the basis of any successful company is a talented team. People are the most important resource and the communication between them can create the best solutions for any business.

In the series of articles "People, who make solutions" we tell about our colleagues and ask them about their professional path in the IT industry. You can check the interview with our CEO - Yuri Gres.

And today we are talking to our hard-working and ambitious JavaScript Software Engineer - Stanislaw.
Hi Stas. Tell us a little about yourself. Where are you from and how did you start your way as a developer?
I am from Minsk. My path to IT began in the 9th grade, when I faced a difficult choice of my further development - to stay in school for another 2 years and get a general education, or, on the instructions of my parents, to start getting in-depth knowledge in the area of high technology that was interesting to me. I chose the latter and went to college as a software engineer. In my studies, my classmates inspired me - they had a status, not adolescent independence in decision-making, and great achievements in programming. My first programming language was Python, then I switched to HTML and CSS layout. I liked that I immediately saw the result of my actions. I started with the usual tasks in the Sololearn application, then I was a freelancer, after which I was invited for an internship at one of the largest companies in Belarus. That's how it all began.

What sources did you use for studying? Did you have mentors?
I have always liked to study everything on my own, but I gladly accept the advice of colleagues - it motivates me to do my job at an even higher level. The best source for self-education are examples of projects that need to be written in stages, they are really useful. I also recommend https://learn.javascript.ru/ - it's a great source.
Where did you go to work after graduation? What was the most difficult part of finding a job?
After completing my third year of college, I went to work for one of the Belarusian companies. When looking for a job, the main thing is to overcome fears - you do not have experience in interviewing yet, you do not know what knowledge will come in handy, and how to make a good impression. However, now that I am interviewing other developers myself, I realize that everyone goes through this. I recommend looking for interview examples in your specialty, both on Youtube and in reading form.
startup robot
Why did you choose JS? What features does it have? What are the advantages and disadvantages?

I wanted to see what I was doing. The console does not provide this option. The main feature of JavaScript is its versatility - you can write something for smartphones, tablets, computers, or watches. It's great that all this can be done in one language.

The downside is its incompleteness. This language still has a lot to go through, I am sure this is just the beginning. Many libraries have raw versions and they are unstable, quite often they are completely updated, so that you don't even have time to rewrite the code. Without TypeScript, you can end up with poor code readability and it might work in an unpredictable way.
Do you think JavaScript is good as the first language?
Oh yes, as a first language it is very suitable. But you need to understand that if you start learning OOP or something like C ++ with it, these are parallels, different concepts, and so on. No OOP fundamentals, few programming paradigms, no typing. There are classes and class inheritance, but it is very different from the usual implementation in the C ++ / C # / Java programming languages.

This language is very simple, but rich in functionality, there is access to more complex levels if you delve into its capabilities. But for people looking to write web applications and in particular, to deal with Front-End, there aren't a lot of options today.
Tell us about the frameworks - which of them do you use in practice? Why? What is more convenient?
For Front-End I use React. This is a very cool library, I also write sometimes in Vue. As for the server, these are Nest.js and Express.js. These frameworks are pretty easy to write. Nest is, of course, more complex, but it is one of the best frameworks in Node. React Native is great for mobile apps.
What trends do you see in JavaScript development (frameworks, etc.)?
Currently, React and Next are developing on the market. Of course, TypeScript is worth mentioning separately. These combinations, in my opinion, have every chance of becoming the golden era of web development. As for the backend - I recommend next.js. TypeScript is a great framework, which has a lot of potential.
What is Node? Why is it needed, what are its features?

Node is the future of Back-End development. It is a very convenient JavaScript runtime.

The main features of Node are:
  • open source;
  • high scalability;
  • speed;
  • no buffering;
  • single-threaded;
  • asynchrony.
startup robot
What skills are required from a Full-Stack developer?
First of all, there must be an understanding of how the client-server works. When I started writing the Back-End part in Ruby, I figured out in detail what it was and how it worked. My advice - don't just read the information on how Full-Stack works, try to write the server yourself and try to send requests to it from the client.
What is your ideal stack? What would you like to do with great pleasure?
Probably a bunch of React.js + Nest.js (Express.js) and all this on SQL/noSQL. I like to have control and understanding not only of the Client but also the server. I love the server-side, writing the backend is like watching a movie for me, it seems like you've just started and it's done. Data processing/logic/getting 200 status is my inspiration and motivation.
What technologies do you see the future behind?
It's actually hard to say, but one thing I know for sure - Solidity (a programming language for smart contracts), which is very similar to TypeScript, and the web3.js library, which helps to write smart contracts, will be trending for a long time. Technologies of cryptocurrencies and smart contracts are developing very quickly. A couple of years ago everyone dreamed of creating their own Store or Time Tracker, but now they have been replaced by crypto wallets and smart contracts.
Tell us more about smart contracts. How complex is this topic? Who are they useful to? What are the current trends?
The topic is complex but very interesting. There is documentation, but if you want to do something with a working example, you have to pay. Any transactions cost money. There is of course the Remix IDE and the Ropsten Test Framework network. Cryptocurrency has long overtaken AI in the hype. This is a new trend that will develop for a long time, and many companies will want to implement smart contracts because it is very convenient.
What do you work with more? Back-end or Front-end?
With everything :) I am the type of developer who feels good everywhere, no matter which side of development it is. I see the big picture of how the project can be implemented efficiently, and I do it in the best way. Last month I had more Front-End, and before there was more Back-End. It depends though, I often combine both.
startup robot
What are you doing now? Who do you work for? What projects are you implementing? What technologies are you using? What are you responsible for on the project?

I am currently using React and Nest, working for American clients. Our team is international, all the guys are really cool and friendly. I mostly code Front-End in React TypeScript, almost all UI tasks for the main application are up to me. Also, in addition to the main project, I conduct interviews with guys who want to start their way in IT. Those who pass their interviews become my mentees. I like to teach them, I feel happy for them when they succeed with their first tasks!
In general, our company - HF-Solution - is the second family.
When something doesn't work out, it becomes our common concern. For 2 years of collective work, there has never been a case when someone refused to help their colleague.
Often our guys are as passionate about solving a problem as if it were their own project. Once a guy from our team couldn't get rid of unnecessary re-renders from a project. We wanted to help him, so we went to the kitchen and made the decision that nobody would leave that day until we came up with a solution that would help. By the end of the day, instead of 85 downloads, there were only 13. I am very glad that I have the best colleagues who are always ready to help even at 3 am!

What is your motivation to work in your current job?
Good team and understanding one another. It is very important to me. If you ask what is more important to me: a job with a higher salary, or a job where there is a good and comfortable team - I will, of course, choose the latter. After all, most of the time we spend at work, it becomes our second home. I consider good communication the most important. If there are good relationships and communication, it is a pleasure for me to work. Even if there are some difficulties on the project, you can always agree and find a compromise.
After what salary does an interesting project become the most important?
I once had an interesting case at an interview - I was asked if I would leave if I were to do the same job for a month, two, three, and so on. They expected me to answer that I would leave. But that was the first interview in my life and was ready to work 24/7, so I said that I wouldn't quit. If I were asked this question now, I would no longer be so selfless, and I would take into account the size of the company and the variety of projects. Everyone has different needs for money. After satisfying basic needs, self-development and training for more complex projects come to the fore.
Can you give some advice on what a beginner should start with?
You should understand exactly what you like. Don't start learning a language because they pay more here or because everyone codes in it. Do what you want. When you know what you are interested in, start with video tutorials and then read books. The most important thing is to do exercises. Real practice is the best teacher.
Where to get information and how to grow to a senior?
I often come across such questions as “How to do this? How to do that? »It looks like the official documentation has left us. In fact, many people are simply too lazy to read it and prefer to ask a question on stackoverflow, although all the information about updates, patches, and interesting things can be found in the documentation! Regarding the levels of programmers, you should understand that writing a code for 5 years will make you a Senior. I have many acquaintances who have overtaken everyone in a couple of years and have become unique developers with extensive knowledge and skills. The inner awareness of your level comes when you have 0 comments in a Pull Request, and you are writing good code along with others, and not just sitting at the computer for several years.
What advice would you give to the companies at the start of a project? How do you find the perfect stack?
First of all, you need to understand the perspective of the project. I often see the situation when customers say “Let's make it cheaper and faster, and then we'll see how it works”. Eventually, they have to rewrite the project. The same happens when customers expect a massive project like Facebook or Booking with a similar stack, even if they just need to build a good email site.