Software Engineer - Application Development

Software Engineer
Mid level software engineers have moved beyond the early stages of learning the ropes of modern software development in agile, iterative and continuously improving teams. They are journeymen level with a focus on refining mastery of their craft and developing areas of core expertise as well as widening their technological repertoire through continuous learning and both taking and implementing feedback from their peers and now also providing feedback as well.
Focus: Consistent delivery, effective communication, continuous improvement, and strong technical competency
Technical

Has started to develop areas of core technical expertise that they can be expected to produce excellent, well-tested and optimized code for, as well as provide meaningful and actionable feedback to peers on in pull request reviews.
Is able to communicate effectively with stakeholders from product and elsewhere to help refine requirements for new work items.
They are able to start developing and owning technical design documents for work items they have ownership of to understand potential pitfalls and define the architecture and design patterns necessary to execute anything they are working on.
Understands and applies team coding standards, design patterns, and SDLC practices
Demonstrates consistent improvement and iteration by identifying pain points in technology, tooling and process and as applicable offers actionable constructive feedback and or implements improvements themselves as feasible.
Begins to participate in mentoring more junior peers and sharing technical knowledge with the team via code reviews and other avenues for collaboration.

Teamwork/Collaboration

Communicates progress proactively — written async updates to their team and stakeholders, as well as via synchronous channels during team stand ups and other regular touch bases.
Is able to show growth in proficiency in the estimation process - evidencing growing confidence in estimating areas of core expertise in well understood areas of our technology stack, and ability to better identify and flag risks with new or unknown or merely unfamiliar areas touched upon by new work items. They are also able, as a corollary, to show willingness and ability to identify changes to expectations when new information arises or the nature of the work is otherwise impacted in a way that potentially introduces changes to previous estimates of time or requirements to implement a work item.

Growth and Mastery

Writes automated tests (unit, integration; end-to-end when needed) as a standard practice
Contributes continuously and with growing confidence and regularity to documentation and internal knowledge sharing.
Shows evidence of self-improvement and focus on growing core technical skills by performing research in their field and sharing new knowledge with their team as well as continuing to improve their own technical mastery.

Ownership

Shows responsiveness in team meetings and engagement in communication channels, proactively communicates blockers or new information to team members, stakeholders and leaders without needing to be prompted first.
Demonstrates capability to operate with autonomy and responsibility in a fully remote environment - needing less regular oversight and more ability to establish and then tap into relationships with peers, counter parties and stakeholders both within and without their team to be able to complete their work without constantly needing to turn to senior team members or leaders for unblocking.
Learns from incidents and feedback quickly; applies fixes rapidly (hours, not days)

See also

Software Engineering jobs by country — openings, pay and top skills →

Tailor your CV for this role?

We couldn't check your fit for this role — add a CV to your profile to see it next time.

A new version of freehire is available