Job summary
At the level of senior software engineer, you are seen as a natural leader by your peersHaving strong technical chops, understanding our systems, and having empathy for our customers is a givenYou have a proven track record of successfully delivering projects which had a positive impact on our systems, product, team, and customersYou have successfully brought on and mentored engineersYou are well steeped in the emoney culture and valuesYou have strong, educated and pragmatic, opinions both on what we do and how we do itYou also have the pragmatism and experience to yield the floor and allow better ideas to prevailYou continue to grow your skills as a professional developerGreat products come from the fusion of rock solid engineering, clear product vision, and a hypersensitivity to the customer experienceYou live our design and development methodologies, understand our business, and are on a continued pursuit to build empathy for our customersWhile you are entrenched in the development, maintenance, and testing of one product area, your view expands to the product vertical your team operates inYou work with your team’s tech lead to ensure sound technical direction.
Job responsibilities
Embody and live the scrum values of commitment, courage, focus, openness, and respect in all interactions, both within and outside of the team.
Be a team memberListen a lotAsk questions to seek clarityTake the floor when you have information, experience, or perspective to shareCommunicate impediments as they arise.
A scrum team collectively delivers on their sprint goals and commitmentsAll 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 operatesLeverage 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 vertical supportsLeverage 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 togetherPerform documentation, design, and testing tasks as required by the team.
Actively participate and contribute 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.
Provide recommendations on technical direction to tech lead.
Partners with tech lead to steer technical decisions on the team.
Requirements
5+ years of experienceCompleted three or more projects on commercially available applications.
B.s./m.s in computer science, computer engineering, software engineering, or equivalent experience.
Mastery of professional practices and methodologies (test driven development, pair programming, code reviews, refactoring techniques, agile/scrum)
Mastery with our development tools (visual studio, resharper, powershell, bitbucket (git), jira, confluence, roundhouse, octopus deploy)
Mastery of c#, data structure, basic algorithms, and object-oriented programmingAble to perform any task or from scratch implementationSeen internally as a leader in this areaAssists in defining best practices.
In-depth knowledge of web development (asp.net web forms, asp.net mvc, javascript, html, css, jquery)Able to perform tasks effectively with only occasional use of guides, research, and mentorshipCan replicate from similar work and apply modificationsFollows best practices.
Skills
In-depth knowledge of design pattern.
In-depth knowledge of working with legacy code.
In-depth knowledge of window and iis.
In-depth knowledge of relational databases (sql server).
Self-motivation drive to get things done and deliver on team commitments.
Strong understanding of our systems, customers, and business goals as it pertains to the assigned vertical
In-depth understanding of the context of the assigned scrum team.
Ability to work in a team and take direction well.
Self-motivated and responds to supervisionAsks 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 goalsHas a deep understanding of these contexts for assigned team.