Files
org-notes/notes.org_archive
Adam Mohammed 815315bfb1 cleanup
2023-09-19 11:09:27 -04:00

531 lines
15 KiB
Org Mode
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- mode: org -*-
Archived entries from file /home/adam/notes/org-notes/notes.org
* DONE Interview with Roopa Bose
:PROPERTIES:
:ARCHIVE_TIME: 2023-04-19 Wed 10:55
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
- 7 Years Experience
- Go GRPC
- Docker
- DB
- JS
** DONE Roopa Interview
How did you reduce deplyoment time?
How did you optimize for dependency?
What wentinto reducing latency with API calls?
Just moved to canada
6 years java
2 yrs golang
transition from java to golang
tutorials
had to build a feature - used this as practical experience
startup experience
Got into angular as part of startup
EC2 and S3
Interested in Backends'
Difference bw authentication
* are you you
* do you have permissions
Describe the structure of a JWT
token expiration
session managments
user information is encrypted
container
envelopes environment
containers
prod issue was reported by customer
missed a test case?
did not have a proper testing tool?
testing strategy?
QA team and developer?
what langauges are you most comfortable with?
leet code done in java
returned cache result
rotate secrets
-- found out from logs
diagnosing the issues
service had exceeded timeout.
marques Q:
** DONE Give Feedback on Roopa
Roopas didn't seem like the strongest candidate to me.
During the short-form questions, she understood conceptually the JWT
and authentication vs authorization. She hasn't worked with K8s. With
a little guidance she did seem to understand what a container was. At
first the explanation was a "virtualenv".
My read on the answers were that the information she communicated was
decent surface level knowledge but when drilling down a bit further,
the understanding broke down quickly.
With respect to the long-form questions, she did much better. I liked
her answers for how she had improved the microservices in her previous
job. She had implemented a caching layer to keep data local within
their services as opposed to always hitting Salesforce. I would say
that her process for identitifying the issue was a bit lacking, but
she did provide results, so it worked out. The strategy to diagnose
the problem was more of seeing errors in logs and then looking at the
fix, but given that they didn't have much in terms of o11y, I think
that's the best she could have done.
She hadn't really known what we did, and wasn't able to make it very
far in guessing how provisioning would work. Given that she hasn't
worked in the space, I would expect her to think about what could
possibly go into this, but she didn't get far without Sarah leading
her through it.
Overall, I think that she's not fit for the senior position.
* DONE Add logging to RAILS for affected 1564 users
:PROPERTIES:
:ARCHIVE_TIME: 2023-04-19 Wed 10:55
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Figure out what users are affected by =#_incident-1564=
:PROPERTIES:
:ARCHIVE_TIME: 2023-04-24 Mon 15:01
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
[2023-04-19 Wed]
98b54728-ca71-47f8-8a86-5326dfa94b68
969eb393-ddfe-4db8-83e5-a4f6a4d1cae8
96293db0-1756-4a2e-97dc-3ed8051c76c3
f31ca1b8-35c9-43b1-8abd-205157da57ab
cc817f6e-f56f-4cae-91f2-eb1a85049847
** DONE GET FeatureFlag =inc-1564= created
** DONE TURN on FeatureFlag for the affected users
* DONE Figure out how API caching works
:PROPERTIES:
:ARCHIVE_TIME: 2023-04-24 Mon 15:01
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
[2023-04-21 Fri]
[[file:~/repos/packet_api/app]]
#+begin_src ruby
{"api-memcached:11211"=>
{"pid"=>"1",
"uptime"=>"14588595",
"time"=>"1682087387",
"version"=>"1.4.39",
"libevent"=>"2.0.21-stable",
"pointer_size"=>"64",
"rusage_user"=>"55637.149812",
"rusage_system"=>"312432.516705",
"curr_connections"=>"178",
"total_connections"=>"6312162",
"connection_structures"=>"233",
"reserved_fds"=>"20",
"cmd_get"=>"66235052615",
"cmd_set"=>"2891259574",
"cmd_flush"=>"0",
"cmd_touch"=>"0",
"get_hits"=>"66044041688",
"get_misses"=>"191010927",
"get_expired"=>"7840267",
"get_flushed"=>"0",
"delete_misses"=>"151488684",
"delete_hits"=>"4971710",
"incr_misses"=>"0",
"incr_hits"=>"0",
"decr_misses"=>"0",
"decr_hits"=>"0",
"cas_misses"=>"0",
"cas_hits"=>"602205",
"cas_badval"=>"35181",
"touch_hits"=>"0",
"touch_misses"=>"0",
"auth_cmds"=>"0",
"auth_errors"=>"0",
"bytes_read"=>"11288707288755",
"bytes_written"=>"91579773904379",
"limit_maxbytes"=>"67108864",
"accepting_conns"=>"1",
"listen_disabled_num"=>"0",
"time_in_listen_disabled_us"=>"0",
"threads"=>"4",
"conn_yields"=>"2570603764",
"hash_power_level"=>"16",
"hash_bytes"=>"524288",
"hash_is_expanding"=>"0",
"malloc_fails"=>"0",
"log_worker_dropped"=>"0",
"log_worker_written"=>"0",
"log_watcher_skipped"=>"0",
"log_watcher_sent"=>"0",
"bytes"=>"66018118",
"curr_items"=>"44567",
"total_items"=>"2582414728",
"expired_unfetched"=>"5440550",
"evicted_unfetched"=>"139326914",
"evictions"=>"161345638",
"reclaimed"=>"6384399",
"crawler_reclaimed"=>"0",
"crawler_items_checked"=>"0",
"lrutail_reflocked"=>"48"}
}
#+end_src
Found out that you can set `-vv` on memcached to get the commands dumped out
* DONE look at VMC-E SDDC
:PROPERTIES:
:ARCHIVE_TIME: 2023-04-24 Mon 15:02
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Audit Spot Market Bids
:PROPERTIES:
:ARCHIVE_TIME: 2023-05-10 Wed 16:03
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
#+begin_src sql :name max_bids per facility
SELECT p.slug, array_agg(f.code), array_agg(cl.max_allowed_bid)
FROM capacity_levels cl
JOIN plans p ON cl.plan_id = p.id
JOIN facilities f ON cl.facility_id = f.id
JOIN metros m ON f.metro_id = m.id
GROUP BY p.slug
ORDER BY p.slug ASC;
#+end_src
#+begin_src sql :name checking for distinct prices
SELECT cl.plan_id, cl.max_allowed_bid, COUNT(DISTINCT cl.max_allowed_bid)
FROM capacity_levels cl
WHERE cl.deleted_at < 'January 1, 1970'
GROUP BY plan_id, max_allowed_bid;
#+end_src
Results [[file:capacity_levels_pricing.csv][capacity_levels_pricing.csv]]
* DONE Upgrade CRDB to 22.2.7
:PROPERTIES:
:ARCHIVE_TIME: 2023-05-10 Wed 16:03
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Figure out /organizations caching
:PROPERTIES:
:ARCHIVE_TIME: 2023-06-06 Tue 16:34
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
So the most called version of the =/organizations= endpoint is the one thats called with the query params =?per_page=100=. Normally we're spending 200-300ms just getting the data to render the view.
At first I thought that includes and excludes would be the culprits here, but it doesn't seem so.
The view itself has many calls to `exlucdable_include_related` which is a construct that loads related values from the organization unless explicitly excluded.
This means that we're making several round trips to the DB to fetch data that is almost always in the view.
The best bang for our buck here is to parse the includes and excludes before we get to the view, and eager load as much as we can so that we save DB trips.
* DONE Meeting with DevRel to talk about Provisioning Failures
:PROPERTIES:
:ARCHIVE_TIME: 2023-06-06 Tue 16:34
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
Chris:
Cluster api - failed provision
it shows up with a 403 - moving the project to a new project
if the device is not ready handling
there was some effort in the pass
jordan
should clients be polling events
if it appears in my devices list
pxe boot can time out
Phoning home
wouldn't want to see it
check on rescue and reinstall operations
* DONE Get PR for Atlas PR merged for k8s-nautilus-resource-owner
:PROPERTIES:
:ARCHIVE_TIME: 2023-06-07 Wed 22:19
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Figure out why api-internal is stuck
:PROPERTIES:
:ARCHIVE_TIME: 2023-07-04 Tue 13:04
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
problem: Still in INIT after 11m
node: Successfully assigned api/api-internal-697b64c8b7-vfwrh to prod-ny5-core-09
api-internal was missing NATS configuration, db:seed was triggering NATS events
* TODO Keep going with Infratographer events
:PROPERTIES:
:ARCHIVE_TIME: 2023-07-04 Tue 13:08
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: TODO
:END:
- The papertrail gem lets you know what changed
`o.versions.first.object_changes` yields the last set of saved changes
- Need to whitelist which fields are shareable
- Plan, take the raw change set
- Reduce changeset to whitelisted fields
- Emit that change set to infratographer.
- Try to figure out what the event structure for a membership being added means.
Revision: We ditched the changes and just slapped the object IDs
in the event.
This is actually a good move. By just generating event by the ID we
reduce the chance that consumers depend on the state of an object
instead of just the ID.
* DONE Keep going with Infratographer events
:PROPERTIES:
:ARCHIVE_TIME: 2023-07-04 Tue 13:09
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
- The papertrail gem lets you know what changed
`o.versions.first.object_changes` yields the last set of saved changes
- Need to whitelist which fields are shareable
- Plan, take the raw change set
- Reduce changeset to whitelisted fields
- Emit that change set to infratographer.
- Try to figure out what the event structure for a membership being added means.
Revision: We ditched the changes and just slapped the object IDs
in the event.
This is actually a good move. By just generating event by the ID we
reduce the chance that consumers depend on the state of an object
instead of just the ID.
* DONE Express concern around engineering quality
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-16 Wed 10:36
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
I raised concerns that this result is doesn't meet the bar to achieve success on the problem we set out to solve.
I also do believe it doesn't help solve the problem
When I express that the immediate response was defense. That's the wrong response itself.
I can be clearer -- There are two points I want here,
1. I don't think this solves the problem we were targeting.
2. We have finite time, deciding if we want to iterate or redesign based on learning is a decision to make.
3. Option 3 which I didn't think was possible is to completely ignore the point.
Here's what's worse though. We're trying to transform the team to be enablers for other teams, so we need to set the bar.
We have people on this team that are trying to raise / set the bar, and when they raise concerns they are dismissed without
consideration.
My main concern is our ability to field feedback on this team. I don't
think I have many occurrences of differing opinions being given the required space.
At best it leads to apathy, at worst it leads to mediocrity. Either way it leads to a dysfunctional team by design.
Those people trying to raise the bar aren't doing so selfishly.
We don't get immediate gain out of performing better or working harder, we still get paid the same.
So why would we be striving to raise the bar? This is a fundamental question to see if a leader understands
what high performers need to thrive.
* DONE Try to deploy
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-16 Wed 10:36
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Write ExternalSecretPush for DB creds and Secret key base
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-16 Wed 10:36
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Present Users through the ResourceOwnerShim
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-16 Wed 10:36
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* TODO Put together POC for micro-caching RAILS
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-16 Wed 10:36
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: TODO
:END:
* TODO Create a ticket to deal with 403s for provisioning failures
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-16 Wed 10:36
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: TODO
:END:
* TODO MAKE TICKETS
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-16 Wed 10:36
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: TODO
:END:
scheduler
worker configuration
cleanup job
* DONE Start Chuck Roast Braise
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-16 Wed 11:21
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Create Tickets for Scheduler
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-16 Wed 11:21
:ARCHIVE_FILE: ~/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Resource Owner shim returns deleted users and memberships
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-28 Mon 11:12
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Add defaults and non-nullable bits to DB
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-28 Mon 11:12
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Update queued at timestamp
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-28 Mon 11:12
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Start Work on Scheduler
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-28 Mon 11:12
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END:
* DONE Review Miles LBaaS doc
:PROPERTIES:
:ARCHIVE_TIME: 2023-08-28 Mon 11:13
:ARCHIVE_FILE: ~/notes/org-notes/notes.org
:ARCHIVE_OLPATH: Tasks
:ARCHIVE_CATEGORY: notes
:ARCHIVE_TODO: DONE
:END: