Design, develop and support OO software features, desktop applications, and web based applications and full installation package including technical documentation and associated unit tests that are used to test our software solutions.
Develop and review functional specifications that include a feature or complete application and set of user interface interactions or work flows.
Proactively define and deliver the set of tasks and associated milestones for an assigned project and manage the planning, risk identification and mitigation, proactive reporting and updates.
Profile the performance of a feature or algorithm and make necessary improvements including updates to unit tests.
Demonstrate ability to understand a business problem and conduct research to find an optimum and affordable solution, design and implement the solution or algorithm and accompanying unit tests.
Develop software applications that are scalable and designed to be deployed as a web based multi-tenant or single-tenant software service or desktop application.
Show proficiency in measuring product performance, operational metrics and formulating improvements (document them in the requirements repository) and communicating findings in a concise manner.
Understand the correct use of Relational Databases, API’s, SDK’s, Source Code and Version Control and Software Deployment Methods. Demonstrate proficiency in interfacing and use of these systems to create and support high quality industry leading software within our development environment and product architecture.
Develop interfaces with API’s or SDK’s using a functional specification that has already been completed.
Demonstrate ability to develop functional specifications associated with an interface to an API or SDK.
Conduct API and SDK related specification reviews and code reviews and recommend improvements that are consistent with the overall product and technical architecture.
Demonstrate ability to interface to a relational database application along with unit tests and documentation using a functional specification that includes a normalized design of the tables.
Use and appropriately applying software design, development and testing methodologies within our SDLC. Show competency to improve our capability maturity level as defined by the CMMi to create and support market leading solutions.
Demonstrate ability to deliver a large feature or complete application using TDD.
Deliver software for an assigned CSi application using an agile development methodology or a classic waterfall process as suited to the development and business need in a predictable and repeatable manner.
Pro-actively and clearly define the risks in a given functional specification. A risk constitutes any implementation or solution level unknowns, performance that may not meet requirements, code which needs to be re-used but in an unstable sate and needing re-factoring or R&D that needs to be done to solve any open problems.
Propose options to removerisk or mitigate them in a proactive manner.
Perform software development for each of the steps in the CSi SDLC in a predictable manner that clearly identifies and mitigates technical risk proactively and manages the delivery of milestones in a collaborative and transparent manner.
Through software solutions, implement test plans, test cases, and test data that is suitable and appropriate for the product and how they are used in the industry and in line with our philosophy of providing banking transaction risk management.
Develop effective test directions and documentation for test repeat-ability and maintainability.
Collaborate with the software development team to troubleshoot issues (i.e. limitations or defects) with testing tool used and implement corrective actions.
Education/Certification: Bachelor’s Degree.
Required Knowledge: Software development practices, processes and methodologies
Web based applications, client/server and nTier applications, and desktop applications
Requirements: 3+ years of progressive experience in software development
Strong software engineering and product development skills
Strong communication skills both written and verbal
Superior cross functional collaboration skills
Understanding of current technology trends and how they might influence product direction
The ability to work as part of integrated teams
Ability to multi-task and prioritize work effectively