Understand, articulate, and demonstrate agile principles and practice
Demonstrate knowledge of agile principles and how IBM implements them in a development environment
Lead and participate in agile planning activities, including story points, planning poker, Kanban boards, prioritizing work, and writing stories
Model “small batch” practices by successfully breaking down work tasks into smaller components
Lead and participate in retrospectives to drive continuous improvement
Understand and demonstrate social coding behaviors
Demonstrate knowledge of social coding behaviors
Execute successful “Fork and Pull” model in GitHub
Demonstrate effective searching via GitHub / GHE to identify code
Leverage established channels, i.e. slack, to collaborateand identify code
Understand the use of Open Source and the implications
Demonstrate successful usage of Open Sources scanning tools
Understand the appropriate protection and usage of Intellectual Property
Demonstrate key teamwork and collaborative behaviors
Articulate the value behind the pair programming model
Demonstrate successful use of pair programming
Articulate the value of playbacks and reviews
Demonstrate successful use of playbacks and reviews
Demonstrate strong communication skills
Demonstrate strong communication skills through the selection of the appropriate communication method for each message
Demonstrate strong presentation skills through quality materials and clear presentation
Demonstrate appropriate use of email for general communications
Demonstrate appropriate use of Slack for general communications
Demonstrate appropriate use of Slack as a collaboration tool
Understand, articulate, demonstrate IBM Design Thinking
Demonstrate knowledge of IBM Design Thinking and how IBM implements it in a development environment
Create empathy maps for identified personas
Execute discovery phase to identify customer requirements
Develop hills that communicate project intent with clarity and flexibility
Conduct successful playbacks with stakeholders to exchange feedback and measure progress
Identify and leverage sponsor users to provide real-world perspective
Demonstrate behaviors and work plans aligned with fail fast / MVP principles
Understand and model good feedback behaviors
Understand the importance of feedback in all we do
Successfully leverage Net Promoter Score methodology
Deliver quality feedback to team members
Receive feedback gracefully and act on it
Model goal setting behaviors through performance management system
Model a culture of feedback with all team members
Demonstrate ability to analyze data sets, identify insights, and leverage to drive decision making
Understand the value of real-time data gathering to reduce risk and increase success
Articulate the different types of analytics: predictive, prescriptive, descriptive, cognitive, machine learning
Demonstrate use of data analytics to make decisions
Successfully analyze large data sets and leverage data to drive insights
Demonstrate knowledge of key computer programming fundamentals
Demonstrate an understanding of the history of computing
Demonstrate an understanding of the history and principles of software engineering
Demonstrate an understanding of the history and principles of data management
Demonstrate an understanding of the history and principles of networking fundamentals
Demonstrate an understanding of the history and principles of infrastructure
Demonstrate an understanding of the history and principles of integrated development environments
Understand and demonstrate key software design fundamentals
Demonstrate knowledge and understanding of key software design fundamentals
Demonstrate successful problem solving behaviors: Demonstrate ability to decompose a problem
Demonstrate successful problem solving behaviors: Demonstrate ability to use abstract data types
Demonstrate successful problem solving behaviors: Demonstrate ability to apply algorithms as a solution
Demonstrate successful problem solving behaviors: Demonstrate ability to follow logical conclusions
Demonstrate the use of an object-oriented language or modelling language to design a model that promotes clean code: Successfully decompose into discrete components in a coherent design that will enable the software to grow and be maintained efficiently
Demonstrate the use of functional programming skills
Demonstrate ability to recognize and apply design patterns to address a problem
Demonstrate proficiency in languages like Java, Python, NodeJS, or JavaScript
Understand and demonstrate test-driven development
Articulate the differences and relative strengths / weakness of the various models of test-driven or behavior driven development
Demonstrate use of various models of test-driven or behavior driven development
Understand and navigate the complexity associated with enterprise-level development
Articulate the complexities and challenges associated with enterprise-scale development
Understand how to apply security at enterprise
Understand how to scale solutions
Understand how to manage performance at enterprise
Understand how to address legacy integrations
Understand, articulate, and demonstrate clean coding behaviors
Demonstrate use of refactoring to yield clean code
Demonstrate ability to write code with clarity
Demonstrate ability to write code that minimizes duplication
Demonstrate ability to write code with simplicity
Explain the various clean coding principles represented by the acronym SOLID
Demonstrate use of SOLID principles in code
Understand and manage technical deb
Understand the issues caused by technical debt
Demonstrate ability to identify technical debt
Demonstrate ability to eliminate technical debt
Understand ability to use code scanning and static analysis tools
Understand and demonstratenknowledge of web programming skills
Understand and articulate the value of distributed, modern computing architecture and the role it plays in modern service development
Demonstrate proficient back-end or front end development skills
Demonstrate basic knowledge of back-end and front end development
Demonstrate understanding of how to scale applications using database
Demonstrate understanding of how to build and deploy scalable applications in Bluemix
Understand how to use version control for all elements of the software delivery lifecycle
Understand the principles of version control
Understand versioning, releases, issues, and merges in source code
Demonstrate proper usage of versioning, releases, issues, and merges in source code
Understand the use of dependencies and libraries from within and outside the team
Demonstrate usage of dependencies and libraries from within and outside the team
Understand and demonstrate how to build and test quality code, at scale
Understand how to build quality code at scale
Understand the techniques used for ensuring quality
Understand the different types of testing, where to apply them, and the relative amounts
Understand the successful use of test coverage tools
Understand successful use of performance testing
Understand successful use of boundary and limit testing
Understand successful use of chaotic testing
Understand and demonstrate continuous integration
Articulate the value of continuous integration in a development environment
Demonstrate CI principles through frequent commits to trunk of codebase
Demonstrate CI principles through use of automated tests to ensure codebase is in a good state
Demonstrate proficient use of continuous integration tools
Demonstrate understanding of the impact of commit defects into shared codebase
Understand and demonstrate continuous delivery
Articulate the value of continuous delivery in a development environment
Understand CD principles through short, frequent, automated delivery of code
Demonstrate proficient use of continuous delivery tools
Understand and demonstrate feature decoupling
Articulate the value of feature decoupling in a development environment
Demonstrate ability to proficiently use feature toggles
Understand knowledge of microservice architecture
Understand and demonstrate DevOps automation
Articulate the value of automation to the development lifecycle
Demonstrate knowledge of the tools required to execute automation in a DevOps development team
Demonstrate use of automated run-books to minimize call-out for service failures
Demonstrate proficient use of UCD
Demonstrate proficient use of Ansible and scripted automation
Demonstrate proficient use of Chef
Understand and demonstrate DevOps metrics and measurements
Understand the use and articulate the value of instrumentation and automated measurements to enable continuous improvement
Understand the various methodologies used to measure and track progress
Understand and demonstrate knowledge of cloud computing fundamentals, including the various tools, services, and principles
Articulate the value of cloud infrastructures as it relates to efficiency, scalability, and resiliency of services
Articulate the value and use of containers in cloud computing
Demonstrate proficient use of containers like Docker and Vagrant
Articulate the value of platforms like OpenStack and IaaS
Demonstrate proficient use of cloud platforms
Articulate the value of container management systems
Demonstrate proficient use of service development practices, including adherence to 12-factor app rules
Understand and demonstrate the design patterns and practices for building cloud native services
Articulate the design patterns and practices for building highly scalable, resilient services and their lifecycles
Understand proficient use of Kubernetes
Understand proficient understanding of microservices architecture, including platforms like Liber8 and ISTIO
Understand proficient understanding of circuit-breaker patterns like Hystrix and ISTIO
Understand the relationship between scaling techniques, how to exploit them, and where
Articulate the relationship between scaling techniques, how to exploit them, and where
Articulate the value of scale-out vs. scale-up
Demonstrate use of scale-out vs. scale-up
Understand the value of fail fast / recovery
Understand the use of fail fast / recovery
Understand the various platforms, their differences, relative strengths / weaknesses, and integrations
Outline the various platforms, their differences, relative strengths / weaknesses, and integrations
Demonstrate basic knowledge of Linux
Demonstrate basic knowledge of Mobile
Demonstrate basic knowledge of IoT
Understand the topologies of enterprise solutions, and how clients use our portfolio of products and services together
Articulate the topologies of enterprise solutions, and how clients use our portfolio of products and services together
Articulate the common use cases for APIs
Successfully design, publish, and management APIs
Understand demonstrate the use of logging and monitoring tools and infrastructure
Articulate the value of logging and monitoring in an operational environment
Demonstrate proficient use of logging and monitoring tools and infrastructure
Demonstrate ability to implement and/or comply with logging policies
Demonstrate ability to use dashboards for monitoring
Understand the need for mobility and migration of data from on-premise to cloud solutions, and the implications
Articulate the value in migrating data from on-premise to cloud
Articulate the challenges in migrating data from on- premise to cloud
Outline the process required to migrate data
Interested in this apprenticeship?
Sign up to receive notifications about changes and updates about Software Engineer.