Principal Software Engineer
As Senior Advisory Software Engineer, you are a master practitioner, communicator, and natural leader. Along with a Product Owner and Scrum Master, you lead a team. Leveraging strong technical chops, understanding our systems, and empathy for our customers you’ve established a proven track record of successfully delivering high value projects. While the team is accountable for their assigned systems, you are directly responsible for making technical impediments known, impact of changes clear, and ensuring sound architecture and approach. As Senior Advisory Software Engineer you are the outward facing technical representative for your team; sizing potential projects, working with architecture and operations, and partnering with the Engineering Coaches to define skills development, standard, and build out the team. As a senior level tech lead, you also advise and lead discussion amongst the guild of leads.
- Embody and live the Scrum values of commitment, courage, focus, openness, and respect in all interactions, both within and outside of the team.
- Be an active team member. Listen a lot. Ask questions to seek clarity. Take the floor when you have information, experience, or perspective to share. Communicate impediments as they arise.
- A Scrum team collectively delivers on their sprint goals and commitments. All team members are expected to always be intimately familiar with, and working towards delivery of those commitments, never against.
- In partnership with Product Management, actively seek to gain a deeper understanding of the business context under which your team operates. Leverage this understanding to present feature recommendation to your Product Owner.
- In partnership with Design, continue to build empathy for the primary, as well as secondary, personas your team supports. Leverage this empathy to recommend small design changes to your Designer.
- Complete modifications, refactoring, and bug fixes to existing functionality without the need for oversight.
- Perform complex changes and complicated refactoring without the need for direction of an experienced team member.
- Mentor and coach less experiences team members.
- While made up of many disciplines, the team delivers on commitments together. Perform documentation, design, and testing tasks as required by the team.
- Actively participate and lead to technical discussions and code reviews.
- Evangelize and promote the successes and learnings of your team in formal ceremonies, such as sprint demos, as well as in casual conversation.
- Write queries, scripts, and data upgrades.
- Take point on supporting deployments and releases.
- Other duties as assigned.
- Collaborates across teams in vertical.
- Leads design and development of complex changes and refactoring.
- Leads discussion and decisions on technical direction.
- Partners with Product Owner to recommend solutions and technologies to meet business needs.
- Provides input to Engineering Coach on skills recommendations and performance of engineers.
- Participates in defining architectural direction.
- Runs and moderates Tech Lead discussions across teams and verticals.
- Advises other Tech Leads and engineers on direction and technical design.
- 15+ years of experience. Completed five or more projects on commercially available applications across product verticals.
- B.S./M.S in Computer Science, Computer Engineering, Software Engineering, or equivalent experience.
- Has an in-depth understanding of our systems, customers, and business goals across the platform.
- Ability to work in a team and take direction well.
- Self-motivated and responds to supervision. Asks relevant questions.
- Enthusiastic about company and programming company products.
- Can work with supervisor to plan tasks and estimate their completion.
- Can adapt to changing conditions and coach others through change.
- Possesses ability to communicate efficiently verbally and through written documentation.
- Maintains a broad understanding of our systems, customers, and business goals. Has a deep understanding of these contexts for assigned team and vertical.
- Expert knowledge of C#, data structure, basic algorithms, and object oriented programming. Able to perform any task or from scratch implementation. Seen internally as a leader in this area. Assists in defining best practices. May be active in community.
- Mastery of design patterns.
- Mastery of working with legacy code.
- Fluent with Window and IIS.
- Knowledgeable and comfortable with relational databases (SQL Server).
- Mastery of professional practices and methodologies (Test Driven Development, Pair Programming, Code Reviews, Refactoring Techniques, Agile/Scrum)
- Mastery of our development tools (Visual Studio, Resharper, PowerShell, BitBucket (Git), Jira, Confluence, Roundhouse, Octopus Deploy)
eMoney Advisor is the creator of the leading wealth-planning technology for financial professionals and firms, offering the cutting-edge solutions needed to succeed as the regulatory environment shifts, investor expectations change, and the industry landscape becomes increasingly competitive. Not only do our solutions help financial professionals streamline their workflow and add efficiency to their business, they also — more importantly – create an unmatched, interactive client experience that builds trust and strengthens the advisor-client relationship. Though we’re driven to lead through innovation, the defining principle of eMoney’s existence will always remain the same: an unwavering dedication to helping advisors and their clients succeed.