My first year working in the IT industry
Swee Meng had shared an article about his 10 years working in the IT industry. I would like to share my experiences with the fresh graduates or newcomer.
It has been 1+ years since I am working as a Software Engineer. I am not an expert in this field, my sharing is based on my experiences. My experiences might not be applicable everywhere.
This is my first time writing an article, if there are any feedbacks, let me know. 😄
The Right Technologies
I always believe in learning the latest technologies(tools), that's why I learned JavaScript and used it for full stack development.
Below is the tech stack I had learned while I am studying at the University to become a modern typewriter.
Frontend: Angular, React
Mobile: React Native
Back-end: Express
Most Software Engineer¹ is a modern typewriter since what they will be doing is just converting designs into code. In a world with GitHub and StackOverflow, you can easily get help for common tasks.
I thought I am well prepared. Unfortunately, for most people, like me, chasing the latest technologies might not get you what you want, I will share it in The Right Companies section.
The Right Companies
I had worked for a software agency, small startup and freelancing previously. I would share my experiences and what is the differences for different companies.
When I graduated from the University, I had a hard time looking for jobs in Penang, Malaysia. Most company is either using old tech stack or pay poorly.
While I had exposure to the Client-Server Architecture and DevOps Culture. I can't imagine monolith applications is still the most popular choice and widely used in my country. Once I had an interview with a software engineer that they don't even have version control for their source code, when someone wants to update the system, he had to announce to the team that he is editing a file so that others won't mess it up.
Fortunately, there is a trend of remote working, people can get the right jobs, and the company can get the right skill anywhere. As long as you can demonstrate your skills and able to learn things fast, nothing can stop you from getting a good life.
My career starts from begging my friends to hire me with the minimum salary to prove that I am capable of doing the job and deserving to pay better. A few months later, I found a company that willing to be me twice as much as my salary, that's why I moved and had terrible experiences as a tech lead. You can see more at Careers Promotion section.
Brief comparisons of different scale companies from my experiences,
Freelance: It really depends on the project you accepted. There are a lot of tasks which some company can't solve and asked for the freelancer to help. But there is also a lot of repetitive work like creating WordPress sites which don't improve your skills at all.
Software Agency: If it is a small software agency, you will be expected to do MVP(Minimum Viable Product) for other startups/companies over and over. There is some software agency that helps to maintain the apps, which you can understand the issues that happened when scale.
Small Startup: Build fast, learn fast. Usually, don't have enough people, you need to do everything in a breakneck pace. It is hard to get someone to guide you along the way, you have to learn from your mistakes or lousy code from the previous colleague.
Medium Startup: This might seems to be the perfect ground, I haven't work for this type of company. The startups should have a standard in the software development process and able to introduce changes if it is good for the team.
Big Corporation: Depends on the team you joined. Chances are you are working for a small part of the whole system and don't know how everything works when put together.
Careers Promotion
Typically, companies would like to promote top performance employees to a higher role.
You have to know whether a promotion in the career is right for you and the team. When you become a manager or tech lead, your nature of work is different.
I had become tech lead for a startup after the first month of joining them. Due to the company size is small, I had to do a lot of administrative tasks, hiring, project management and code review which requires more than 10 hours of work every day.
The worse thing is I don't have time for learning, and I didn't motivate the team to learn beyond what they are doing which lead to stagnation in progress for the whole development process.
From my experiences, a tech lead has a lot more to concerns that an engineer. As a tech lead, you should know how to prioritise tasks and motivate the team.
In case if you are willing to become the tech lead, you should read below articles and subscribe to the mailing list, which gives you an opportunity to learn from others tech lead experiences. Three common mistakes for first-time tech lead Software Lead Weekly Newsletter
Conclusions
There is no right or wrong to choose which tech stacks and companies to work with. But I would like to emphasise that working with the right-minded colleagues can significantly increase your happiness and satisfaction.
Besides that, understand the fundamentals will get you further than just doing repetitive tasks. Instead of suggesting a lot of learning resources, I would recommend you to take a look at CS50x. The lecturers are able to explain the concepts in simple and interestingly manner.
Footnotes
- A lot of people are doing web and mobile development nowadays. I am using Software Engineer as a general term for people who code.