• About Us
    • Who We Are
    • Our Work
    • Our Clients
    • Our Partners
    • Our Blog
    • News & Events
    • Insights
  • Solutions

    Analytics & Data Management

    Big DataBusiness AnalyticsData IntegrationData Warehousing

    Digital Business Automation

    Advanced Case ManagementBusiness Rules ManagementBusiness Process ManagementRobotic Process Automation

    Connectivity & System Integration

    Agile IntegrationAPI ManagementEnterprise Service Bus

    Enterprise Content Management

    Content Capturing & ImagingEnterprise Content Management

    Enterprise Portal & Mobility

    Digital Customer ExperienceDigital Workplace

  • Industry Solutions

    • Banking >
    • Government >

    Digital Banking Transformation

    Business Process Management

    Business Rules Management

    Checks Collection & Clearing

    Counter Fraud Management

    Customer Due Diligence

    Customer Onboarding

    Daily Vouchers Management

    Debt Collections & Recovery

    Instant Payment Network Gateway

    Enterprise Content Management

    Enterprise Service Bus

    Smart Analytics

    Trade Finance Automation

    Digital Government Transformation

    Business Analytics

    Business Process Management

    Correspondence Management

    Documents & Records Management

    Enterprise Service Bus

    Pensions & Social Programs

    Social Collaboration Portal

    Strategy Management

    Utility Billing

  • Services
    • Cloud Apps & Microservices
    • IT Consultancy
    • Application Development
    • Testing Services
  • Careers
    • Careers Homepage
    • Get To Know Us
    • Engineering @ Sumerge
    • Our Culture
    • Benefits & Wellbeing
    • Job Openings
    • Graduate Programs
  • Contact Us
  • About Us
    • Who We Are
    • Our Work
    • Our Clients
    • Our Partners
    • Our Blog
    • News & Events
    • Insights
  • Solutions

    Analytics & Data Management

    Big DataBusiness AnalyticsData IntegrationData Warehousing

    Digital Business Automation

    Advanced Case ManagementBusiness Rules ManagementBusiness Process ManagementRobotic Process Automation

    Connectivity & System Integration

    Agile IntegrationAPI ManagementEnterprise Service Bus

    Enterprise Content Management

    Content Capturing & ImagingEnterprise Content Management

    Enterprise Portal & Mobility

    Digital Customer ExperienceDigital Workplace

  • Industry Solutions

    • Banking >
    • Government >

    Digital Banking Transformation

    Business Process Management

    Business Rules Management

    Checks Collection & Clearing

    Counter Fraud Management

    Customer Due Diligence

    Customer Onboarding

    Daily Vouchers Management

    Debt Collections & Recovery

    Instant Payment Network Gateway

    Enterprise Content Management

    Enterprise Service Bus

    Smart Analytics

    Trade Finance Automation

    Digital Government Transformation

    Business Analytics

    Business Process Management

    Correspondence Management

    Documents & Records Management

    Enterprise Service Bus

    Pensions & Social Programs

    Social Collaboration Portal

    Strategy Management

    Utility Billing

  • Services
    • Cloud Apps & Microservices
    • IT Consultancy
    • Application Development
    • Testing Services
  • Careers
    • Careers Homepage
    • Get To Know Us
    • Engineering @ Sumerge
    • Our Culture
    • Benefits & Wellbeing
    • Job Openings
    • Graduate Programs
  • Contact Us
7 Tips to Become a Good Software Engineer

7 Tips to Become a Good Software Engineer

  • Posted by Adham Jan
  • On November 15, 2022

My journey from “Hello World” to “How to be a Good Software Engineer?”.

 

I think many of you have thought of this question multiple times especially if you just started your career. And let me tell you that you’re likely wrong about what makes great software engineers.

 

Some would think that you need to make one big move (create a programming language, create great software, or even know specific tools, etc.) to become a great software engineer and that’s incorrect. You have to know that there is no single path.

 

Others would think that you need to become an expert in algorithms, data structures, and math or have a great command of specific programming languages. But those things make you a great computer scientist.

 

“Software Engineer” is a job title. So, you will need to help your company to grow, earn money and deliver value to customers.

 

Let’s get to it.

 

1. Add Value

It doesn’t matter how pretty your code is or how much you love it if it doesn’t add value. Of course, write clean, readable code, but don’t get too caught up in enhancing the appearance of your code.

 

Also, you always need to think about the usefulness of your code and how it will help people and add value to their lives. If software isn’t useful to the people using it, then it’s not really working. You don’t want to make  software that isn’t useful or buggy that could end up eventually in the recycle bin.

 

So, to wrap up. Your code should follow this pattern:

    • Make it work (Make it work also means make it secure):

Concentrate on the basic behavior of the feature and write all tests for it.

    • Make it fast.

Try to optimize the performance of your code and don’t afraid of changes as the tests will ensure that functionality is not broken.

    • Make it beautiful.

Rename variables, remove duplication, etc.

 

2. Build Relationships

“The world is run by people, not by algorithms or computers.” — Louie Bacaj

  • Find and work with great people

Try to recognize the “golden stars” in your team or organization and ask them about their opinions on your ideas or implementations for specific problems or features, even if they don’t work with you on the same project.

Keep yourself updated with what your teammates are working on and what are the current projects and solutions in your organization.

  • Build relationships with engineers in other teams and other companies.

This is extremely beneficial and a great way to take initiatives that may have an impact on your team or organization.

As you learn about new solutions or technologies that other teams in other organizations are using, you and your team can learn about new things and possibly implement this new technology in your current project.

 

  • Follow industry leaders and try reading up on what they are writing about.

Most of the time, industry leaders write about new and efficient tools and solutions, so knowing this stuff will be very useful so that when a technical problem arises, you will know that there is a very efficient solution for the current problem you or your team is facing.

 

3. Impact

 

  • Take initiatives.

Anytime you see something that you can fix or improve it just talk to your leader and tell him what you see and how the team will benefit from it. He will be happy for that and will give you the green light to do it if it will really help.

 

This could also be a non-technical initiative, just try to recognize opportunities for overall improvements and impacts on your organization. (Always see the big picture.)

 

Another thing that will encourage you to take initiatives is thinking about the users of the software and thinking about the impact your decisions have on your team, your company, and the world. (Think beyond the code.)

 

4. Communications

  • Learn how to communicate your ideas.

As cliché as it sounds, but you really need to learn how to communicate and share your thoughts and ideas with technical and non-technical people.

 

You can strengthen your communications skills by creating presentations and writing blogs, documenting what you are working on and mentoring other juniors.

 

  • Learn how to be a good listener

Practice “active listening” and explore “body language”.

 

5. Pair Programming and Mastering your Tools

Pair programming is in my opinion, one of the best ways to master your tools.

 

When you pair with experienced developers you can learn from their coding skills, you will know many shortcuts and useful features of the tools they are using, and you can also learn about a new tool that will save you so much time.

 

Also try to observe how they approach a problem, debug it and search for stuff.

 

6. Attitude, Empathy

“A 10X engineer is not someone who just working 10X better than everyone else. A 10X engineer is the type of person helps make 10 other people better than they were before”
—Kelsey Hightower

 

  • Be open-minded

Most of us don’t like to be wrong or have our code called wrong or bad (I usually think of  my code as my son.) (like, how dare you say that.) Just take your time, try to accept criticism and practice being wrong.

 

  • Do not “act as a prima donna”

Don’t act like you are the star of the show even if you are talented, you will infect your entire team/organization, making people miserable, and tanking the team productivity.

 

Have a good attitude and help your teammates, appreciate their work, give them feedback and respond faster (if you are going to be late just say it and apologize to them).

 

If you are a leader or team manager, try to always be close to your team (tell jokes for example 🙂 talk with them as you are one of them, not a manager).

 

7.Growth Mindset

  • Consistent learning.

Remember that you were not born with your skills and your skills are not fixed. Always have a learning track for yourself (for example take a course each month). You can ask for help and resources from seniors or your team leader.

 

  • Ask for feedback.

Always ask for feedback even if you already taking feedback from your manager. Ask your teammates and others you have been working with and recognize your mistakes or weak points and work on them.

 

 

You may wonder why there are only seven tips rather than eight or nine. Like I said before there is no predefined road or 7 tips plan to be a good software engineer there are many and many of tips I could have added to this blog (Time management, reading, teamwork, etc.)

 

So, I think you can try these tips and see how well they work for you, and I encourage you to google about this topic and learn about more tips that might be more suitable for you.

 
Recent Blog Posts
  • Event Streaming: Enhancing Efficiency in Banking 
  • Your Guide To Integration Modernization
  • APIs: Transforming Chaos into Order
  • Event Streaming Simplified
  • Unlocking the Power of Spring Data JPA
Categories
  • Careers
  • Webinars
  • blog
    • Educational
  • Technology & Business
    • Digital Business Automation
    • /Modernization & Cloud Native Apps
    • Banking
    • Agile Integration
  • Software Engineering
    • Application Servers
    • Application Testing
    • Business Analysis
    • Frontend
    • Microservices
    • Uncategorized
  • Blog Posts
  • News & Events
  • Featured

Our Digital Transformation Partnerships & You

Previous thumb

Sumerge x IBM Roundtable Event Saudi Arabia

Next thumb
Scroll
Follow us

Significant change, positive impact and passion are our fuel. We have a unique culture reflecting the way we think and act. A culture that encourages freedom and responsibility, high performance, customer centricity and innovation.

Global Locations

Egypt

Saudi Arabia

United States

About us

Who We Are
Our Work
Our Clients
Careers
News & Events
Insights

Services

Cloud Apps & Microservices
Application Development
Consultancy
Testing Services

Solutions

Analytics & Data Management
Business Process Automation
Agile Integration
Enterprise Content Management
Enterprise Portal & Mobility

Industries

Banking
Government

Latest Blogs
  • Database Events & Triggers
    December 14, 2022
  • Design Patterns
    August 23, 2022
Copyright Ⓒ 2024 Sumerge. All rights reserved.
  • Blog
  • |
  • Support
  • |
  • Contact Us
  • |
  • Privacy Policy
Sumerge
Manage Cookie Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}

     

    Book A Free Consultation Session