# staff discussion 2020-04-09
## Salary budget
* 15k
* 11k Sanghee / Nico
* 2k Jin-Guk
* 2k left
* Open/to decide: 4.5k
* 1.5k Balazs
* 1.5k Sami
* 1.5k Timothee
* 2.5k above budget
* 0.5k taken by gmbh (Sami)
* diff of 2k
## Sami
* Work/Hours
* Changing / Adding HDD: 1-2x / month, maybe 2h each = 4h
* Cleaning Diesbach when we have guests visiting/when we have events planned
* Cleaning up Schwanden when we have things to throw away (such as celler, outside storage room)
* Helping hand
* Picking up package, picking up post, scanning, uploading on cloud: not sure if this is enough work to hire him full-time
* How to afford him?
* Needs: 1.5k+
* .5k gmbh
* 1k ag
* 20% = 32h = about 640CHF
* 50h ag
* 12h/week
* 25h gmbh
* 6h/week
* 4 months accumulated
* Kurzarbeit
* Own Customer
* Strengths
* Sticking around
* Having a car
* Moving things
* Doing dishes/manual chores
* Doesn't question, knows his place
* Weaknesses
* **Reliability**
* Communication
* Transparency
* Finding his own work proactively
* Finishing tasks on his own
* Need to be checked repeatedly to get things done
* Phone sometimes off
* Missing drive (maybe too comfortable?)
* Failed approaches
* Wifi project
* Did not dig into
* Did not embrace it
* Daily status report
* Keeping server room clean
* Heinz PC
* No backup taken
* Not understood what he was doing
* Got hint from Nico
* And did something somewhat random
* Plan 2020-04
* Plan 2020-05
## Balazs
* Strengths
* Can do more advanced tech stuff than Sami
* Better with remote working (less chance to drain)
* Weaknesses
* Young & stupid
* Partly annoying
* Questioning too much
* Does not want to stick around, wants to go live in the city
* Depending personality
* Draining
* Makes inexperienced decisions on the spur of moment with customers and does not communication to Nico / Sanghee ex) giving out random discounts without telling team
* How to afford him?
* European time zone support (1-2h/day) x 7
* 30d / month = 60h ; x20 CHF = 1'200 CHF
* Hardware support
* Unpacking, testing, installing, starting
* Maybe 2x per month
* Takes 1 day each time = 8h
* Total 16h
* Total hours/month: 76h
* Plan 2020-04
* Plan 2020-05
## Timothee
* Tasks
* uncloud dev
* matrix setup
*
## Jin-Guk
* Support
*
## Balazs/Samuel: Final Learning Project Balazs/Sami
* More reliable
* More clean
* Being able to support
* 2 months time line
* Objective
* Make them (more) usable
* Enable them to support our stuff
* Wifi networks in Linthal
* Support requests
* Support Faeh
* Python coding
* Mode
* 2-4h per day, unpaid
* Task given out for a week by Nico (?)
* Inside talk.ungleich.ch
* Nico can checkin
* Topics
* Create a script to configure Mikrotik routers / aps
* using cdist
* debugging wifi problems
* ensuring that the facilities are CLEAN
* office
* server room
*
* Organisation
* Announcing them to Kurzarbeit
* Announcing
* Kurzarbeit
* 110h Sami
* Usable in April/May: 25h from gmbh, 4h/week ag = 16h, total 41h
* supposed: 110h / month
* 80% of (110-41) = 0.8*69 = 55.2
* Total hours = 96.2h, ag pays 320chf, gmbh pays 500 chf
* Kurzarbeit pays about 1100 CHF
* 120h Balazs
* Usable hours in April/May:
* 2h/day support = 60h/ month
* Kurzarbeit
* 60h; 60*0.8 = 48h
* Total = 108h
## Balazs/Samuel: Not working things
* Keeping server room clean and sorted
* Doing things on their own
* Finding your customers
## What I want Sami and Balazs to learn
* To be clean
* To communicate
* To be able to do work on their own
# Project week 1
* Day 1 intro
* Objective #1 become reliable, clean and professional
* Objective #2 start, run and finish projects on your own
* Objective #3 be able run, maintain and support most of our infrastructure
* Objective: become a professional
* Needs organisational skills
* Reliability requires planning and thinking ahead
* Being clean
* Mode
* Everyone learns for themselves
* You can brainstorm, talk
* The one who is ahead can hint the one lagging
* Objective is that both understand the
* Day 1 notes
* 0853 sami writes in chat if Balazs is there (supposedly physical?)
* 0900 Balazs is online (!), working
* 0905 Sami is online, no microphone
* 1113 Sami uses mobile phone, no progress from either of them
* Day 1 feedback
* Was today's learning circle reliable?
* Balazs: no
* Sami: no
* Was today's learning circle professional?
* Balazs: no
* Sami: no
* Was today's learning circle clean?
* Sami: no
* Balazs: yes
* Professional: focus on the task, skip what is not necessary
* Professional: stay reachable (chat!)
* Next one: Monday 0900
* Day 1 feedback Sami/Balazs
* Not available at 1200
* Sami: installed emacs, opened file, enabled org-mode
* installed xbindkeys
* Balazs:
* .emacs file binding
* tutorial/other tweaks
* Hints day 1
* Don't side track
* Focus on the main task
* Get your base setup stable (including screensharing)
* Finish within given time
* Today's result are a pre-requisite for next session
* You need a working laptop
* "Does not work" - not specific enough
* Need to be able to do screen sharing
* Plan Nico
* Install emacs: 5m
* Install org-mode: 20m
* Research functions: 30m
* Creating function: 30m
* Research binding: 10m
* Configure binding: 10m
* Research item creation: 5m
* Create items: 5m
* Total: 145m
* Buffer: 35m
* Organisation #1: org-mode introduction
* Install emacs
* Install org-mode
* Create a function that opens ~/learning.org in your ~/.emacs
* Bind that function to "f3" (configure it in .emacs)
* Create a new item named "2020-04-10"
* Create a sub item "ungleich learning circle"
* Organisation #2: Creating, managing and sharing with "magit"
* Install "magit" for emacs
* Bind C-x g to open magit-status in ~/.emacs
* Create a new directory ~/ungleich-learning-circle/ (with emacs)
* Use C-h b in dired mode to find out how to
* Create a sub directory ~/ungleich-learning-circle/YOURNAME/ (with emacs)
* Move your previously created learning.org file into ~/ungleich-learning-circle/YOURNAME/ (with emacs)
* Initialise it with git (with magit)
* Create the repo "ungleich-learning-circle" on code.ungleich.ch under your username
* Add your remote on code.ungleich.ch to your local git repo with magit
* Push your repo
* Add a new remote of a another participant
* Move your ~/learning.org to ~/notes
* Commit that file with magit
* Push the repo with magit
* End result: everyone has everything of everyone else
* Day 2 results
* Sami
* lot of research about this thing
* new thing
* never heard about magit
* Needed to understand
* Learned that there is stuff that you can install into emacs
* Learned about melpa
* "There was a problem in the config file"
* Balazs
* added new repository
* config files executed at startup
* Question mark
* Repository created
* Day 2 follow up
* Day 2 feedback
* Was today's learning circle reliable?
* Balazs: yes
* Sami: yes
* Was today's learning circle professional?
* Balazs: yes
* Sami: no
* Was today's learning circle clean?
* Balazs: yes
* Sami: yes
* Session 3: The definition of clean
* Define what clean is
* Visit the data center
* Schwanden, 1300-1400, Sami
* Linthal, 1300-1400, Balazs
* Schwanden 1500-1600, Balazs
* Linthal, 1500-1600, Sami
* Checkin sharp with video call
* Travelling time 1h
* Checkin sharp with video call
* Observe what is in the data center
* Schwanden: server room, coworking room
* Linthal: north, east, west, office
* Document what is not clean
* Why is it not clean?
* Document how it could be improved
* Think about sustainability
* Explain how which uncleanness can relate to unreliability
* Also document this
* Result: an org-mode document in ~/ungleich-learning-circle/USERNAME/ documenting above facts
* Day 3 notes
* Balazs requested 13oo slot the day before
* Re-requested change to 1400 later that that
* Re-requested / announced change on the day
* Calls without video
* Only posts one note, not saying which one it is
* Lack of responsibility?
* Sami
* Late arrival in Schwanden
* place6 is big, have it on paper
* Proper judgement in feedback round
* Day 3 feedback
* Cleanliness
* No mixed stacks -> stuff sorted
* All production systems labeled
* Bringing tools back to the same place
* Handling the whole flow
* if something arrives, what are all necessary steps?
* Is unpacking enough?
* What other things are expected and important?
* Charger / poe / vga without systems
* Systems without accessories
* Reliability
* Buy more
* Not find things
* Losing time in finding
* Losing time in ordering again
* Losing money
* Causing frustration
* Question
* Can ungleich rely on you & your work?
* Session 4: "retrospective"
* We review what went wrong yesterday and how to fix things long term
* Retrospectives are often used for team review or long term team discussions
* General guide
* We make a list of what went wrong
* The focus is on what, the who question is not in the focus (= no blame game, no personal critics)
* Stick to the facts, not feelings
* Steps retro - part 1 - 0915 to 1030
* 1. Make a list of things that went wrong / not as planned yesterday
* write it down digitally, shareable
* First write down all points here - don't go to step 2 and further!
* 2. Write down what this caused
* f.i. a delay, an outage, etc.
* 3. Write next to each item, why it happened
* The why can be trivial, but needs to be written down
* 4. Go through each item and the reasons why it happens and discuss measures how to prevent it
* This should not be one time recommendations, but possible to solve the origin
* Steps cleanliness - part 2 - 1030 - 1145
* 1. Write down all things that were not clean in a table
* 2. Write down how (even who, but without blaming) it happened in the first place
* 3. Discuss possible mid-term solutions how to ensure that the state does not deteriorate.
* 4. Discuss the effort (hours, costs) for each solution
* 5. Reason which solution you would select and why
* Day 4 Feedback
* Balazs
* /10 seconds / checking bread -> unprofessional / unplanned
* There are a variety of ways to make this more professional
* Easiest one is to announce at the beginning of the meeting that you'll need to check at XX:YY
* Better is to not have that scheduled at all during the kick-off which is usually 0900 - 0915
* Rescheduling is pain in the ass
* Makes Nico wanting to drop the session
* My impression: Balazs is not interested in the learning session
* Does he actually want to become clean, reliable and professional or is it not of interest?
* Sami
* Guesses cannot use google without account
* Generally ok-to-good work
* Lifting to good-to-great work
* Learning a bit more technology is important
* Much more important is to learn to learn
* Most important is to become clean, reliable and professional
* Both
* It is supposed to be a discussion -> needs talking
* Typical way:
* A says one item
* B says one item
* repeat until step down
* A comments on one item
* B comments on one item
* repeat until step done
* repeat for all left colums
* Starting session at 1200 -- nobody
* Hints/notes
* It's a good start
* The earlier you communicate, the better (in general)
* Especially when things go wrong
* What went wrong from Nico's point of view (prior to viewing list of Balazs/Sami)
* Sami not on time
* Trying to fix by calling in car
* Generally speaking trying to fix is a good approach ("ok approach")
* Better: succeeding ("good approach")
* Question I ask myself:
* Does he not care?
* Does it not matter?
* Is the meeting irrelevant?
* Balazs shifting meeting time to 1300
* Not a good start for a regular meeting
* Question I ask myself
* Why was shopping necessary before?
* Balazs shifting meeting time a second time to 1400
* Unclear reasoning
* Unclean working ("didn't know this before")
* Question I ask myself
* Why can the other meeting not be shifted?
* Does he care about other participants?
* Is he aware of the problems he is causing?
* Is he aware of what responsibility he carries and it means?
* Balazs shifting meeting time a third time to 1340 or similar
* Makes it very hard to coordinate any call
* The "maybe being there approach" is way worse than not being there from a planning view
* Question I ask myself
* Does he know what he is doing at all?
* Both not posting results of both places at 1600
* Why did Sami only write it on paper, not digitally in the first place?
* Why did Sami not see the time planning?
* What happened to Balazs? Did he do anything? Is he participating at all?
* Consequence is it was impossible to discuss the results
* From Nico's point of view a typical problem
* There is work relying on other work that can't be done, because prior work isn't done
* Feedback to list of Balazs/Sami
* Dig one reason deeper than given in the reason field
* "2 overlapping inflexible events"
* Why did they happen in the first place?
* How can these be avoided?
* Why is the communication lacking details?
* "B. couldnt enter the datacenter"
* This is a recurring pattern
* What is the proper solution? Don't access the data center anymore?
* Why is there a lack of key? Why is the key not on a keychain that always comes with?
* Why was it not communicated right away that access failed?
* Is not making it great or good, but making it better!
* "Had to troubleshoot network errors"
* Why is this necessary for writing down things?
* Resolution
* Go one step deeper
* Why was there no short plan in the first place?
* How do we ensure it is always there?
* "Poor time planning, I went to buy a drink."
* Resolution not precise enough / not specific
* how do I plan better?
* Establish patterns
* Trying to be 10 minutes before the expected time is a general rule of thumb and helps a lot
* "Another misplanning, spent to long on finding."
* How can these misplannings be solved? What is the CAUSE for it?
* What is the right duration?
* What is not clean
* Monitors without VGA cables
* Things that cannot be used because parts are missing
* APs
* Switches
* Mikrotik equipment
* Servers stacked without description
* Broken? Healthy? To be thrown away?
* Stuff lying around in different places
* The long hanging Ethernet cable (place6-east)
* MONTHS ago Juanito asked this to be fixed
* Office west looks like a minefield
* From garbage to boxes to food
* Is somebody or animals living in this room?
* Notebooks without power adapters
* Power adapters without devices
* On top nothing labeled
* Follow up on cleanliness
* Need to establish clear processes with check lists
* Day 4 feedback
* Was today's learning circle reliable?
* Balazs: yes
* Sami: yes
* Was today's learning circle professional?
* Balazs: no
* Sami: yes
* Was today's learning circle clean?
* Sami: no
* Balazs: no
* Session 5: "cleanup"
* Finish yesterday work
* Dig deeper in the reasoning, go one level deeper in the reason
* Create a list of 10 recommendations how to take actions mid or even long term
* Have a pattern / how do we fix it
* Work together on magit
* Ensure that both parties know how to use basic magit commands
* Ensure magit work cleanly
* Find out how/why the microphone on Sami's notebook doesn't work
* Establish consistency
* Day 5 Feedback
* magit task
* TestVM for emacs - magit for Sami
* Sami connection
* ubuntu 2h
* debian / devuan live did not work
* Home
* only 2 / 10 recommendations
* "5 or less"
* inaccurate
* professionalism -> no
* we don't have time
* Define what level of cleanliness we want
* Define where things belong
* Externalising
* how much do you contribute to it
* what is your role?
* Thinking about reasons we can act on
* cable labeling
* uuids
* introduce check lists
* risk management -> link balazs
* place6 office east
* being clean by default saves time
* Was today's learning circle reliable?
* Balazs: no
* Sami: no
* Was today's learning circle professional?
* Balazs: no
* Sami: no
* Was today's learning circle clean?
* Sami: no
* Balazs: no
* Organisation #3: Managing your emails
* Objective: be able to manage all your mails in mu4e
* Sub objective: follow the "zero inbox approach"
* General flow:
* all email is synchronised using isync/mbsync
* email is indexed with mu (xapian backend)
* email is viewed in mu4e
* All new emails arrive in the inbox
* When read/handled, mails are archived
* 2 fold objective
* Establish team and project work together (80%)
* Distribute the tasks
* Plan
* look at what needs to be done (5m)
* Shortly discuss who starts with what (5m)
* Research & implement
* Always stay in touch
* Begin to embrace emacs as a tool (20%)
* Steps
* Install mu4e
* Start mu4e in emacs
* Configure mbsync for your ungleich account
* Synchronise all mails into ~/Maildir/ungleich
* This structure leaves room for other mail accounts, like ~/Maildir/gmail
* Verify that mbsync synchronises the mail
* First on the commandline
* Index mails using `mu` on the command line
* Configure mu4e to get email with mbsync -a
* Configure mu4e to "archive" emails into ~/Maildir/ungleich/YEAR/
* This gives you a good performance for the next decades
* Configure mu4e/emacs for sending emails
* Send the other participant an email via mu4e
* Verify that it arrives
* "Archive" it afterwards
* Day 6 feedback
* ubuntu outdated -> always keep your os updated
* Fix ubuntu repo issues
* took longer
* 19.04
* couldn't see screen
* mu + isync installed
* authenticate and download mails
* schedule
* fixing notebook 30-45m
* how to use software / how to ask questions 1h
* man page
* how to search
* how to ask the right questions
* mbsync/isync more or less last
* mu4e where from
* Was today's learning circle reliable?
* Balazs: yes
* Sami: no
* Was today's learning circle professional?
* Balazs: no
* Sami: no
* Was today's learning circle clean?
* Sami: no
* Balazs: yes
* Alternatives
* Could have used a VPS
* Not download everything
* Follow up
* Feedback from Balazs
* Document after ending
* Into wiki
* Sami also loves to document
* cdist and git
* Questions to ask oneself
* Remote working personal
* How urgent is something?
* How important is something?
* Planning #1: building a network
* Objectives:
* Understand planning
* Understand networking
* Goal
* Build a network with
* Multiple Wifi access points
* 2 routers
* a firewall
* Configurations are versionised / can be rolled back
* Configurations are easily reproducible
* Configurations are stored centrally
* Minimise IPv4 usage
* But support IPv4
* Ensure that the plan exists fully
* i.e. no excuses
* Steps
* Create a list which hardware you need
* Including *everything* (i.e. cable, screw, psu, etc.)
* Make a plan on what to setup in which order
* List the technologies you plan to use
* If there are multiple choices, list why you choose one over the other
* Follow up questions
* Follow up / hints
* Clarification of requirements (good!)
* What's the point of planning
* Not to forget anything (correct)
* "Up to us what hardware to choose" (correct)
* Forget about back-and-forth (correct, detect earlier next time)
* How much they will cost (yes!)
* Plan the planning
* When to do what within a 3h window?
* What to do when?
* Very happy with 9 o'clock / 12 o'clock schedule
* Personal follow up
* I (Nico) begin to understand what you (Sami, Balazs) need
* plan
* do
* learn
* repeat
* Requires though
* cleanliness
* professionality
* reliability
* Requirements for tomorrow
* Emacs working with org-mode
* ungleich-learning-circle repository on code.ungleich.ch
* Have mu4e configured for sending and receiving emails
* Balazs
* Playing with Sami (category of cables)
* Explainer mode
* Questions
* VLANs / VXLAN
* Working
* Cleanup
* Day 7 (=)
* Results
* Discussed how it works
* Listed required hardware
* Router
* "should do next time"
* requirements are not clear
* "only beginning of"
* upstream router
* not documented well
* not considered security
* Not satisfied
* NOT FINISHED, NOT DONE
* Was today's learning circle reliable?
* Balazs: yes
* Sami: yes
* Was today's learning circle professional?
* Balazs: no
* Sami: no
* Was today's learning circle clean?
* Balazs: no
* Sami: no
* Discussion
* 5e
* Balazs
* Cannot concentrate
* Clarifications
* Feedback
* hackmd is a mess
* if it is a plan
* it has structure
* it is organised
* it is okay to have a finishing/unclean appendix
* Separate clean and brainstorming part
* Use paper for network brainstorming
* Learn to fill in the gaps
* brainstorming
* partially by assumptions
* it's a lot by questions
* based on brainstroming/assumptions you develop a plan
* Questions you need to answer
* When is it ready?
* How much does it cost?
* What do you use why?
* How do you set it up
* Planning #1.2: building a network
* Objectives
* Create 3 quotes for building a network
* Sub objectives
* 3 different variants that let the customer choose
* Output are 3 documents
* Need to be cleanly formatted
* hackmd or org mode are ok
* You can also use org-mode to create a pdf ()
* Each document contains
* All required hardware incl. costs
* A short description at the top what this offer includes, what the advantages and disadvantages of your proposal are
* An estimate of how long it takes to install since the date of ordering
* The number of working hours, detailed for each task
* A short description for each offer how the requirements are solved (... is realised with ...)
* The deadline for handing in all three quotes is 1200
* Requirements
* Build a network with
* Multiple Wifi access points
* 2 routers
* A firewall
* 1 Gbit/s per "port" is ok
* Configurations are versionised / can be rolled back
* Configurations are easily reproducible
* Configurations are stored centrally
* Minimise IPv4 usage
* But support IPv4
* Works in IPv6 only networks
* You will get a NAT64 prefix for the mapped IPv4 Internet
* Hints
* Stay focused, organised
* Organisation #4: Organising yourself
* Objective: have a todo list based on org mode
* Steps
* Configure the "org-directory" to be ~/ungleich-learning-circle/USERNAME/
* This is important as it will be used by the todo function later
* Extend your function from the organisation #1 session
* Instead of opening a fixed file, we include two variable parts:
* The hostname of the machine
* The year
* Pressing F3 should open ~/ungleich-learning-circle/USERNAME/learning-$(hostname)-$(year).org
* we call this "your personal agenda"
* Configure mu4e to create a org-mode tasks from an email
* Store these tasks in ~/ungleich-learning-circle/USERNAME/todo.org
* Configure emacs to open the "org-agenda" with "C-c a"
* List all TODO entries
* List the agenda of the day/week
* Bind F8 to open the "org-todo-list"
* Create some sample tasks in
* From now on, maintaining tasks should be
* Pressing F3 to open your personal "logfile"
* Adding a TODO item
* Pressing F8 to see the tasks with priorities
* Bonus tasks
* Configure mu4e to store org-mode tasks in .../todo-$(hostname)-$(year).org
* Organisation #5: Emacs refresher
* Objective: get confident with emacs commands
* Steps
* Find out and document in your aganda file how to...
* Search for something forward
* Search for something backward
* Go to the beginning of the line
* Go to the end of the line
* Delete a word in front (to the right of the cursor)
* Delete a word in back (to the left of the cursor)
* Search for a regular expression (forward, backward)
* List all "occurences" of a word in a file
* Copy above instructions into an emacs buffer
* Show all occurences of "Search"
* Search (GREP) for a word in all files in a directory RECURSIVELY
* Save all open files
* Split the window/buffer vertically
* Split the window/buffer horizontally
* Switch between the different windows
* Close all buffers besides the active one
* Don't kill it
* Close only the active buffer
* Don't kill it
* Kill the active buffer
* Describe/Explain the difference between closing and killing
* Switch between buffers that are not shown
* Document two very similar, but slightly different ways
* Brainstorming
* cleaning up the server room and the office
* finding problems in the server room
* suggesting how to fix things
* setting up wifi with capsman
* configuring mikrotik with ssh
* creating a shell script to configure a new mikrotik device
* bird
* networking
# List of unclean work
* Monitors are missing VGA cables
* Devices in the server room not labeled
* Server room is a mess
* Notebooks without power supplies
* APUs without power supplies
* Power supplies alone
# List of unprofessional work
* Questioning all the time
* Not being on time
* Notebook not in a usable state (microphone, camera not working)
# List of unreliable work