Principal Software Engineer

Empower Associates

Principal Software Engineer
This role is for an engineer who is highly skilled in software development. This role would be dedicated towards hands on experience with creating POCs and working with our Enterprise Architecture group while leading a skillful set of developmental engineers. Assumed to be normally a mix of developmental work and a mix of administrative/research/design tasks. This space within the enterprise is a central space that serves to standardize practices around software to serve as an example to other development teams.  The position is slated to be at 160-170k annual salary with a 12% annual bonus incentive (6% every quarter and 6% for the year).

Job Summary:

The Principal Software Engineer is on an agile team developing core frameworks, components and services that are the foundational pieces for the suite of applications across the enterprise.



Essential Duties and Responsibilities:

· Works closely with Architects and other Engineering partners across multiple teams to get cross-team technical alignment

· Foresees potential impediments and works ahead of the team(s) to clear the path

· Works on and across multiple sprint teams to assist in onboarding of new technologies, best practices or patterns

· Provides leadership and technical mentorship around applications, frameworks, components, and services that will be developed by internal and external engineering teams

· Designs, develops, and maintains frameworks, components, and services that are consumed by internal and external engineering teams following SOLID principles of software development

· Works with the architecture team in creating proof of concepts for new technologies and assists in determining which are a fit for the organization

· Builds into and enhances the continuous integration / continuous delivery pipelines

· Acts as a liaison to internal and external teams and assists in the onboarding process of new components and services

· Conducts code reviews and ensures code aligns with standards

· Exhibits a leadership style and force multiplier that helps to grow others around the organization

· Serves as the technical team lead and mentor, collaborating on a self-organizing scrum team

· Participates in scrum activities and ceremonies

· Promotes a fail-forward culture that shows the ability to take risks, grow and exhibit accountability

· Works in a team environment or paired programming

· Provides documentation for all engineering and architectural examples when necessary




· Identifies and resolves problems in a timely manner; Gathers and analyzes information skillfully; Develops alternative solutions; Works well in group problem solving situations; Uses reason even when dealing with emotional topics.

· Responds promptly to customer needs; Solicits customer feedback to improve service; Responds to requests for service and assistance; Meets commitments.

· Balances team and individual responsibilities; Gives and welcomes feedback; Contributes to building a positive team spirit; Puts success of team above own interests; Able to build morale and group commitments to goals and objectives.

· Writes clearly and informatively; Able to read and interpret written information.

· Follows policies and procedures; Completes administrative tasks correctly and on time; Supports organization’s goals and values; Supports affirmative action and respects diversity.

· Adapts to changes in the work environment; Able to deal with frequent change, delays, or unexpected events.

· Consistently at work and on time.

· Follows instructions, responds to management direction; Completes tasks on time or notifies appropriate person with an alternate plan.

· Volunteers readily; Seeks increased responsibilities; Asks for and offers help when needed

· Sets and achieves challenging goals; Demonstrates persistence and overcomes obstacles.

· Reacts well under pressure; Treats others with respect and consideration regardless of their status or position

· Demonstrates accuracy and thoroughness; Applies feedback to improve performance.

· Meets productivity standards; Completes work in timely manner; Strives to increase productivity; Works quickly.

· Provides examples of architectural and service implementation that serves as a foundation for standardization and best practices; helps relay and support distribution of documented practices




· Experience with highly concurrent and multi-threaded web application and service development experience

· Highly experienced in developing web applications and micro service-oriented architecture

· Experience working on enterprise level business applications

· Experience building highly scalable RESTful services

· Experience building highly scalable Asynchronous services

· Expertise in building services that communicate via message bus

· Experience with application build process and integration and deployments to on-premise and/or cloud environments like AWS and Azure

· Experience building core components and services for alerting, tracing, monitoring, logging, builds, deployments, authentication, authorization, etc.

· Experience writing unit tests in testing frameworks like JUnit or MS Test and maintaining code coverage standards

· Experience evaluating and implementing best practices tools and techniques for software development, leading code reviews and coaching/mentoring engineers

· Expert level in at least one major language (C#, Python, or Java) and object-oriented design principles

· Various programming languages are used or will be used in the future, must have the willingness to learn and switch between technologies like C#, Python, and Java.

· Experience with application build process and integration and deployments to on-premise and/or cloud environments like AWS and Azure




· Bachelor’s Degree in Computer Science, Computer Engineering or related technical discipline

· 7 or more years of relevant, hands-on engineering experience



Computer Skills:

· Ability to use computer at an expert level

· Proficient in business/office application software

· Skilled in setting up applications and development environments



Supervisory Responsibilities:

· Directly oversees the activities of those assigned to the development and maintenance of software-based systems in the supported areas

· Assists managers with input for staffing levels, development of staff, performance evaluations and other operational planning

  • Complete the information below to get started!
  • Accepted file types: doc, docx, pdf, odt, txt, html, rtf, , Max. file size: 2 MB.
  • This field is for validation purposes and should be left unchanged.