The Senior Developer will design and develop features within new and existing software applications and provide technical assistance in support of the application. Will also analyze requirements and develop solutions for new products and client implementations.
* Program and implement new functionality for Urban Science software applications (including design, design reviews, coding, code reviews, unit testing, and configuration/release management).
* Participate in the development of design specifications with other members of the software development team.
* Adhere to, support, and continuously improve processes.
* Collaborate with Practice Leadership and Business Analysts to identify client needs and ensure congruence with IT capabilities, including design and development of new products.
* Create necessary technical documentation in support of programming and design activities such as release notes, code comments, use cases, and training materials and load into TFS (Team Foundation Server).
* Assist with the development and delivery of technical training on new applications and application updates.
* Capable of independent design for high complexity Component or Module.
* Show proper utilization of industry standard design patterns.
* May mentor other developers.
* Perform peer code and design reviews.
* Provide detailed effort estimates to team and project managers.
* Comprehensive knowledge of and specific development experience in technologies that MAY include:
o Web Services (WCF, ASMX, WSE 3.0)
o Workflow Foundation (WF)
o XML including XPATH, XSLT, XSD
o C#, .NET Framework along with basic knowledge of IIS
o Visual Studio
o Identification and application of Design Patterns including façade, MVC, and standard OOP/OOD
o ADO.NET and Entity Relational Modeling including SQL Server database design and implementation experience, Visual Studio Database Project, Transact SQL (T-SQL), Views, Object-Relational Mapping tools, and Stored Procedures.
* Proficiency in:
o N-tier and Enterprise Distributed Systems architecture
o Unified Modeling Language (UML)
o Team Foundation Server (TFS) or other Version Control Solutions (CVS, Subversion)
o Test Driven Development (unit testing at a level sufficient to teach others)
o Release/Configuration Management
* Highly Desirable:
o Enterprise Library 4+
o OLAP experience
o Performance Monitoring (CLR Profiler, Perfmon) and Load/Stress Testing
* Experience and skills in facilitating and documenting technical and functional requirements as it relates to software projects and products.
* Able to independently design features / components using industry standard design patterns.
* Ability to breakdown a requirement, create a high level design document from it, and code to that design.
* Has experience implementing relational database concepts and general data structures, as well as data warehousing concepts.
* Ability to independently contribute to database design while understanding the impact of the design on performance.
* Capable of analyzing complex code to detect potential future problems.
* Has understanding of potential performance, security, scalability, and maintainability issues.
* Experience in software development and testing methodologies (performance/load testing, scaffolding development, interactive development, configuration management).
* Project management skills, including ability to define work plans, delegate work, monitor progress, and report scheduled variances and/or scope changes.
* Requires the ability to adapt to and work effectively within a variety of situations, individuals or groups, as well as understand and appreciate different and opposing perspectives.
* Requires the ability to effectively build and maintain friendly, warm relationships or networks of contacts with clients/customers.
* In-depth knowledge of software development best practices and the ability to provide technical assistance to junior staff members as needed.
* Requires the ability to compose and verbally deliver information of varying levels, using appropriate grammar, tone, inflection and non-verbal cues, while also listening to and correctly deciphering verbal communication delivered by others.
* Requires the ability and capacity to communicate ideas, facts and data in writing using appropriate grammar, syntax and sentence structure.
* Requires the ability to understand a situation by breaking it apart into smaller pieces, and/or tracing the implications of a situation in a step-by-step causal way.
* Requires the ability to understand a situation or problem by putting the different pieces together to see the bigger picture.
* Requires the ability and willingness to align his/her own behavior with the needs, priorities and goals of the organization.
* Demonstrated ability to prioritize competing demands and manage multiple concurrent tasks is required.
EDUCATION AND EXPERIENCE
* Must have Baccalaureate degree in an appropriate IT field such as Computer Science or Computer Engineering from an accredited U.S. college or university, equivalent foreign institution, or equivalent experience.
* Must have minimum of five years relevant work experience.
* Microsoft Certified Professional Developer (Enterprise) preferred.