logo
article

How to double your career growth as a Software Engineer- Part 01 : Develop communication skill

Many software engineers think they earn less money because of the low labour cost in their country. It is true that the labour cost is low in many countries, but the question is why? One of the most common reasons behind it is lacking in communication. When you start talking in English some of your colleagues may praise you by saying, ‘your English is awesome’. But the reality is when you start talking to foreigners they nod politely as they do not understand your English. Knowing languages like Python and JavaScript are important, but learning to communicate efficiently in English is more important. If you can not communicate properly, your foreign clients will not count you. They start to think you are less professional. They can not distinguish you from other ten software engineers. Many of us are proficient in English but not idiomatic. You should know how to speak idiomatically and make jokes in it. Understanding feelings is also important while communicating with others. Emotional intelligence plays a great role in it. It is the ability to recognize our own feelings and those of others for motivating ourselves and for managing emotions well in ourselves and our relationships [1]

Read More
article

How to double your career growth as a Software Engineer- Part 02 : Show proactive attitude

Most people are reactive in nature. They do whatever they see others doing. But the people with a proactive attitude are entirely different. They love to take challenges and lead a life out of their comfort zone. If you can be such a person as a software engineer it will enhance your chance of making more money. Software engineers who can not show proactiveness in their attitude are considered to be like other cheap offshore labour. Your client from a western country may say, “our customer reported that the software you made is too complicated for them. Maybe we can make it a bit more user friendly.” After hearing it a man with proactiveness will not just say ‘yes’, he will share some ideas with his client and make sure he agrees on it. It makes a lot of difference than an engineer who just hears about complains and says ‘ok’ or ‘yes’ and does not suggest anything at all. Showing a proactive attitude will make you feel like a peer to your clients. We all know, It’s easy to discount offshore labours but it is not easy to discount peers. Here are some tips which have been given by John Sung Kim, CEO of JetBridge to present yourself as a proactive software engineer to your client/boss- First of all, try to anticipate the questions you will receive from your client and answer them before they ask you. If you can not answer anything instantly, just let them know you can not answer now, but you will inform them later after having a bit of research. Challenge your client/boss with new ideas, tough questions or honest feedback, even if they don’t ask you for it. It will raise your position to them. Do not always go forward with the plan that your client/boss suggests. Do your own math and see if there’s a shorter path of implementing the idea. Always ask them to give honest feedback on your work and do not be satisfied with some praise. Keep on working to show something better in time. Do not be silent. Silence is for servants. Voice your opinion, but do it in the most positive way possible. If anyone from your team does something unprofessional, report it instead of trying to protect your colleagues with silence. Such protection keeps you all as servants. If you get rejected, do not give up. Ask them what you should do to get them to say ‘yes’ next time. Note what they say and improve yourself. Study the person’s background and previous projects before you get on the zoom or call with that person. Never come cold unprepared to any meeting. Always follow up. Say thank you after meetings and post follow up questions or suggestions. Get connected to the executives you meet with on: LinkedIn, twitter, medium etc. Show them you’re a true fan of theirs, not just another person asking them for something.

Read More
article

How to double your career growth as a Software Engineer- Part 03 : Maintain work ethics

Software Engineers should be value-focused, not working hour focused. Yes, you should have a work and life balance, but working just 40 hours a week without creating any value is useless. You may work fewer hours, but your output should be countable and it should make an impact on the company you are working for. It’s also true for your clients.

Read More
article

How to double your career growth as a Software Engineer- Part 04 : Professional conduct

Software engineers should value long term reputation more than short-time money. They should be honest and helpful towards the people they work with. Successful software engineers do not show arrogance or pride just because they solved some HackeRrank problem or own 50% share of a freelance company. They are humble towards people. This is what true professionalism is and it helps them to be successful in the long run.

Read More
article

How to double your career growth as a Software Engineer- Part 05 : Take risks

There is a saying, “The biggest risk is not taking any risk”. Most of the software engineers can not reach the position they want to be in just because they are scared of taking risks. They want to change their life by having a startup or doing something new, but they love their comfort zone. They do not want to go through all the difficulties to make a successful startup and fail eventually. This is why risk-taking tendency and patience are the most valuable things that a Software Engineer can have to be more successful in their career.

Read More
article

Implementing Domain Driven Design (DDD) in Clean Architecture - Part 1

DDD is suitable for complex domains and large-scale applications rather than simple CRUD applications. It focuses on the core domain logic rather than the infrastructure details. It helps to build a flexible, modular and maintainable code base.

Read More
article

C# Tips: Refactor code with Open-Closed Principle

How can you apply the Open-Closed Principle to support new types of discounts without modifying existing code?

Read More
article

Exploring the Power of Interface in Modular Systems

In the world of software engineering, interfaces are commonly used to define method signatures and facilitate dependency injection by injecting dependencies into class constructors. However, interfaces have a broader application beyond these traditional uses. One such application is plugin architecture, where interfaces play a pivotal role in enabling developers to visualize and harness the potential of diverse use cases.

Read More