This is a senior / lead developer, application and infrastructure architect role. You will join a team of exceptional developers to deliver world-class software. You will provide high quality technology solutions that address business needs by developing applications within a fast-paced environment. You will utilize mature (3rd or 4th generation) programming methodologies and languages and adhere to best practice and market leading procedures and techniques while contributing to the technical code documentation.
- Ability to understand and influence the vision of program strategy
- Plan information architecture by studying the business concept, strategy, and target market; envisioning architectural scheme, information structure and features, functionality, preparing data models; designing information structure, work-and dataflow, and navigation; evaluating information representation;
- Design and develop solution strategy which supports productivity, maintainability, interoperability, and product growth
- Prevent decision process from stalling by ensuring solution level issues are addressed promptly
- Conduct, manage, and enforce code reviews.
- Conduct technical and feature risks assessments and communicate to the architecture and product management groups
- Educate and enforce clean code that follows the main programming principles
- Enforce Proper Unit, Integration, System, Performance level Tests, Code Coverage, and Static / Dynamic Code Quality Metrics
- Work with the wider tech team to ensure proper solution based on the established architectural principles and patterns
- Mentor and guide technical resources within the team
- Leverage open source and other technologies and languages outside of the framework should the need arise and autonomously be able to make use of those technologies.
- Develop cutting edge solutions to maximize the performance, scalability, and distributed processing capabilities of the system
- Provide troubleshooting and root cause analysis for issues that are escalated by the team
- Enhances information architecture team accomplishments and competence by planning delivery of solutions; answering technical and procedural questions for less experienced team members; teaching improved processes; mentoring team members.
- Follow best practices (test-driven development, continuous integration, SCRUM, refactoring, code standards)
- BS/MS degree in Computer Science, Engineering, related subject OR equivalent work experience.
- 5+ years of application development experience with RoR and other OO based programming languages
- Minimum 5 years experience in application design and development with infrastructure management experience, specifically :-
a) building and maintaining a multi-tenanted, micro service based architecture
b) SDK and API design and maintenance)
- DevOps in an agile environment, AWS and Docker. Experience with Ansible or other automation tools a plus.
- Software development experience including: design patterns, RESTful service implementation, Service Oriented Architecture, Test-Driven Development, Acceptance Testing, Transact-SQL, relational databases and PostgreSQL
- Database Management, Data Modeling, Presenting Technical Information, Problem Solving, Strategic Planning, Data Maintenance, Verbal Communication
- Experience developing highly interactive applications
- A firm grasp of object oriented analysis and design
- Multi-tier application design and development
- Multi-threaded design and development