This company 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, this commpany 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…
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 non-functional requirements are just as important in achieving business objectives. Our teams at this company's 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. This company's "mindset" can be summarized easily, when taking a story from the backlog each developer is encouraged to do the following:
: We believe that ...
: We will do/make a test that proves...
: 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.
If you’re like us, you’ve got big ideas. At this company, we’re exploring new ideas every day. We help industry leading companies reinvent their business models and innovate products that create new value—by connecting people with things, insights and experiences. This company's digital engineering
designs, engineers, and delivers digital products and experiences that drive digital-first business models. We offer the most comprehensive digital engineering expertise and client-centric methodology for sustainable innovation.
This company is looking for a dynamic architect with experience designing and developing complex software systems and applications. The individual will work with product owners, subject matter experts, and product managers to design and deliver customer value. The role is expected to lead several software engineers in the delivery of custom cloud native applications. The individual in this role will ensure that best practices are followed and that quality code is delivered. Lastly, this company needs an individual that loves to collaborate with other technologists and enjoys mentoring and coaching. Day-to-Day Responsibilities:
· Works with product owner and developers to groom product backlog
· Provides guidance on continuous integration and test-driven development practices
· Develops API strategy for the overall application
· Helps drive Agile ceremonies including iteration planning, standups and retrospectives
· Develops cloud deployment model of application
· As needed, develops and tests code for UI, services and integration tiers of an application component
· As needed, codes in a developer-pair as part of an Agile product-focused software development team
· Works with clients to understand business case for adopting cloud native approach to developing software
· Develops technology strategy for engagement
· Facilitates removal of client technical barriers to engagement success
· Ensures technical collaboration between pod teams
· Technology competency areas – Cloud Native, Microservices and APIs,Reactive Systems, Analytics & Streaming Pipelines, Devops – CI/CD Key Qualifications:
- Degree in Computer Science, Information Technology or related Engineering subjects
· Deep understanding of software programming fundamental concepts
· Develops approaches to testing and writes unit tests using Junit or other test frameworks
· Creates and maintains CI builds using Jenkins, Concourse or similar tool
· Deep understanding of microservices architecture concepts and how to implement them
· Has worked with at least one private or public cloud platform such as Cloud Foundry, OpenShift, AWS, GCP, or Azure
- Excellent communication and presentation skills, both verbal and written
- Experience in designing and deploying cloud-native enterprise applications in public or private cloud
- In-depth understanding of Domain Drive Design and 12-Factor applications
- Experience with continuous integration/deployment tools and best practices in DevOps
· Has led Agile development teams
If you have these its awesome as well
- Demonstrated project management leadership
- 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 vision while understanding business requirements. A conviction to ones implementation approach but not so unwavering that they cannot be swayed based on sound logic and feedback from their peers to see a “higher value" implementation.
- Knowledge of the cloud and deployment expectations and complexities. Developers should be capable of deploying application ‘bits’ to AWS or other similar cloud environment.
- 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 Go programming language but where this skill is lacking, a deep understanding of programming patterns and demonstrable knowledge of Java will suffice. Our expectation is good foundational knowledge in a language such as Java will translate to Go when the syntax of the language is understood.
- Additionally, candidates could benefit from a working knowledge of Spring, Java and Bash. To be effective an experience with system administration, UNIX, process management, deployment technologies.
- Candidates will be agile practitioners, having achieved proficiency in agile methodologies through years of experimentation and learning. A demonstration of more than just the basics is required to be successful. Candidates should demonstrate a deep experience participating in stand-ups/daily scrums, planning meetings, iteration retrospectives etc.
- Open source participation and knowledge is important. Cloud Foundry is an open source technology and a strong understanding of what it means to work in open source is required.
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.
PL1 The associate has basic awareness and comprehension of the skill and is in the process of acquiring this skill through various channels.
PL2 The associate possesses working knowledge of the skill, and can actively and independently apply this skill in engagements and projects.
PL3 The associate has comprehensive, in-depth and specialized knowledge of the skill. She / he has extensively demonstrated successful application of the skill in engagements or projects.
PL4 The associate can function as a subject matter expert for this skill. The associate is capable of analyzing, evaluating and synthesizing solutions using the skill.