Software Engineer

Competency-based
ONET: 15-1132.00

1

Years

135

Skills

218h

Related instructions
Classroom instruction topics
  • Professional Foundation Training
  • Principles and Practices
  • Software Engineering Fundamentals
  • DevOps
  • Platforms, Services, and Solutions
  • Codecademy: Introduction to IT
On-the-job training
  • 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.
calendar.svg
Get on our calendar
Not sure if WorkHands is right for you? Chat with our team today
sendEmail.svg
Send us an email
We'll get back to you shortly