Job Description :
service to our customers. What is this role about? As a Senior Software Engineer L6, you will work within the Acquisitions and Renewals group as key member of the Real Estate engineering team, which is responsible for maintaining and enhancing the Real Estate Portal and our Real Estate Partner APIs in addition to owning a set of core microservices that provide the foundation for these and other products. You will need to understand all layers of the software stack, as well as be responsible for design, implementation, documentation, and unit tests for highly technical and 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 while applying principles, theories, and concepts to job assignments. You will be working through system performance/scalability/reliability concepts and providing independent execution of large projects impacting teams of up to 10 people and contributing to the development of new ideas and principles. Responsibilities
- Work closely with Product Management and other team members to understand, define, and refine the technical design, approach, and implementation necessary to deliver end-to-end project enhancements.
- Collaborate with senior engineering members of other product teams to ensure our systems work together cohesively and that we are properly leveraging what each other has built.
- Help identify areas of technical debt as well as help define a technical roadmap to incrementally address them
- Mentor lower-level software engineers, while coaching and influencing the performance and progression of others on the team significantly
- Study the architecture and refactor if needed. Implement microservices to solve issues faced by platform.
- Bring forward ideas to innovate and work in teams to transform ideas to reality.
- Write technical specifications and engineering design document for code to be written that adheres to our coding standards and best practices.
- Implement functionality that meets the acceptance criteria and successfully passes automated test cases as defined in a test plan.
- Debug and resolve production issues and create subsequent mitigation plans.
- Optimize performance of existing implementations.
- Bachelor’s degree in Computer Science, Electrical Engineering, or related field required. Master’s degree preferred.
- 8-12 years product development experience
- Deep 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 complex problems and analyze logs in production systems and to read existing code.
- Deep understanding of various data storage options, such as relational, no-SQL, etc.
- Excellent skills in languages, such as C, C++, Java, Golang, .net Core
- Understanding and experience using Golang
- Experience in developing products in an Agile development environment
- Experience working in a CI/CD environment
- Understanding of Git and development activities such as branching, merging and conflict resolution of code
- Understanding and experience in Docker, Kubernetes, and AWS cloud services