Coding is the easiest part of the job. The hardest part is creating resilient, useful, and beautiful software. I advise the following
- Learn the domain you are in deeply. Talk to the experts (not senior engineers, I'm talking about people doing the work) in your company about how the business and industry works.
- The interface is the product. Design beautiful interfaces that match people's mental models. A beautiful architecture needs to support these interfaces. If you have poor engineering, it will show through the product via the interface.
- All good engineers are good architects and product people. They understand the needs of their users. They understand their psychology.
- There might be software patterns for your industry, find them and learn them.
TLDR; The coding part is easy, don't seek the senior engineer to get ahead, look for the industry and business experts. Learn how to build products that are impactful for the people using your software and the business. That's how you become a great engineer.
- Learn the domain you are in deeply. Talk to the experts (not senior engineers, I'm talking about people doing the work) in your company about how the business and industry works.
- The interface is the product. Design beautiful interfaces that match people's mental models. A beautiful architecture needs to support these interfaces. If you have poor engineering, it will show through the product via the interface.
- All good engineers are good architects and product people. They understand the needs of their users. They understand their psychology.
- There might be software patterns for your industry, find them and learn them.
TLDR; The coding part is easy, don't seek the senior engineer to get ahead, look for the industry and business experts. Learn how to build products that are impactful for the people using your software and the business. That's how you become a great engineer.