JAM Stack Hack

Intro

We’ll be asking for ideas to develop a site or application that uses APIs. As a group we will work through some ideation and planning using agile methodology. We will then break into teams to deliver parts of the software, bringing our product to an MVP stage by the close of the second day. There is lots of opportunity to get involved at all stages of the development process so the groups will be of mixed ability. Minimum 2 pro web developers will be there to assist and facilitate.

Outcomes

You will leave this session with skills and knowledge of static site generation (SSG) and deployment as well as working with APIs. We will be using Netlify for deployment, GitHub for source control and 11ty as the static site generator. 11ty uses Liquid as the templating language so extra useful for those of you who develop on the Shopify platform or use other SSGs. Liquid is also almost indistinguishable from Twig - the templating language of Symfony and Drupal amongst other php projects. 11ty is a very simple SSG so should be easy for you to get to grips with but please make sure you complete the prerequisite tasks before the session.

PreReqs

Mandatory

Skills, Knowledge and Behaviours

Technical Skills

This workshop is designed to develop the following technical skills:

  • JavaScript
  • JAMStack
  • Static Site Generators
  • API
  • Json
  • Templating
  • Data Storage
  • UX
  • Testing

Core Skills

This workshop is designed to develop the following from our core skills directive

  • Estimation
  • Prioritisation
  • Presentation
  • Communication
  • Teamwork
  • Empathy

Apprenticeship Standard

This workshop will encourage the development of the following from the Software Developer Level 4 Standard

Technical Competencies

  • Logic: writes good quality code (logic) with sound syntax in at least one language
  • User interface: can develop effective user interfaces for at least one channel
  • Data: can effectively link code to the database/data sets
  • Test: can test code and analyse results to correct errors found using either V-model manual testing and/or using unit testing
  • Problem solving: can apply structured techniques to problem solving, can debug code and can understand the structure of programmes in order to identify and resolve issues
  • Design: can create simple data models and software designs to effectively communicate understanding of the program, following best practices and standards
  • Analysis: can understand and create basic analysis artefacts, such as user cases and/or user stories
  • Deployment: can understand and utilise skills to build, manage and deploy code into enterprise environments
  • Development lifecycle: can operate at all stages of the software development lifecycle, with increasing breadth and depth over time with initial focus on build and test.
  • Can apply good practice approaches according to the relevant paradigm (for example object oriented, event driven or procedural)
  • Can interpret and follow:
    • software designs and functional/technical specifications
    • company defined ‘coding standards’ or industry good practice for coding
    • testing frameworks and methodologies
    • company, team or client approaches to continuous integration, version and source control
  • Can respond to the business environment and business issues related to software development
  • Can operate effectively in their own business’s, their customers’ and the industry’s environments
  • Can apply the maths required to be a software developer (e.g. algorithms, logic and data structures)

Technical Knowledge and Understanding

  • Understands and operates at all stages of the software development life cycle
  • Understands the similarities and differences (taking into account positives and negatives of both approaches) between agile and waterfall software development methodologies
  • Understands how teams work effectively to produce software and contributes appropriately
  • Understands and applies software design approaches and patterns and can interpret and implement a given design, compliant with security and maintainability requirements
  • Understands and responds to the business environment and business issues related to software development
  • Understands and applies the maths required to be a software developer (eg algorithms, logic and data structures)

Underpinning Skills, Attitudes and Behaviours

  • Logical and creative thinking skills
  • Analytical and problem solving skills
  • Ability to work independently and to take responsibility
  • Can use own initiative
  • A thorough and organised approach
  • Ability to work with a range of internal and external people
  • Ability to communicate effectively in a variety of situations
  • Maintain productive, professional and secure working environment