Cognizant Digital Engineering
Cognizant is a strategic partner to the Fortune 2,000, helping the world's most influential companies to build software and solutions, empowering our clients' businesses and enabling their competitive advantages. Most recently we've come to truly understand the ways in which software is eating the world. This creates an opportunity for us to reinvent the mode in which we execute with our clients. As a result, Cognizant now finds itself at the intersection of business value, technology and the Silicon Valley style of execution. What you may already identify as Lean Startup methodologies, Extreme Programming (XP), DevOps, etc., we take a step further in order to hyper-focus on velocity and high-performance engineering. The competitive advantage this capability provides is enormous-enabling faster feature time to market, increased customer satisfaction and exponential employee productivity, all while allowing the organization to win in the marketplace by keeping our clients, their customers, and all users omnipresent in everything we do. We are forging the way for what's next in the Digital Economy.
You have a passion for high-quality, reliable and maintainable code. You're comfortable working side by side with product managers, designers, and clients, making decisions together in order to quickly deliver valuable working software to clients and their users. You're agile and retrospective, and not afraid to identify what we're doing wrong so we can fix it, and what we're doing right so we can improve on it. Above all, you judge your success by the success of your team and the happiness of our customers.
Two Heads Are Better Than One
Developers work in pairs. Employing an Extreme Programming (XP) style of execution designed to facilitate shorter development and release cycles. The goal is to create fast feedback loops to prevent problematic code from going into production and to enable code to quickly be deployed when all validation tests have passed. Following closely the principles of extreme programming, each developer writes a test prior to writing implementation code. The goal is to write only enough code as is necessary to make the test pass, because we view code as our greatest liability. Developers in the community place a premium on quality and as a result focus on writing tests first. Everyone in the value stream employs a culture that not only values each other's time and contributions but also relentlessly injects pressure into the system of work to enable organizational learning and improvement. Everyone dedicates time to testing and qualification of their deliverables to avoid accumulating technical debt and negatively impacting downstream teams with poor quality deliverables. In this environment nonfunctional requirements are just as important in achieving business objectives. Our teams at Cognizant Labs are fully autonomous, meaning everyone has equal stake and responsibility in the outcome of the product and the customer's success.
Developers are encouraged to avoid programming any features until they are actually needed, focusing on clarity of code and test writing. Reviewing and refactoring code is a common, on-going activity. The Cognizant "mindset" can be summarized easily, when taking a story from the backlog each developer is encouraged to do the following:
1. Hypothesis: We believe that ...
2. Test: We will do/make a test that proves...
3. Evidence: We will know the hypothesis is valid if …
Additional to asking these questions, developers are encouraged to think about how long it will take to answer these questions and the cost of solving them. We promote a high trust and highly collaborative culture where everyone is responsible for the quality of their code. A hypothesis driven culture requiring everyone to measure and prove their assumptions. Build, measure, learn is key to our success.
The ideal candidate …
An ideal candidate is someone who enjoys working in a fast paced, collaborative environment. Someone that values the "team" and leverages the opinions and expertise of their teammates to deliver working, quality code. Each individual values quality and pursues the proof of quality by consistently writing tests.
* Experience and practice using TDD to demonstrate functioning code that meets requirements
* Ability to work closely with other developers as part of a team or minimally, in a paired environment for 8 hours each day
* Strong communication skills and an ability to articulate technical ideas while understanding business requirements.
* Knowledge of cloud and deployment expectations and complexities.
* DevOps promotes the collapse of different functions into one; QA, IT, Dev, Operations, etc. As a result, each developer will have a working knowledge of Ruby, Linux OS commands and be equally comfortable at the command line as they are in the IDE.
* Strong understanding of programming patterns is important and required. The ideal candidate will know the Java programming language.
* Additionally, candidates could benefit from a working knowledge of Spring, Java and Bash. To be effective an experience with system administration, Linux, process management, deployment technologies.
* Candidates will be agile practitioners, having achieved proficiency in agile methodologies through experimentation and learning. A demonstration of more than just the basics is required to be successful. Candidates should demonstrate a deep experience participating in standups/daily scrums, planning meetings, iteration retrospectives etc.
* Finally, we encourage team members to see conflict as a positive; in a team that is fully autonomous, it is pertinent that members are able to add their opinions and to listen and consider others'. Empathy is key.
Cognizant is a provider of information technology, consulting, and business process outsourcing services.