Win a copy of Machine Learning with TensorFlow this week in the Artificial Intelligence and Machine Learning forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Jeanne Boyarsky
  • Tim Cooke
Sheriffs:
  • Bear Bibeault
  • Henry Wong
  • Devaka Cooray
Saloon Keepers:
  • salvin francis
  • Tim Moores
  • Tim Holloway
  • Stephan van Hulst
  • Frits Walraven
Bartenders:
  • Jj Roberts
  • Carey Brown
  • Scott Selikoff

What makes a senior developer

 
Bartender
Posts: 1810
28
jQuery Netbeans IDE Eclipse IDE Firefox Browser MySQL Database Chrome Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
When did you cross that line from intermediate to senior developer? If you hire developers, how would you define the difference?

I know I still have years to go before I can call myself a senior-level developer, but it's something of a vague term. I've seen job postings for seniors that ask for 5 years experience. Sorry, but I have more than that and I don't feel like 5 years is enough. It seems to me that 10 years should be the minimum before you can call yourself a senior developer, but on the other hand, it should be a measure of skills, not time served.

So what skill and skill levels define a senior developer?
 
Bartender
Posts: 3648
16
Android Mac OS X Firefox Browser Java
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi there, the years of experience is only for reference. When it comes to jobs and skills, do you have x years of such and such skill or you have done such and such x times.

These 2 make a big difference. Use java as example. You may have used all kinds of frameworks eg Spring, Struts etc during your tenure but each skill is only say 2 months. Do you consider you have working knowledge in these?

On the other front, doing x several times. You may have done many projects but every single one of them you do is setup and configuration of servers/apps/database. Then do you consider you are well verse with Linux, Oracle db, and such?

Another point of view is the exposure rather than technical skills. As you go up less technical and more managerial will happen.
 
author & internet detective
Posts: 40491
823
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
As you've noticed, we have a lot of title inflation in our industry.

Skills I can think of off the top of my head:
1) can work independently
2) can mentor others
3) can figure out how to solve problems
4) knows the right questions to ask
5) knows multiple technologies
6) has good "software craftsman" skills
 
Sheriff
Posts: 67504
173
Mac Mac OS X IntelliJ IDE jQuery Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
All of what Jeanne said, but

Jeanne Boyarsky wrote:
6) has good "software craftsman" skills


this is the most key to me. In other words, "has progressed well beyond considering the code good enough just because it works".
 
Bartender
Posts: 11445
19
Android Google Web Toolkit Mac Eclipse IDE Ubuntu Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Jeanne +1

Jeanne Boyarsky wrote:
4) knows the right questions to ask


I would probably add
4a) Is not afraid to ask questions. Seen and suffered too many dumb ass people who are on mute during discussions and meetings but will put any orator to shame while discussing the same topic over coffee. For me, that's lack of confidence.
 
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
+1 for all of the above, especially with regard to having the confidence in your skills/experience to take ownership of a particular task, whatever your official job title might be.

I'd also say it might depend on the role as well. I have over 20 years' development experience, mainly on database applications, which would make me a "senior" database application developer. But I recently moved back into Java after a long gap, and I'm currently working in a junior Java dev role because I have far less Java experience. All my other dev experience certainly helps, but there are still days when I definitely feel like a junior when faced with yet another Java EE Config Hell nightmare!

You'll probably find some "senior" roles are easier than some "junior" roles, depending on your experience, so don't get too hung up on arbitrary titles or cut-off points between junior and senior. Just focus on improving and extending your skills as a developer at every opportunity.
 
Ranch Hand
Posts: 163
Eclipse IDE Tomcat Server Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
If I can take a cue from Bear's resume:

Bear Bibeault wrote:
a proven track record of using current technologies to bring software products from inception to deployment.



I consider deployment a large part of senior development. I work with two java programmers, but it's up to me to maintain deployment and the webapp server.
 
Rancher
Posts: 2759
32
Eclipse IDE Spring Tomcat Server
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Everybody's definitions are differrent. My definitions are

Junior developer
1) Knows the language
2) Can sit on his/her ass and code
3) Needs hand holding and training

Mid-level developer
1) Knows the language
2) Can sit on his/her ass and code
3) Knows enough UML to convert it to code
4) Needs someone to do the design for him/her. Once you do the give the LLD to him/her, will be able to crank out code and tests
5) Needs code to be reviewed

Senior developer
1) Knows the language
2) Can sit on his/her ass and code
3) Knows enough about design patterns (and can understand new patterns quickly enough) to convert it to code
4) Needs someone to sketch out the approach that the design of a component should take, and will be able to convert that rough sketch into a LLD, and code and test
5) Can do research on new technologies but will take some time
6) Is expected to crank out good quality code.
7) Requires code reviews only on tasks that s/he haven't done before


Principal developer/Team lead
1) Knows the language
2) Can sit on his/her ass and code
3) Has the discipline to think things through before jumping into code
4) Knows enough about design patterns (and can understand new patterns quickly enough) to convert it to code
5) Needs someone to sketch out the approach that the design of a component should take, and will be able to convert that rough sketch into a LLD, and code and test
6) Can be relied upon to do research on new frameworks, but cannot be expected to master them quickly
7) Is expected to crank out good quality code.
8) Doesn't require code reviews, and can be relied upon to do some code reviews
9) Can mentor programmers
10) Has communication skills so s/he can act as the technical contact for the team
11) Reliable in time management and task estimation

Architect
1) Can design
2) Has the discipline to think things broadly and deeply
3) Can take requirements (well defined or not) and work with people to envision a solution
4) Can be relied upon to not only learn new technologies but master and champion them in the organisation
5) Can be relied upon to do code reviews
6) Has enough communication skills to interface with people across the board, not just technical people
7) Can mentor programmers and lead by example
8) Is able to define requirements for things that rest of the business may not give a shit about but might become important in the long run (performance, stability, scalability), and is able to communicate the business need for those requirements
 
Marshal
Posts: 72107
312
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Why should seniors and leads not require code review?
 
Author
Posts: 3448
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Jeanne, Bear, and Jayesh have summarised it will. I have expanded it with more details.
 
reply
    Bookmark Topic Watch Topic
  • New Topic