Determine and identify high-level functional and technical requirements on the basis of interactions with the user community and knowledge of enterprise architecture. Design architectures, including the software, hardware and communications, to support the total requirements, as well as to provide for present and future cross-functional requirements and interfaces.
Interact with project management to plan project schedules and technical direction. Provide quality assurance review and the evaluation of existing and new software products. Develop high-level system design diagrams for program design, coding, testing, debugging and documentation. Develop and implement moderate to complex web applications on one or more platforms.
Has mentored junior software developers on design patterns, development best practices and DevOps trade-offs
Bachelor’s Degree in the appropriate field of study or equivalent work experience
Understand emerging web and mobile development, models
Experienced with all ancillary technologies necessary for Internet applications: HTTP, TCP/IP, POP/SMTP, etc.
High scalability projects involving cloud-based infrastructure design and implementation
Working knowledge of object-oriented design and development skills
Successful track record of developing quality software products and shipping production-ready software
Good understanding of Web Services protocols such as REST, SOAP and API design for extensibility and portability
Experience debugging distributed systems with high data loads
Deep understanding of distributed data model
Solid understanding of the Software as a Service (SaaS) model in the online environment
Design, develop and implement unit and scenario testing for existing code base and for new functionality under development
Experience with Scrum/Agile development methodologies
Extensive knowledge of C# using Visual Studio using Webforms, MVC and Entity Framework
Ability to use version control software such as GIT and SVN
Working knowledge of IIS
Experience as an applications programmer on large-scale database management systems.
Knowledge of computer equipment and the ability to develop complex software to satisfy design objectives.
Experience in LAMP (Linux, Apache, MySQL, PHP/Python/Perl) and/or server-side Java programming with Web 1.0 MVC frameworks and experience in JEE technologies like Servlets, JSPs, EJBs, Web Services, JMS, JAXB.