Skip to content

Instantly share code, notes, and snippets.

View khaledosman's full-sized avatar
🤘

Khaled Osman khaledosman

🤘
View GitHub Profile
@khaledosman
khaledosman / template.txt
Created November 9, 2021 09:21
Feature / Architecture docs template
A Feature documentation describes what a specific part of the system does, how it works, how to use it and how it is implemented.
Key topics to include
Prerequisites: recommended previous readings/learning, tools to install, etc..
Abstract / Introduction: The what
Detailed Description / Architecture / How it works ; The how (flow charts, user flows, architecture diagrams, etc..)
Usage: How to use
Concerns, Limitations & Known issues: potential issues in the current implementations and things not taken in the current scope
Future plans & Potential improvements
Links and references to recommended reads, previous architecture diagrams, etc..
@khaledosman
khaledosman / ADR.txt
Created November 9, 2021 09:21
Architecture Decision Records
An Architecture Decision Record (ADR) is a document that captures a decision, including the context of how & why the decision was made and the consequences of adopting the decision. 
Key topics to include:
[short title of problem and solution]
Status: [proposed | rejected | accepted ]
Date: [YYYY-MM-DD when the decision was last updated]
Technical Story: [description | ticket/issue URL]
Context and Problem Statement
[Describe the context and problem statement, e.g., in free form using two to three sentences. You may want to articulate the problem in form of a question.]
@khaledosman
khaledosman / bug.md
Last active November 9, 2021 09:19
ticket-templates

Environment: dev/staging/demo/prod

Tenant: This is the company name in the url

Description:

Scenario / Steps to reproduce:

Current behaviour:

@khaledosman
khaledosman / review.md
Created November 9, 2021 09:14
Sprint review / demo agenda

Meeting Agenda:

  1. Status review for latest features; what was done, what's missing, what still needs work, etc..
  2. Demo of the current status and implemented features; feel free to use postman/graphql playground/show code/ui, etc.. in the demo, doesn't have to be just the ui.
  3. Decide whether or not the current state is releasable / should be released.
  4. Gather feedback, discuss next steps and create improvement/bug-fix tickets as needed
@khaledosman
khaledosman / retro.md
Last active November 9, 2021 09:13
retrospective meeting agenda

Prerequisites: please think through and maybe prepare some bullet points on things that you think are currently going well, things that are frustrating and things we can improve, or things things that have annoyed you and made your work difficult in the past couple of weeks, as well as current risks, challenges, etc... could be about anything in general; code, processes, product, work done or totally unrelated random stuff, be creative ;)

Meeting Agenda:

  • Follow up on last retro's action items
  • Status & Product update on the last release, client feedback and future plans
  • Time-boxed duration for everyone to write down their points
  • Individual presentation and discussion of results
  • Clustering or grouping similar points together
  • Create action points for needed improvements to be followed up on
@khaledosman
khaledosman / standup.md
Created November 9, 2021 09:12
daily standup agenda

Daily standup meeting where we discuss and align on the main goals for the day.

Meeting Agenda:

  1. Each participant gives a status update on what's been done and what still needs to be done (i.e; what did you do yesterday? what will you do today? do you have any blockers or do you need help from someone?).
  2. Align on goals or any urgent issues to be discussed for the day.
  3. Parking lot: Discuss any blockers, open topics/questions or potential problems that we need to solve soon.
@khaledosman
khaledosman / kick-off.md
Created November 9, 2021 09:11
Kick off meeting agenda

Meeting Agenda:

  1. Quick intro about the feature and the reasons behind it.
  2. Briefing update on the deadline, business requirements and customer expectations
  3. presentation of the new designs and proposed solution
  4. Feedback, Discussions, Questions, etc..
  5. Discussion of technical feasibility, needed changes or architecture to implement the new feature.
@khaledosman
khaledosman / documentation.txt
Created July 12, 2021 11:11
software documentation guidelines
Software documentation types:
https://ibb.co/0s7W7TD
Key topics to document
- Architecture of how microservices or system components interact with each others
- Decision documents
- architecture of each component or microservice on its own
- When/How to run Migrations and how to generate
- Design System documentation / storybook if applicable
- GUI for the database?
@khaledosman
khaledosman / index.js
Created March 7, 2021 15:23
replace all links of all md files in a folder recursively with a new downloaded file link
const fs = require('fs')
const path = require('path')
const http = require('https')
const { promisify } = require('util')
const promisifiedReadFile = promisify(fs.readFile)
const promisifiedWriteFile = promisify(fs.writeFile)
// loops over all files in a directory recursively and returns filepaths to .md files
function getMdFilePaths (startPath) {
if (!fs.existsSync(startPath)) {
@khaledosman
khaledosman / generate-time-array.js
Created November 2, 2020 16:30
Generate a time array (i.e for a graph)
function generateTimeArray (startTime, endTime, step) {
let pointer = startTime
const res = []
console.log(pointer, pointer <= endTime)
while (pointer <= endTime) {
res.push(pointer)
const dateObj = new Date(pointer)
pointer = dateObj.setHours(dateObj.getHours() + step)
}
return res