How to perform as a Software Engineer

How to perform as a Software Engineer

Software engineers often referred to as software developers, design innovative software for businesses and clients. From a personal banking app to a company’s project management workflow system, software engineers are behind many of the essential apps and programs that make business and daily life more efficient.

I have jotted down a few points I think will help anyone perform as a software engineer at the highest level. This is not an exhaustive list, but nevertheless a beginning!

Be curious to learn

Software Engineering is an ever-evolving field and it is difficult to keep up with the pace.

Always be on the lookout to learn new things and try them out. Be it AI/ML, Data Science, Web3 or Software Design. Follow tech people on Twitter/Linkedin who publishes relevant stuff they build or working on.

Make it a habit to go through technology blogs of various companies and even research papers of famous tech eg: Hadoop, Dynamo etc. Most of these publications are made available for public.

A very important is thing is your college or background doesn't matter as long as you can keep this curious bug going on. A good habit that you can follow is to keep a goal of learning 3 new things every day. Write a journal and keep track of your learning.

Communicate like your life depends on it

There is a reason why every software engineering job listing emphasis on communication skills. It is a such a major part of every day job and there is nothing called over-communication among the team.

A major part of learning always comes when you help people solve their issues and for that to happen, your team should know you are approachable.

Any idea or an approach has be communicated effectively to the team for their buy-in, so work on building the rapport. Schedule informal calls with your teammates, bounce off ideas against each other so they know your thinking pattern. Being a team player is a crucial asset for being very successful.

Don't hesitate to seek help from team

Personally I see this as a common theme among most engineers. They hesitate to seek help with either a fear they will be judged or a self-confidence that they can figure it out.

Answer is simple: Don't re-invent the wheel.

If there is someone who can help you with that, seek their help and use your time for something more useful, and productive. Just because you can spend time on figuring out something, doesn't mean you should.

Also, I have never seen any engineer who are agitated because someone asks them a lot of questions, its always the other way around. They prefer being asked questions because it improves their understanding as well. Its symbiosis, see !

Be a T developer

T developer is a concept I have come across a while back and been impressed since. The top horizontal line in letter T (capital letter only :P ) indicates the breadth of knowledge and the bottom vertical line signifies the depth. So now, how would you usually write T ? First the horizontal line and then the vertical one.

Same process in the engineering as well. Spend time assimilating the breadth of knowledge on a system or technical stack. Once you have mastered enough range, focus on getting deep into it and build a niche.

This is recommended for multiple reasons, a breadth almost always gives you upper hand in designing better systems. Knowing just a single part of system, especially in the early stages of your career, limits the thinking ability and the contribution velocity. Also since the software field is so rapidly pacing on, having a breadth of knowledge helps you to stay relevant and pivot.

Equally important is to have an in-depth knowledge in a specific field or a piece of system. Spend time understanding how that particular framework is built under the hood and its roadmap from its Github repo helps you.

Think like a product owner

I cannot stress the importance of this. Think of it, no research in the history has been funded because it's fun. Its always funded because of its business/commercial/industrial impact.

Same principle works in software engineering as well. Almost everyone wants to work in bleeding edge tech like Deep Learning etc, but how often do we come across those problem statements ?

Most often an idea is limited by our knowledge, thats why we call people who go beyond their knowledge as "visionaries". This is an essential skill for a product owner and an equally necessary skill for an engineer.

Consider your software as your baby. As your own product. As your startup's product and as if your entire worth depends on it. Now start thinking on how you can improve it and how can the UX of it can be enhanced. The output of this exercise is what would translate into exciting problem statements. Innovation starts with this !

Read every day

Probably the most important skills an engineer can acquire is to read every day. Every single day.

Not just about software engineering, but about leadership, management will help the careers. For example, a book like "Measure What Matters" guides you in framing the right career metrics and a framework to track them. A book "No Rules Rules", "Working Backwards" gives you deep insights into how software teams work towards a problem and how to build a culture in the team.

A good habit to inculcate is to start reading for 10 minutes every day. It still gives you 3650 minutes ~ 61 hours of reading time every year and also an outside chance that you will not stop in 10 minutes :P . It's a win-win.


Leave a Comment
Previous Post Next Post