{"version":1,"pages":[{"id":"EUgpT0vt6EeS7TLJRyn9","title":"Introduction","pathname":"/backend-handbook","siteSpaceId":"sitesp_hJpEK","emoji":"1f44b"},{"id":"iGIMKjKIyuwQrNoZPzvL","title":"Atomicity","pathname":"/backend-handbook/software-design-principles-and-clean-code/atomicity","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Software Design Principles & Clean Code"}]},{"id":"JWPa3kkDfVQ6BwmGMrNO","title":"Modularity","pathname":"/backend-handbook/software-design-principles-and-clean-code/modularity","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Software Design Principles & Clean Code"}]},{"id":"okeXJJiL7lKktsjkxwRw","title":"Hierarchy","pathname":"/backend-handbook/software-design-principles-and-clean-code/hierarchy","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Software Design Principles & Clean Code"}]},{"id":"zerTffcQZtZaELnuRkPG","title":"Loose coupling","pathname":"/backend-handbook/software-design-principles-and-clean-code/loose-coupling","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Software Design Principles & Clean Code"}]},{"id":"rhHp8sbqw1Tz5uF454jl","title":"Asynchronous programming","pathname":"/backend-handbook/software-design-principles-and-clean-code/asynchronous-programming","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Software Design Principles & Clean Code"}]},{"id":"8xvnj88FsKcL2kn2gka9","title":"JavaDocs","pathname":"/backend-handbook/development-practices/javadocs","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"}]},{"id":"slP7nrOloya4sneSPnnZ","title":"Technical Debt","pathname":"/backend-handbook/development-practices/technical-debt","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"}]},{"id":"uovbpcJ2mNdcSsMIt5NH","title":"Testing Guidelines","pathname":"/backend-handbook/development-practices/testing-guidelines","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"}]},{"id":"mv55prgvjSCAtA8pmyF5","title":"The Importance of Test Automation","pathname":"/backend-handbook/development-practices/testing-guidelines/the-importance-of-test-automation","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"}]},{"id":"IMmSm18gVgTL0l4Ngerg","title":"The Testing Pyramid","pathname":"/backend-handbook/development-practices/testing-guidelines/the-testing-pyramid","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"}]},{"id":"alOdZylQ9NnaL9DTnv9U","title":"Unit Tests","pathname":"/backend-handbook/development-practices/testing-guidelines/the-testing-pyramid/unit-tests","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"},{"label":"The Testing Pyramid"}]},{"id":"Lfa6S31YS8D3dwwfC7h6","title":"Integration Tests","pathname":"/backend-handbook/development-practices/testing-guidelines/the-testing-pyramid/integration-tests","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"},{"label":"The Testing Pyramid"}]},{"id":"saBI6lUjVsbRPO6WHekH","title":"End-to-End Tests","pathname":"/backend-handbook/development-practices/testing-guidelines/the-testing-pyramid/end-to-end-tests","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"},{"label":"The Testing Pyramid"}]},{"id":"QxGeQmVVKj0xONXPxWUE","title":"Mutation Testing","pathname":"/backend-handbook/development-practices/testing-guidelines/mutation-testing","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"}]},{"id":"hM2gG5Ue7dssImxri4tZ","title":"Contract Tests","pathname":"/backend-handbook/development-practices/testing-guidelines/contract-tests","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"}]},{"id":"1pCxr9e6yiTwhG28mA3c","title":"REST Controller Contract testing","pathname":"/backend-handbook/development-practices/testing-guidelines/contract-tests/rest-controller-contract-testing","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"},{"label":"Contract Tests"}]},{"id":"yu8dMc6m30eIzZcGItbT","title":"OpenAPI Contract testing","pathname":"/backend-handbook/development-practices/testing-guidelines/contract-tests/openapi-contract-testing","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"},{"label":"Contract Tests"}]},{"id":"XCz6179eyMuDix7C1qIC","title":"Testing Frameworks","pathname":"/backend-handbook/development-practices/testing-guidelines/testing-frameworks","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"}]},{"id":"YRFm4Aysw5na6BW9Zkuu","title":"JUnit 5","pathname":"/backend-handbook/development-practices/testing-guidelines/testing-frameworks/junit-5","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"},{"label":"Testing Frameworks"}]},{"id":"TphMBU3PwFhgS8uR4HeM","title":"Testcontainers","pathname":"/backend-handbook/development-practices/testing-guidelines/testing-frameworks/testcontainers","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"},{"label":"Testing Frameworks"}]},{"id":"tvytRKX6HSGMZ8BMc8ny","title":"Mockito","pathname":"/backend-handbook/development-practices/testing-guidelines/testing-frameworks/mockito","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"},{"label":"Testing Frameworks"}]},{"id":"OoZpPH3toxZcly7wZMMk","title":"Writing Clean Tests - Best Practices","pathname":"/backend-handbook/development-practices/testing-guidelines/writing-clean-tests-best-practices","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"},{"label":"Testing Guidelines"}]},{"id":"xKwFJIrCEtjv7sllX9nM","title":"Common library","pathname":"/backend-handbook/development-practices/common-library","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"}]},{"id":"hHKJKOhPPmdwgrpZ6vNK","title":"Generic CRUD","pathname":"/backend-handbook/development-practices/generic-crud","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"}]},{"id":"SmbOdvVnhRniOs4j4WZL","title":"Update Facade","pathname":"/backend-handbook/development-practices/update-facade","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Practices"}]},{"id":"zMlLiNpwLvn40YYHVRkM","title":"Monitoring","pathname":"/backend-handbook/development-tools-and-environment/monitoring","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Tools & Environment"}]},{"id":"DRVs4LvkFzB09VWWu9uL","title":"Performance tuning","pathname":"/backend-handbook/development-tools-and-environment/performance-tuning","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Tools & Environment"}]},{"id":"6Gq9A98r8iwh882KRZQn","title":"Multi-tenancy & Configuration Management","pathname":"/backend-handbook/development-tools-and-environment/multi-tenancy-and-configuration-management","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Tools & Environment"}]},{"id":"jOmX3Z3RCeIggJ0RD6Fx","title":"Git practices","pathname":"/backend-handbook/development-tools-and-environment/git-practices","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Tools & Environment"}]},{"id":"7p0xZP8QHU9NGlzh5EzC","title":"CI/CD","pathname":"/backend-handbook/development-tools-and-environment/ci-cd","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Tools & Environment"}]},{"id":"WIKgNt0kiSJ4lFIOGRaH","title":"Maven","pathname":"/backend-handbook/development-tools-and-environment/maven","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Development Tools & Environment"}]},{"id":"ScbMFbG5eIgYrTFfkXx9","title":"Jira","pathname":"/backend-handbook/project-management/jira","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Project Management"}]},{"id":"3L0N25FGZpqUEjmTKFOh","title":"Confluence documentation","pathname":"/backend-handbook/project-management/confluence-documentation","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Project Management"}]},{"id":"k3599INTTjKuQyWESv3e","title":"SCRUM","pathname":"/backend-handbook/project-management/scrum","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Project Management"}]},{"id":"320pGAm1BH8FsJHfO853","title":"Our ways of working","pathname":"/backend-handbook/project-management/our-ways-of-working","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"Project Management"}]},{"id":"gbluZTZVaqsv4gD1XrjZ","title":"Introduction","pathname":"/backend-handbook/life-at-leapwise/introduction","siteSpaceId":"sitesp_hJpEK","description":"","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"XR4iUxrd9FnUgHsrEqqt","title":"Who are we?","pathname":"/backend-handbook/life-at-leapwise/who-are-we","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"oTMO75ZhII36RwR9gSQq","title":"What do we do?","pathname":"/backend-handbook/life-at-leapwise/what-do-we-do","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"xISiXVmJOswu48x1S0PJ","title":"Our values","pathname":"/backend-handbook/life-at-leapwise/our-values","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"RoPBYHsr8lOmGQNdIsFp","title":"Hiring process","pathname":"/backend-handbook/life-at-leapwise/hiring-process","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"ZFUOxt4cILFBVAlruWiA","title":"Hiring: A Mid Frontend Developer's Point of View","pathname":"/backend-handbook/life-at-leapwise/hiring-process/hiring-a-mid-frontend-developers-point-of-view","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"},{"label":"Hiring process"}]},{"id":"tTA1l4xknZlWGSenOQ28","title":"Benefits we offer","pathname":"/backend-handbook/life-at-leapwise/benefits-we-offer","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"xkm8ZVr1Q1c0S7IZPSBq","title":"Onboarding process","pathname":"/backend-handbook/life-at-leapwise/onboarding-process","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"mmi6j3lMbsDQk4OB7FQY","title":"Onboarding: A Senior Digital Marketing Specialist's perspective","pathname":"/backend-handbook/life-at-leapwise/onboarding-process/onboarding-a-senior-digital-marketing-specialists-perspective","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"},{"label":"Onboarding process"}]},{"id":"RfNsBCislfzme35HMTxM","title":"Mentorship program","pathname":"/backend-handbook/life-at-leapwise/mentorship-program","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"N8bMXJnfPbCDEft8Eq1H","title":"Career development","pathname":"/backend-handbook/life-at-leapwise/career-development","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"x8jiSb32RIo6ezuFxFbu","title":"Trainings & certificates we offer","pathname":"/backend-handbook/life-at-leapwise/career-development/trainings-and-certificates-we-offer","siteSpaceId":"sitesp_hJpEK","description":"Our commitment to excellence and expertise is showcased through the certificates and educational qualifications we regularly obtain.","breadcrumbs":[{"label":"LIFE AT LEAPWISE"},{"label":"Career development"}]},{"id":"8n6nSJkqzkLeZAyvPDCv","title":"Career development: A Senior Software Developer's Insight","pathname":"/backend-handbook/life-at-leapwise/career-development/career-development-a-senior-software-developers-insight","siteSpaceId":"sitesp_hJpEK","description":"","breadcrumbs":[{"label":"LIFE AT LEAPWISE"},{"label":"Career development"}]},{"id":"5IhvaHEZ3VbPRZJsxV72","title":"Community building","pathname":"/backend-handbook/life-at-leapwise/community-building","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"mMzuAXJDV4I69IGpQwvz","title":"Juniorship","pathname":"/backend-handbook/life-at-leapwise/juniorship","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"mTnmREqSTxXkUOkjXIM5","title":"First-hand info from our first team member","pathname":"/backend-handbook/life-at-leapwise/first-hand-info-from-our-first-team-member","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]},{"id":"FQf4jXY8XW5hJ7PaEWE0","title":"Join our team","pathname":"/backend-handbook/life-at-leapwise/join-our-team","siteSpaceId":"sitesp_hJpEK","breadcrumbs":[{"label":"LIFE AT LEAPWISE"}]}]}