To begin the application process, please enter your email address.
Company Contact Info
- Memphis, TN
Sorry, we cannot save or unsave this job right now.
Report this Job
Saving Your Job Alert
Job Alert Saved!
Could not save Job Alert!
You have too many Job Alerts!
This email address has reached the maximum of 5 email alerts. To create a new alert, you will need to log into your email and unsubscribe from at least one.
Email Send Failed!
Senior Software Engineer
American Home Shield • Memphis, TN
Posted 1 month ago
Get facts about other applicants with a CareerBuilder Account
For more than 40 years, American Home Shield has protected homeowners by providing affordable protection against home system component and appliance breakdowns. As the leader in the home warranty industry, we have a network of more than 11,000 pre-screened home service contractors and 45,000 professional technicians that provide convenient, reliable expert service to our customers.
What is this role about?
In this key role, our software development philosophy is that Software Engineers are product focused. As a Software Engineer L4, you will work on a specific product and understand all layers of the software stack, as well as be responsible for documentation, automated tests, and writing the code itself for complex software programs.
What does a “Day-in-the-Life” look like?
You will be involved with debugging, working with algorithms, and data structures, coding, design, system performance scaling, and problem-solving requiring in-depth knowledge while applying principles, theories, and concepts to job assignments. You will be working through system performance/scaling concepts and making meaningful contributions to department goals and planning efforts.
Here are a few more specifics of what you would be doing on the job:
- Write documentation and automated tests for code to be written. Implement functionality for automated tests that will successfully pass and meet coding standards. Debug production issues and create subsequent mitigation plans. Optimize performance of existing implementations.
- Find easy ways to debug complex solutions, through reading and understanding code flow in the overall project. Add logs and markers to solve complex (concurrency, multi-threaded) problems.
- Break down product requirements, drawing on knowledge of algorithms to come up with the correct solution.
- Work with product managers and UX designers to deliver most optimal and customer-friendly implementation. Prioritize tasks with the Scrummaster that leads the team to be successful.
- As a component owner, where the component impacts a single platform, debug and fix hard to reproduce bugs; refactor existing code for performance gains and easy readability; perform design reviews; identify performance bottleneck in design specifications; work with App, Backend, and Frontend teams in writing down APIs; explore existing implementations; optimize performance of existing implementations; and participate in functional automated tests.
- Build UML diagrams and sequence diagrams for features before implementation.
- Track down hidden performance problems, with or without tools.
- Prioritize tasks with Scrummaster that leads the team to be successful.
- Bring forward ideas to experiment and work in teams to transform ideas to reality.
What do I need to be successful?
- Bachelor’s degree in Computer Science, Electrical Engineering, Mathematics, or related field required. Master’s degree preferred.
- 5-8 years product development experience
- In-depth understanding of computer science fundamentals, such as data structures, (trees, graphs, hash tables); understanding of functioning and implementation of basic algorithms, such as sorts, searching, and the capability to explain performance characteristics using Big-O Notations.
- Capability to debug moderately complex problems and analyze logs in production systems and to read existing code.
- Solid understanding of various data storage options, such as relational, no-SQL, etc.
- Solid scripting skill in Shell, Python, or Ruby
- Solid skills in languages, such as C, C++, Java, Golang, .net Core
- Experience in following the process and ability to question the process and recommend changes
- Ability to be on call on a rotating basis for the services owned by the team.
- Experience in developing products in an Agile development environment
- Experience working in a CI/CD environment
- Understanding of Git and development activities such as merge and conflict resolution of code
- Understanding and experience in Docker, Kubernets, and AWS cloud services