Invitation Homes is pioneering a new industry and needs dedicated, innovative, and analytical technologists to help us continually optimize. We are seeking a Senior Software Engineer to join a collaborative team to implement and expand upon our current product offerings, focusing on enhancing the resident experience through advanced technology.
Responsibilities:
- Design, develop and deploy frontend and backend services with focus on high availability, low latency and scalability
- Direct and assist with designing, developing, documenting, testing, and debugging new and existing software systems and/or applications
- Identify and resolve defects of complex scope using proper engineering tools and techniques such as debuggers, emulators, simulators, and logic analyzers
- Lead and exhibit expert technical problem solving and debugging skills
- Identify, develop, and advocate best practices, design standards and procedures
- Team player that is willing to lead the team to succeed
- Foster a collaborative and professional team environment to achieve objectives
- Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design
- Provide support and maintain existing products and add new features as requested by customers
- Anticipate and adapt to a changing business environment and requirements
- Collaborate and communicate with Stakeholders, Product Owners, Quality Assurance and other teams in an agile work environment, including but not limited to design meetings, planning, stand ups, & retrospectives
- Participate regularly in Agile/Scrum activities and mentor others to adapt the Agile way
- Mentor junior and mid-level engineers by providing advice, coaching and educational opportunities to grow their technical skills
- Perform other duties as assigned
Requirements:
- Bachelor's Degree in Computer Science or Computer Engineering from an accredited college or university or equivalent work experience
- At least six (6) years of work experience in software development; 3 years as a Senior Engineer preferred
- Advanced knowledge to architect, develop, maintain and troubleshoot cloud-based web and mobile applications using the latest technologies and tools
- Design, develop and deploy frontend and backend services with focus on high availability, low latency and scalability
- Direct and assist with designing, developing, documenting, testing, and debugging new and existing software systems and/or applications
- Identify and resolve defects of complex scope using proper engineering tools and techniques such as debuggers, emulators, simulators, and logic analyzers
- Lead and exhibit expert technical problem solving and debugging skills
- Identify, develop, and advocate best practices, design standards and procedures
- Team player that is willing to lead the team to succeed
- Foster a collaborative and professional team environment to achieve objectives
- Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design
- Provide support and maintain existing products and add new features as requested by customers
- Anticipate and adapt to a changing business environment and requirements
- Collaborate and communicate with Stakeholders, Product Owners, Quality Assurance and other teams in an agile work environment, including but not limited to design meetings, planning, stand ups, & retrospectives
- Participate regularly in Agile/Scrum activities and mentor others to adapt the Agile way
- Mentor junior and mid-level engineers by providing advice, coaching and educational opportunities to grow their technical skills
- Provide feedback and guidance in code reviews
- Advanced knowledge of NodeJS and asynchronous programming
- Advanced knowledge in Linux/Unix systems, particularly on AWS
- Advanced knowledge in client-side JavaScript frameworks (like React) and advanced knowledge of client side web development
- Advanced knowledge of structured query language (SQL) and relational database concepts preferably with knowledge of PostgreSQL
- Proficient knowledge of the software development life cycle (SDLC)
- Advanced knowledge of Heroku
- Advanced knowledge of CI/CD concepts and demonstratable practical experience
- Follows and advocates Agile practices and principles
- Advanced knowledge and understanding of system design, data structures and algorithms
- Advanced knowledge of contemporary web API design (REST, hypermedia, profiles, relations)
- Ability to demonstrate knowledge, education, experience and/or training necessary to develop complex software in JavaScript and other programming languages
- Advanced knowledge of programming domains (server architecture, security standards, accessibility standards, database access and usage, deployment process, user interface development, networking, and so on)
- Exceptional verbal, written, and interpersonal communication skills with the ability to articulate information in a meaningful way to project managers and executive level staff
- Exhibits leadership and mentoring
- Provide logical and meaningful contributions in discussions and meetings
- Familiarity with the Salesforce platform
- Proven ability to perform all aspects of application development including the coordination of others on small projects with minimal guidance or supervision