2021-W23.org

This commit is contained in:
Yann Esposito (Yogsototh) 2021-08-17 14:47:39 +02:00
parent 9c7f997011
commit 24cad70f8f
Signed by untrusted user who does not match committer: yogsototh
GPG key ID: 7B19A4C650D59646

307
2021-W23.org Normal file
View file

@ -0,0 +1,307 @@
** 2021-W23
#+BEGIN: clocktable :scope subtree :maxlevel 4 :timestamp t :link t :tags t :narrow 36! :match "work"
#+CAPTION: Clock summary at [2021-06-08 Tue 15:10]
| Timestamp | Tags | Headline | Time | | | |
|------------------------+------+-------------------------+--------+------+------+------|
| | | *Total time* | *5:58* | | | |
|------------------------+------+-------------------------+--------+------+------+------|
| | | \_ [[file:/Users/esposito/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*2021-W23][2021-W23]] | | 5:58 | | |
| [2021-06-08 Tue 15:10] | | \_ [[file:/Users/esposito/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*2021-06-07 Monday][2021-06-07 Monday]] | | | 5:58 | |
| [2021-06-07 Mon 10:09] | work | \_ [[file:/Users/esposito/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*device-grant][device-grant]] | | | | 5:26 |
| [2021-06-07 Mon 09:57] | work | \_ [[file:/Users/esposito/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*morning routine][morning routine]] | | | | 0:32 |
#+END:
*** 2021-06-07 Monday
#+BEGIN: clocktable :scope subtree :maxlevel 4 :timestamp t :link t :tags t :narrow 36! :match "work"
#+CAPTION: Clock summary at [2021-06-08 Tue 15:10]
| Timestamp | Tags | Headline | Time | | | |
|------------------------+------+-------------------------+--------+---+------+------|
| | | *Total time* | *5:58* | | | |
|------------------------+------+-------------------------+--------+---+------+------|
| | | \_ [[file:/Users/esposito/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*2021-06-07 Monday][2021-06-07 Monday]] | | | 5:58 | |
| [2021-06-07 Mon 10:09] | work | \_ [[file:/Users/esposito/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*device-grant][device-grant]] | | | | 5:26 |
| [2021-06-07 Mon 09:57] | work | \_ [[file:/Users/esposito/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*morning routine][morning routine]] | | | | 0:32 |
#+END:
**** IN-PROGRESS device-grant :work:
:LOGBOOK:
CLOCK: [2021-06-08 Tue 14:19]--[2021-06-08 Tue 15:09] => 0:50
CLOCK: [2021-06-07 Mon 10:09]--[2021-06-07 Mon 14:45] => 4:36
:END:
[2021-06-07 Mon 10:09]
- ref :: [[file:~/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/org/tracker.org::*morning routine][morning routine]]
**** DONE morning routine :work:
:LOGBOOK:
CLOCK: [2021-06-07 Mon 09:59]--[2021-06-07 Mon 10:09] => 0:10
CLOCK: [2021-06-07 Mon 09:37]--[2021-06-07 Mon 09:59] => 0:22
:END:
[2021-06-07 Mon 09:57]
- ref ::
*** 2021-06-08 Tuesday
**** MEETING deliberation Daniel :work:meeting:
:LOGBOOK:
CLOCK: [2021-06-08 Tue 18:59]--[2021-06-14 Mon 14:52] => 139:53
:END:
[2021-06-08 Tue 18:59]
***** Irina
- Don't have strong positive feeling.
- Mindset
- risk of lack of focus
No
***** Ambrose
I don't feel very engaged. Don't know if it's me or the interview.
He wants to learn more.
0
***** Mark
not excited.
Didn't feel that.
Late night active session.
Didn't work at the last minute.
Doesn't feel he has a strong opinion.
0
***** G2
not excited.
yes (maybe)
***** Y
- pros:
- technically ok.
- cons:
- afraid about if he would like to work in a quite closed environment.
- not asked much questions, so I'm afraid about a risk of lack of
motivation in the long run.
XXX: Do you think he is better than you? What will he bring to the team?
***** Ag
- no test
**** MEETING Interview ; Daniel Petranek :work:meeting:
:LOGBOOK:
CLOCK: [2021-06-08 Tue 16:59]--[2021-06-08 Tue 18:59] => 2:00
:END:
[2021-06-08 Tue 16:59]
***** Team Presentations
- Y
- Robert Levy
- Matt
- Irina
- G2
- Ambrose
- Ag
- Mark
***** Daniel
Came to Clojure, International Economic.
Data + emacs for note taking.
Emacs => Clojure as 1st programming lang.
1st purely functional Scala shop.
Strongly typed camp.
Mass notification soft, and ton of Clojure.
Cloud service, and scaling, performance, feature stuff.
Text to speach.
DB performance.
Rate limiting.
***** Demo
datalog databases
fullstack demo.
Use juxt.clip same like integrant
***** Questions from Daniel
****** Do you pair program? Process?
****** Use mac or Linux?
***** Questions
****** TODO static type system related.
Which feature do you prefer or do not like in Clojure.
****** Would you feel at ease working on an old code base?
In our current environment many code architecture choices are already made.
Also within a lot of existing common abstractions:
- application lifecycle abstraction
- configuration abstraction
- store abstraction
- user and most resources data structure
- identity/route declaration
- testing strategies
- logging (not 100% finished to have structured logs, but very close to completion)
- CI/REPL tooling
Choice are not completely frozen, far from it, but a lot as already been
tried so adding a new one can be difficult and thus it is a bit hard to
"play" with the existing system.
Also, the code is in PROD and must be very stable, so any change impacting
all component is generally observed as risky.
****** Documentations?
How much, how are you documenting.
Do you feel at ease to work completely async without any chat just via
comments/PR reviews on documents?
****** You mentionned CQRS API, what do you mean by that?
****** You used =defmulti=. Isn't there a contradiction with pure functional programming?
****** Maali schemas bunch of informations to generate datalog schema.
Have you heard about Haskell's servant.
They wrote a book about how they choose to organize this "Pattern" about
having the data driving different attributes of a code (generate servers,
clients, swagger-ui, documentation, etc...)?
For example you haven't used the route definitions to generate the frontend
clients (see =v2-routes=)
****** Macros
What would you call a good useful macros vs a macro that could have
negative impact on the code quality/productivity.
When does a macro is preferable than an emacs yasnippet?
**** IN-PROGRESS Irina 1-1 prep (bis) :work:
:LOGBOOK:
CLOCK: [2021-06-08 Tue 15:12]--[2021-06-08 Tue 16:59] => 1:47
:END:
[2021-05-27 Thu 08:46]
- ref ::
***** What to talk about?
1. My personal history with Cisco (presentation) personality/env, etc...
2. when/where I will be the more helpful to you
3. generic welcome advices (the team, SecureX/CTRl, SBG, Cisco)
4. what my day-to-day work looks like
5. what am I relevant for, when should you reach out?
6. the team spirit/ambiance
7. The expected work
8. Work organisation/schedule
- Know more about my work:
There is a 1h30 pres from previous week where I presented IROH-Auth to the
larger team.
***** Presentation (History first mine then the Team and the Product)
1. Ph.D. Machine Learning
2. Post Ph.D. Machine Learning
3. Work for Airfrace (Perl/scripts/web/)
4. Join Vigiglobe via Guillaume (our wives worked together)
a. Social Media Analytics, hire Matt, then G2
b. lot of pressure, fullstack dev + machine learning
c. rewrite in Clojure (lot of pressure)
d. bad management (SCRUM hell), wrong decisions, lot of pressure
5. Guillaume join Cisco in January, and I join in April.
6. Recruited by Craig & Dean. Craig is the mastermind
a. small team of 8 people, go to Calgary we are the center of attention
(the future!). Meet Al Huger.
b. first year work on CTIA (CTIM)
c. Cisco Threat Response (CTR); names IROH/Visibility/CTR
work on new abstractions / tk-store, inspect, modules, iroh-auth,
admin interface, scripts, help ops.
d. IROH-Auth: => login via AMP (SAML with Guillaume) (no user in DB)
e. IROH-Auth: => login via Threatgrid (OpenId Connect client)
f. IROH-Auth: => become OAuth2 provider (grants: client credentials,
authorization code, implicit)
**User** in DB
g. Huge amount of support to help other team integrate with OAuth2.
h. make implicit grant deprecated
i. SSE Integration (big deal, difficult with many teams)
House made integration (user auth hooks, pass tokens by side channels)
Matthieu implication
j. Orbital (they use our JWT)
k. IROH-Auth: => become an OIDC provider (IROH-Auth can be used as an IdP)
l. **SecureX** (previously called Platform, ...)
Very deep change in IROH-Auth underlying architecture/business logic.
8 month of intense work. Main change, user have only one
=idp-mapping= and now have multiple =idp-mappings=. Mainly you can
login via different login buttons and different identities into the
same user inside SecureX.
m. Ambrose then Victor join the team
n. Craig & Dean resign both; this is *huge*, reorg even though it was
prepared for one year.
So, Jyoti is put on top of Guillaume, her team (Rob, Ag, Mark) merge
with our team. Namrata / Elias replace Dean/Craig.
***** Advices
1. *Evaluation*:
Your main evaluation dimension will be *added user value*.
- Cisco promote and encourage their employees, if you are useful you will be rewarded.
- If you are helpful to other Cisco employees, this will also be visible
- If you help to make the internal system work, this will be more
difficult to sell to your manager. So my advice, have a 80/20 maximum
about; 80% working on visible to your manager stuff, 20% on the
necessary/fun stuff.
2. Use Cisco resources, ask for it (I have an iMac for example, which is
completely out of the normal things to get), do not be afraid to reach
other people at Cisco. Note, I am not the best one to follow on this one ;)
3. Try to use start-page, more and more people use it, I think this is a pretty
good starting point (mothership/work.html).
The frequency at which you will use these links (in 1 year from now) will be a good
way to evaluate if you are on the right track.
4. Do not fear to reach out to other people in other room/teams everyone
will be friendly and helpful, this is in fact one of the most important
hidden skill at Cisco.
5. Try to be aware about the CoC (chain of command), because it is not clearly
enforced does not mean it doesn't exists.
6. If you have any issue/problem technical/human/HR anything don't wait, be
vocal about it
7. If you would like to work on something don't let your manager(s) guess
for your ask them.
8. Depending on your tasks you could be overwhelmed by communication channels
(chat, mail, webexes), be prepared to handle this and have
***** Day to Day
1. Open emacs, check my todo list
2. Morning tours:
- open webex teams, chat morning tour (from 10min to 8h, generally 30min)
I frenquently have messages in the morning from Jyoti and other team
from India, East Europe.
- open mails (from 5min to 30min)
- check the agenda webex invitations
- Check my PRs (if someone has made some review, work on it)
- Check opened PR for review (from 5min to 8h, generally I try to stay
under 2h/day)
- check chat in "the Frenchies" (we try to avoid it more and more)
3. After the tour, check the updated agenda, the new todos, organize the
day/priorities work on it (if I can). Number of chat interuption from
10h-16h is generally about 4 notifications.
4. During my afternoon (>16h, the US wakes up)
- If no chat interruption continue the work until 18h/19h and stop my
day.
- Frequently one to three meetings, frequently during release weeks
impromptu webex/chat with QA team.
- If chat interruption, stop my work (unless my work is both urgent and
need deep concentration) and focus on the chat. Generally from 16->19h30.
Sometime a bit exceptionnally, work from 08:30pm->01:00am
***** What am I relevant about, when should you reach out?
- **IROH-Auth**: login, OAuth2, OpenID connect, OAuth2 clients, User/Org/Client
management, **scopes**
- **API Security**: **scopes**, how to use them, organize, etc...
- **TK-Store**: access different DB with interfaces. Has been butchered a bit
by Matthieu with its cache interface, he is aware about it.
- **Inspect**: extract observables (IP, url, hashes, etc...) from raw text
- **Response**: in Module system (iroh-int); now it is more Matthieu
- **Admin interface**: hidden but *very important*
- **Structured logs** (via Riemann/ES): helped get data for management: now
should be moved to G2 (but I am still relevant for kibana access, how to
log in our code, still missing structured log, but we are close)
- **Code architecture**:
- first decided to use lein-monolith (terrible but best from other
terrible choices), then removed it recently. Take a look at
=CONTRIBUTING.md=. Made =tk-tests= see rationale, etc...
- =let-either= in =iroh-int= (monads, etc..)
- =tk-store= is structured with the flaws from stores in CTIA
- =defwebservice= to centralize how our webservices work
***** TODO Team spirit
***** TODO Expected work
***** TODO Work organization/schedule
**** IN-PROGRESS review GH Action :work:
:LOGBOOK:
CLOCK: [2021-06-08 Tue 09:45]--[2021-06-08 Tue 12:25] => 2:40
:END:
[2021-06-08 Tue 15:09]
**** IN-PROGRESS device flow
:LOGBOOK:
CLOCK: [2021-06-08 Tue 14:11]--[2021-06-08 Tue 15:11] => 1:00
:END: