Want to develop the strategies and principles needed to deliver compelling software? Join our team and help us enhance our all-in-one software platform, elevate our one-of-a-kind technology, and improve the employee experience.
Take your career to the next level at one of G2's Top 100 Software Companies. Explore our Product & Technology positions to see where you fit!
Senior Software Engineers are members of our product teams, responsible for creating, enhancing, and supporting common features. Working side-by-side with Product Owners, Software Test Engineers, and Business
Who you are:
Engineering is the function that applies principles and techniques of engineering, mathematics, and computer/data science to the design, development, and testing of applications. The Product & Technology engineering family consists of software development, testing, database, devops, virtualization & network.
- Enthusiastic about developing the best software available and providing the ultimate customer experience
- An advocate for continuous improvement of our software development process
- Interested in staying current by applying new technologies
- Able to work in a collaborative environment with a willingness to share your ideas
- Able to work independently on modules and complete tasks with high quality and contribute to high velocity, but unafraid to seek out suggestions from other team members
- Excited to work on cutting-edge technology
During the first six months, you will:
- Understand customer needs and business goals.
- Often act as a technical lead for features or epics and complete features or epics where the approach is loosely defined and requires technical & design discovery prior to implementation
- Advocate for best practices and a healthy balance of tech debt versus delivery
- Actively mentor/coach less-experienced team members
- Ensure code is flexible, reusable, extensible performant, and high quality through feedback on code reviews
- Decompose outcomes into solutions composed of multiple software components interacting with each other
- Understand and consider technical dependencies
- Provide feedback via decision-making frameworks for proposed changes from across the org
- Work within the scope of a team and participate in driving cross-team collaboration
- Build something that you are proud of
- Learn something that you are excited about
- Do the best work of your career so far
- Find innovative ways to increase the quality and velocity of your work
- Exercise creativity and solve cool problems
- Demonstrate passion for writing quality software
- Contribute to a shared code base
- Demonstrate software quality through unit and integration test automation
- Strengthen your team by sharing your knowledge and interests with others
- Build relationships and communicate with various types and levels of stakeholders across the organization
- Analyze and spearhead improvements to the systems and software that are important to your team
- Manage risks, escalate priorities, and help to resolve issues that could impact production quality
Required Experience:
Bachelor's Degree in Computer Science, Engineering, Technology-related field, or equivalent experience
Hands on experience with at least some of the following:
- At least 5 years overall experience specifically in object-oriented design and development preferably in C#
- React/Angular or similar modern client-side framework
- Building and deploying RESTful APIs
- Microsoft SQL Server or similar relational database management system
- Focus on quality, including experience writing comprehensive test suites using NUnit, Cypress or similar tools.
- Modern architectures such as microservices and operational tools such as DataDog is a plus
- Amazon Web Services offerings such as Lambda, S3, and CloudFormation stacks are a plus
- Demonstrable knowledge of front-end technologies such as JavaScript, HTML, and CSS
- Experience developing highly interactive applications
- A firm grasp of object-oriented analysis and design
- Passion for writing great, simple, clean, efficient code
- Must be well versed with Systems Architecture and developer tools
- Experience with unit testing and integration test automation
- Must be adaptable to change and have a willingness to learn
- Must have a strong sense of curiosity
- Must commit to their role and take responsibility for their tasks
- Must be able to work effectively in an agile and team environment
- Must be effective and creative in problem solving
- Able to work off-hours and weekends as the need arises