Developer Level Descriptions

John Bocook
2 min readAug 27, 2016

--

We should no longer post x years of experience in programmer job descriptions. Instead consider a developers skill and mindset to determine their placement on the team.

Current Classification Issues

A fresh CompSci graduate that excels in advanced system design and solution simplicity could be mis-labeled as a Junior due to their lack of experience.

A seasoned engineer with multiple years of experience under their belt might consistently fail to utilize big picture understanding. They ship code containing problems foe future implementation amd increases unnecessary code/maintenance debt.

We prefer to judge actual skill level, not padded resumes.

Bit Twister: Shift bits left to right all day while consuming massive amounts of black coffee.

Bit Wacker: Same as bit twister that’s also an opinionated semi-alcoholic.

Junior

A good junior developer can be given a known task, and be expected to execute it quickly, and well.

These individuals are code focused, not development focused, and lack understanding of their differences.

Junior developers need a lot of direction, supervision, and mentoring

Intermediate

Most drop the term intermediate software engineer simply titling this group as Software Engineer. These programmers research how to build things The Right Way, implementing them through experimentation, literature, and discussion with other programmers.

Code written by an intermediate programmer tends to be considerably more stable than that of their Junior brethren. Both groups however struggle with forsight which contributing to inflexible systems that can not be extended without a considerable refactor.

A direct example of intermediate code often results in over engineered systems that are flexible in ways that don’t matter, and inflexible in ones that do matter.

A good intermediate developer needs less supervision and can be trusted to raise issues of code design. These members play a valuable role in design discussions and scoping.

Senior

At the core Senior developer’s architech solutions by studying information needs; conferring with users; studying systems flow, data usage, and work processes. Senior developers analyze both the business and technical requirements to develop project scopes.

A vast knowledge is required for this roll. Coaching staff, elevating team and facilitating professional development. The senior developer is responsible for pushing platform innovation, policy/process creation, and technically rooted in all areas of the product/stack.

When a ball is dropped, these team captians pick it up and continue pushing further down the field.

A senior developer understands the job is not writing code, it’s providing solutions to problems through writing code.

While an intermediate will plow through days of boring work, a senior developer will take a step back and question what is breaking down to cause all that boring work to begin with. They will evaluate the cost of fixing root problems, and either fix them directly, or put things in motion so they will be fixed eventually.

--

--

John Bocook

Driven by ADHD and passion. Developer turned CIO that still knows how to write code and deploy systems.