Summary of the job:
Provides technical expertise to design and develop software components and products that support client business applications. Uses tools, languages, coding standards and best practices to develop new product features and maintain year-over-year product functionality and enhancements. Creates and executes unit tests and addresses defects. Works closely with the QA, UX and other related teams to ensure consistent understanding of requirements and approach. Responsibilities:
• Designs, develops and maintains complex software components
• Creates and maintains documentation of design approaches
• Creates and maintains documentation on internal architecture of the system. Provides direction in architectural changes in the system.
• Proposes product design features to support scalability, usability and better performance.
• Leads technical design and code reviews for all new enhancements and maintenance work delivered by the development team.
• Understands complex business and functional requirements and provides direction in technical specifications and product requirements.
• Establishes best practices in coding and development within the team. Ensures consistency of the use of best practices within the team. Designs and develops reusable code components.
• Creates, maintains and executes complex unit test and alpha test plans
• Maintains and improves current knowledge on the latest technologies relevant to the role regarding algorithms, language, design methodology, third party development tools, application platforms, hardware compatibility and operating systems.
• Mentors and coaches other team members on the latest technological advances within the current technology used. Required skills/experience/education:
• Bachelor's degree with emphasis in systems development or related area or the equivalent through a combination of education and work experience.
• Five to six years IT experience to include short-term and long-range planning, budgeting, systems analysis and design
• Experience in data and process modeling of business requirements.
• Knowledge and experience of relational database technology.
• Knowledge of all phases of the systems development life cycle.
• Exposure to client/server and/or web development.
• Demonstrated decision making, analytical and problem solving skills.
• Demonstrated effective time management, planning and organization skills with the ability to successfully handle multiple tasks, projects and priorities in a fast paced matrix-managed environment.
• Experience using software applications such as Visio, Microsoft Project, PowerPoint, Word, and Excel.
• Effective oral, written and interpersonal communication skills. Strong presentation and facilitation skills necessary to communicate and persuade a wide range of audiences. Preferred (nice to have) skills/experience education:
• 7 years of experience in web based applications using Microsoft technology stack
• Strong experience (3 years) in developing web based interfaces using Angular
• Strong experience (3 years) in developing applications with Microsoft Azure cloud
• Strong experience (3 years) in developing MS SQL based applications. SQL PaaS experience preferred
• Strong experience in doing software modelling and database modelling
• Experience with Microsoft ADO source control, build and deployment pipelines
• Strong interpersonal skills, ability to recommend solutions and deliver systems