DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Enterprise AI Trend Report: Gain insights on ethical AI, MLOps, generative AI, large language models, and much more.

2024 Cloud survey: Share your insights on microservices, containers, K8s, CI/CD, and DevOps (+ enter a $750 raffle!) for our Trend Reports.

PostgreSQL: Learn about the open-source RDBMS' advanced capabilities, core components, common commands and functions, and general DBA tasks.

AI Automation Essentials. Check out the latest Refcard on all things AI automation, including model training, data security, and more.

Related

  • How To Boost Your Software Engineer Career: Code and Life
  • Analysis of a Multithreading Test Task for Senior Software Engineer at Global Bank
  • From Software Engineer To Engineering Leader: A Strategic Career Transition
  • Overcoming the Art Challenges of Staying Ahead in Software Development

Trending

  • Harmonizing AI: Crafting Personalized Song Suggestions
  • Deploying to Heroku With GitLab CI/CD
  • C4 PlantUML: Effortless Software Documentation
  • AWS Fargate: Deploy and Run Web API (.NET Core)
  1. DZone
  2. Culture and Methodologies
  3. Career Development
  4. Seven Blockers From Being Senior Software Engineer

Seven Blockers From Being Senior Software Engineer

Seven habits that you need to change to practically move to the next level in your career, but not theoretically on paper.

By 
Ivan Osipov user avatar
Ivan Osipov
·
Jan. 26, 24 · Opinion
Like (1)
Save
Tweet
Share
2.4K Views

Join the DZone community and get the full member experience.

Join For Free

In the previous article (Rethinking of Software Engineer Levels), I introduced a more accurate grade scale (more transparent, experience-based, and relevant for a particular company). This one partially covers transitions from random solutions to simple ones, from tasks to streams of activities. I will cover what seven habits you might have in your work that stop you from being a real senior software engineer (SWE) or "Simple-Way Complex Problem Solver" and what does not allow you to break the glass roof.

1. CV-Driven Design

Have you ever seen people who try to apply new and fancy technologies to real products without any relevant experience? That might not bring any real value, creating another technology stack inside one company to maintain and dilute the quality of implementation. This habit is dangerous because you get used to checking technologies in an environment where it is extremely hard to replace something and must be maintained long-term.

How to improve? You might play with any technology you wish while working on your pet project or propose to analyze and compare different appropriate technologies first.

2. “We Cannot Do That!” Mindset

We all have different backgrounds, and sometimes, people grow up in an environment that trains learned helplessness. People stop believing that finding a solution to any situation is possible, and when they see complex tasks, they retreat.

How to improve? I’m not a psychologist, but replacing “We cannot do that!” with “I don't know how to do that yet” should help from my experience. Also, try to stop thinking about resources and imagine Ideal Final Result. This practice will help to jump much closer to the solution.

3. Technology-Focused Decisions

Sometimes, we already know what technologies we are going to use, just hearing about a new task and meanwhile slightly forgetting to think about actual requirements. However, every new or changed requirement needs to design a solution and check for stack compatibility (even if you don’t do that).

How to improve? Create a checklist and change your development workflow to guarantee that you at least think about alternative options and validate that your tech stack is still relevant incrementally.

4. Poor Communication Skills

This is a pretty wide topic, but it is obvious that you cannot efficiently mentor, explain your point of view, and collaborate, having weak communication skills.

How to improve? Communication skills are pretty hard to train. Unfortunately, it is not about one framework or something like that. Start by receiving feedback about the results of your work and about collaboration with you. Eagerly request for this type of information but stay open and patient for what you hear.

5. Single-Task Responsibility

Suppose you have insane hard skills but don’t want to think wider than one task. I have bad news for you. “Thinking wider” is essential for every senior engineer.

How to improve? Ask more questions on planning. Ask to make your own draft plan for implementing a complex activity and delivering value on time.

6. Do Not Learn From Mistakes

Good for you if you can predict all potential problems of your project, but probably not. Problems will occur, sometimes because of mistakes. If you do not fix the root cause, the problem will impact your results repeatedly.

How to improve? Start from retrospectives and post-incident reviews. They will help to identify root causes and improve your results.

7. “Let’s Rewrite” Thinking

Fairly often, I heard: “It is too complex to change. Let’s rewrite”. People forget that creating something new is a ton of extra work needed to launch and extra risks of incompatible implementation. Also, this approach weakens your discipline, and you lose an opportunity to practice strategy.

How to improve? Prepare for changes, for evolution. Improve existing components instead of introducing new ones. Think in advance about your future architecture for different scenarios. Try to keep a balance between flexibility and relevance (real need of something). If you see that you can make something to support evolution, do that.

Engineer Requirement Software engineer Task (computing) workflow career

Published at DZone with permission of Ivan Osipov. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • How To Boost Your Software Engineer Career: Code and Life
  • Analysis of a Multithreading Test Task for Senior Software Engineer at Global Bank
  • From Software Engineer To Engineering Leader: A Strategic Career Transition
  • Overcoming the Art Challenges of Staying Ahead in Software Development

Partner Resources


Comments

ABOUT US

  • About DZone
  • Send feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: