---
# System prepended metadata

title: staff discussion 2020-04-09

---

# 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

