Senior Developer – CMA, London recruitment
Senior Developer - CMA, London
As the world's leading source of independent, accurate OTC market data, CMA has an unrivalled understanding of how OTC markets operate. We combine our unmatched breadth and depth of pricing data with market-leading technology to deliver clear, valuable information to leading financial institutions around the world. Investment professionals in banks, asset managers, hedge funds, fund administrators and other financial institutions rely on CMA's OTC market pricing data and technology for
We are currently recruiting for a Senior Developer to develop software products that enhance the commercial success of CMA. You will be embedded within a product development team, where you will be involved in every aspect of the software product lifecycle as well as in helping with the evolution of software processes. The role is hands-on requiring coding as well as some technical leadership. Senior developers are responsible for providing third line support to their existing products and versions, as well as developing new products and versions. They are expected to be able to work on a day to day basis with little or no supervision from their line manager.
You will:
1. Design
a. Practical usage of object-oriented Design and Analysis.
b. Research and suggest usage of new libraries, frameworks and methodologies.
c. Keep pace with the product technology vision
2. Development
a. Create and execute project work plans
b. Re-factor and simplify code base in accordance with CMA coding standards.
c. Analyze code and spot repeatable patterns
d. Support, maintain and document software functionality
e. Develop programming systems making specific determinations about system performance.
3. Leadership
a. Work as part of a product development team - containing a product owner, business analyst, software architect, senior developers, developers, and test analysts
b. Mentor software developers
c. Initiate and lead discussions and brainstorming sessions with other members of the engineering department
d. Participate in peer programming and code review.
e. Build example code bases
4. Engineering practice
a. Promote good programming practices (TDD, DI) with other members of the engineering department
b. Building / Enhancing release processes
c. Understand integration tools (CC/TeamCity)
d. Research and upgrade development tools
e. Continuing to enrich the development to production processes
5. Release Management
a. Understand the production, client and test environments
b. Build and maintain scripts (Nant, DOC, bsh, powershell, install shield)
6. Infrastructure
a. Document upcoming infrastructure requirements
b. Understand key concepts i.e. security, virtualization, SAN , networking
c. Implement plans for security, reliability, scalability
d. Review / Debug existing infrastructure
e. Provide assistance to testers and Client Support personnel as needed to determine system problems.
7. Analysis
a. Provide feedback to analysis personnel on performance considerations / usability issues concerning software specifications and implementation.
b. Prepare reports and analyses setting forth progress, adverse trends, and appropriate recommendations or conclusions.
Skills
Required:
- Bachelor's Degree in Computer Science or related subject (science, mathematics or engineering)
- Significant, directly related experience of software development in a commercial environment
- IDE's: Visual Studio (2003, 2008, 2010)
- Databases: MS SQL / MySQL
- IoC containers: Spring.NET, StrutureMap, Castle
- Frameworks: NHibernate, Lucene.NET, Rhino Mocks, Entity Framework
- Communication: WCF, .NET remoting, Web Services, RMI, CORBA
- Protocols: TCP/IP, HTTP, Telnet, FTP, FIX
- Operating Systems: Windows XP, 2007, Server 2003, Linux / Unix
- S/W Dev. Languages: C#, Java, C, C++
- Security: Authorization / Authentication, X509, 3*DES, SSL