vault backup: 2024-08-14 16:26:58
This commit is contained in:
1
Work/Business Enablement Team.md
Normal file
1
Work/Business Enablement Team.md
Normal file
@@ -0,0 +1 @@
|
||||
Team that formed out of the Salesforce feature team, came to manage things like Business Desk, Salesforce integration, Royalties and several other code bases related to service internal "customers".
|
||||
1
Work/Business Solutions Group.md
Normal file
1
Work/Business Solutions Group.md
Normal file
@@ -0,0 +1 @@
|
||||
Dev group at Logos that includes the [[Business Enablement Team]], [[MarTech Team]], [[Commerce Team]] and [[Payments Team]].
|
||||
1
Work/Commerce Team.md
Normal file
1
Work/Commerce Team.md
Normal file
@@ -0,0 +1 @@
|
||||
Team I lead that [[Nate Merritt]] used to lead. I'm taking over the tech lead position with [[Nate Merritt]] leaving Logos.
|
||||
@@ -1,11 +0,0 @@
|
||||
#copilot #logos
|
||||
|
||||
Tried to use GitHub Copilot this morning for refactoring the CRM API ETL unit tests to my new testing methods, but it couldn't get it right. Later in the day, it did great on a more focused refactor ask.
|
||||
|
||||
Met with Hugo for my 1:1 and he went our the mid-year review with me. He only had nice things to say about me, so that's encouraging. One thing to work on that we discussed: removing some project management duties so I can focus more on technical work.
|
||||
|
||||
Had my 1:1 with Ricardo today too. We mostly discussed the replatforming work: how it's going, his perspective and whether I'd like to get more involved with it in phase 2. Summary: disappointed with Celigo, BigCommerce and Trellis (their quality of work), but generally happy with other things like Builder.io and using Next.js for new.logos.com
|
||||
|
||||
Refactoring these CRM API ETL unit tests took most of the day--it's just a lot of manual effort and then fixing unit tests when the expectations are slightly different because I've revamped the testing helper methods. I expect to be done today though.
|
||||
|
||||
Tomorrow, I hope to get tests written for the Commerce Info ETL refactor and get a PR in for that.
|
||||
@@ -1,7 +0,0 @@
|
||||
#unit-testing #logos
|
||||
|
||||
Merged my unit testing refactor PR.
|
||||
|
||||
Created tests for the Commerce Account Info integration ETL refactor and put up a PR for that. Will hope to merge it Monday.
|
||||
|
||||
Had a good first book club meeting about the Excellence Wins book. I'm liking this book a lot--very easy to read and great thoughts on excellence in business and especially customer service. Seems everyone on the call was enjoying it too.
|
||||
@@ -1,9 +0,0 @@
|
||||
#royalties #logos
|
||||
|
||||
Enjoyed [this article](https://graphite.dev/blog/bors-google-tap-merge-queue?ref=dailydev) about the problem of merge skew and how to solve it for high-velocity code repositories.
|
||||
|
||||
Started working on bug causing duplicate billing profiles to be created from Salesforce (CRM API) integration. Not sure of the exact cause yet, but at least one user has 88 duplicate address-only BPs!
|
||||
|
||||
Discussed the path forward for order-level discounts and determining which resources they apply to with Ezekiel and Kyle. We agreed on not trusting the Titles&Terms spreadsheet, but giving the royalties team the tooling to accomplish this without making the decision as the dev team on which data source to trust. This puts that responsibility where it belongs (with the royalties team) and not with us, where we are poorly suited to make that decision or take responsibility for the outcome.
|
||||
|
||||
Nate Merritt told me he is leaving Logos and going to [BiblioNexus]([Open Source Software for Bible Translation (biblionexus.org)](https://biblionexus.org/)). This is a big blow to Logos and the Business Solutions Group in general. Ricardo wants me to be the new tech lead for Commerce. I'm willing, but tentative about doing it. I can't fill Nate's shoes, for sure.
|
||||
@@ -1,9 +0,0 @@
|
||||
#logos
|
||||
|
||||
Nate Merritt announced he's leaving Logos today. I talked to my team about potentially becoming the tech lead for Commerce and the need for leadership for the Business Enablement team. Kyle and Ezekiel both are willing.
|
||||
|
||||
Our internet went out pretty early in the day. I need to reschedule 1:1s with Kyle and Ezekiel tomorrow.
|
||||
|
||||
I couldn't continue debugging the duplicate billing profile issue because I needed to continue to look at BusinessDesk accounts, Graylog and the database. Couldn't do that without internet.
|
||||
|
||||
Instead I got a great head start on refactoring the Notes integration between Salesforce and Faithlife. I have the rough draft done of the outbound (Faithlife to Salesforce) integration.
|
||||
@@ -1,9 +0,0 @@
|
||||
#logos
|
||||
|
||||
Internet was out for most of the day, so I worked from the dining room table so that my phone had a good enough reception to do my hotspot. It doesn't work well in the basement. I'm guessing it's because the reception isn't as good.
|
||||
|
||||
Met with Nate today about possibly taking over the commerce team tech lead position with him leaving for BiblioNexus. Sounds like I could do it. It wouldn't be much different than leading the BEN team. But, even though I'm not the one who would fill this role, the biggest hole he's leaving is the staff engineer position and his historical knowledge.
|
||||
|
||||
Deployed the fix for the salesforce person account integration test fixture that was causing duplicate billing profiles sometimes.
|
||||
|
||||
Deployed a fix for segments being pushed to Amplitude cohorts. The bug was that we were accidentally replacing the entire cohort population when the cohort name changed but weren't pushing the entire population to Amplitude. The fix was to push the whole population any time the name changes. The Amplitude Behavioral Cohort API doesn't have a route to just update the cohort without replacing the population. Once deployed, I reran the Salesforce Data Loader job to re-upload all the Amplitude cohort populations. Going forward, it should keep them in sync properly.
|
||||
@@ -1,19 +0,0 @@
|
||||
#logos
|
||||
|
||||
## [[Enterprise subscriptions meeting]]
|
||||
#joe-caun #nic-hoza #nate-merritt #ricardo-blanco #michael-fisher #randall-knutson
|
||||
|
||||
Nic Hoza knows most of what's going on here. Basic desire for users:
|
||||
1. To see the subscriptions they have through their church or school
|
||||
1. Current usage of bulk license distribution doesn't show anything to an individual user (they just get the license access)
|
||||
2. Using bulk-license-delivering subscriptions still doesn't show the user this subscription since it belongs to the group
|
||||
2. Upgrade their church- or school-provided subscription with the difference of higher subscription
|
||||
|
||||
## Commerce backlog grooming meeting
|
||||
#michael-fisher #ricardo-blanco #nate-merritt #kate-neale
|
||||
|
||||
## Meeting with Kyle K.
|
||||
#bigcommerce #kyle-kennaw #replatform
|
||||
It's very unlikely we'll move away from BigCommerce. Currently painful, for sure, because of the dependence on our systems. But, perhaps we can map out the future of the migration to get less and less dependent and entangled.
|
||||
|
||||
I need to read more about BigCommerce and what it can do to get a better, informed picture of how we can move to it.
|
||||
@@ -1,42 +0,0 @@
|
||||
#logos
|
||||
|
||||
# Quotes code refactoring in CRM API
|
||||
#quotes #crmapi
|
||||
Refactored the AdminQuotesController in CrmApi today. It queries quotes from Logos (OrdersApi) and from Salesforce. I like the pattern of having two interfaces: ILogosQuotesService and ICrmQuotesService to abstract both sources but admit that most of our code is aware that we're getting quotes from two places and so it makes sense for it to reference interfaces tied to one side and the other instead of a single interface the somehow abstracts both sides of the fence.
|
||||
|
||||
After refactoring, the orders API client in my implementation of ILogosQuoteService is returning unauthorized. The problem was that I set it up in the CrmApi.v1 TypeRegistry as a Singleton instead of HybridHttpOrThreadLocalScoped. That won't work because it has to pass credentials per request.
|
||||
|
||||
# Deleted Opportunity problems in CRM API
|
||||
#quote #crmapi #salesforce #apex
|
||||
The CRM API integration tests were failing because the test quote couldn't be integrated to Salesforce UAT sandbox because a record with the same external id (our Logos quote ID) already existed, but was soft-deleted.
|
||||
|
||||
I was having trouble finding the soft-deleted record. [This article]([How to find deleted records in Salesforce using SOQL | Wipfli](https://www.wipfli.com/insights/articles/tc-how-to-find-deleted-records-in-salesforce-using-soql)) helped. The answer is to execute developer console Apex code:
|
||||
```apex
|
||||
List<opportunity> deletedOpps = [SELECT Id
|
||||
FROM Opportunity
|
||||
WHERE LogosQuoteId__c = '6667952' and IsDeleted = TRUE
|
||||
ALL ROWS];
|
||||
|
||||
system.debug(deletedOpps);
|
||||
```
|
||||
|
||||
The `ALL ROWS` part is the key. But, it doesn't work with a regular SOQL query, just from Apex code like this.
|
||||
|
||||
I had to insert a new record manually because the upsert we were doing in the quote loader was always failing with an `ENTITY_DELETED` error. I used Apex (the developer console in Salesforce) to
|
||||
execute this:
|
||||
```apex
|
||||
Opportunity opp = new Opportunity(Amount = 10, Name='bens test', CloseDate = Date.newInstance(1960, 2, 17), StageName='Negotiating', LogosQuoteId__c = '6667952');
|
||||
insert opp;
|
||||
```
|
||||
|
||||
Now the integration test passes.
|
||||
|
||||
The key findings I had to research to get right:
|
||||
1. The list of parameters to the sobject (`Opportunity`) are comma-separated and formatted as `key = value`
|
||||
2. Create a new Date with `Date.newInstance(year, month, date)`
|
||||
3. Use `insert nn` to insert the object
|
||||
|
||||
# Segment/Cohort Count Scheduled Check
|
||||
I implemented a scheduled check in CRM API to compare segment population counts from our DB to the user counts in Amplitude cohorts. The idea was to highlight cohorts where the population difference was difference enough to indicate sync was failing somehow.
|
||||
|
||||
Unfortunately, this approach didn't work. Some cohorts were even over 50% off from the segment population count. I'm assuming this is because the users are just not present in Amplitude, which is very possible. I removed the scheduled check for now until (if) we can find a better solution to check on these syncs.
|
||||
@@ -9,7 +9,7 @@ Re-platforming efforts:
|
||||
6. Celigo for data moving, system integration
|
||||
|
||||
## Algolia
|
||||
According to Nate Merritt, it's pretty much a disaster. It's "working", but one of the major features we had to keep was the ownership search where users can filter out or in products they already own. Algolia can't handle the thousands of products that users own despite what they said some solutions would be at the beginning of discovery.
|
||||
According to [[Nate Merritt]], it's pretty much a disaster. It's "working", but one of the major features we had to keep was the ownership search where users can filter out or in products they already own. Algolia can't handle the thousands of products that users own despite what they said some solutions would be at the beginning of discovery.
|
||||
|
||||
## BigCommerce
|
||||
I think this is a major disaster. Almost none of the "just works" plugins work (search, pricing, taxes). We're going to have to reach into our APIs to do dynamic pricing, discounting, taxes, etc.
|
||||
|
||||
1
Work/MarTech Team.md
Normal file
1
Work/MarTech Team.md
Normal file
@@ -0,0 +1 @@
|
||||
Team led by [[Caleb Nelson]] that does mostly front-end work for logos.com, manages our Wordpress blogs, etc.
|
||||
22
Work/New Platform Alerting.md
Normal file
22
Work/New Platform Alerting.md
Normal file
@@ -0,0 +1,22 @@
|
||||
2024-08-14
|
||||
|
||||
#logos #vercel #bigcommerce #celigo #replatform #oncall #alerting
|
||||
|
||||
|
||||
With the replatform work, we have several new systems for which the [[Business Solutions Group]] on-call rotation will need to eventually be responsible.
|
||||
|
||||
## New Systems with Alerting Needs
|
||||
Alerting should probably happen for:
|
||||
1. The new.logos.com site hosted by Vercel
|
||||
2. Celigo data flows when integration fails
|
||||
3. BigCommerce order and payment processing failures
|
||||
|
||||
## Ideas
|
||||
Nate suggested a couple of things I agree with.
|
||||
### Only low-priority at first
|
||||
Only low-priority alerting at first for all replatforming things. Justification: the initial rollout will be pretty minimal and won't serve a lot of customers or orders. It shouldn't alert anyone off-hours to fix anything.
|
||||
### Separate on-call rotation at first
|
||||
Have a separate on-call rotation for only replatforming things at first. They can:
|
||||
1. Refine alerting before we turn on any high-priority alerts
|
||||
2. Train the rest of the rotation before we merge the two rotations on replatform things
|
||||
|
||||
1
Work/Payments Team.md
Normal file
1
Work/Payments Team.md
Normal file
@@ -0,0 +1 @@
|
||||
Team lead is [[Nic Hoza]], manages most of the payments-related code for the [[Business Solutions Group]].
|
||||
@@ -1,6 +1,6 @@
|
||||
#privateequity #covehill
|
||||
#privateequity #covehill #logos
|
||||
|
||||
My meeting with Nate yesterday triggered a few more thoughts on private equity and Cove Hill's ownership of Logos.
|
||||
My meeting with [[Nate Merritt]] yesterday triggered a few more thoughts on private equity and Cove Hill's ownership of Logos.
|
||||
|
||||
1. Their goal is, obviously, profit
|
||||
1. Moving to subscriptions shows a stronger revenue stream
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
| | | | | | | | |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
|Accepting Rightpoint offer||||Staying at VML||||
|
||||
|Pros|Weight|Cons|Weight|Pros|Weight|Cons|Weight|
|
||||
|Salary increase|8|New people to meet|5|Familiar processes|6|No pay increase|3|
|
||||
|Lots of work|10|Unknown exact job requirements|6|Familiar, good people|10|Uncertain work load future|7|
|
||||
|Interesting colleagues|5|Less coding|5|Large company, probably solid|5|Un-inspiring boss|4|
|
||||
|Grow in Episerver expertise|6|More client-facing|3|Potential to build Episerver practice and business|8|Liberal-minded company/employees|5|
|
||||
|Promotion--more authority, influence|5|More travel|8|Potentially more time to do side projects, especially in the near term|10|||
|
||||
|||Lose contact with VMLers (probably…not definite though)|1|||||
|
||||
|||Switching insurance, 401k, etc|1|||||
|
||||
||34||29||39||18|
|
||||
| | | | | | | | |
|
||||
| ------------------------------------ | ------ | ------------------------------------------------------- | ------ | ---------------------------------------------------------------------- | ------ | -------------------------------- | ------ |
|
||||
| Accepting Rightpoint offer | | | | Staying at VML | | | |
|
||||
| Pros | Weight | Cons | Weight | Pros | Weight | Cons | Weight |
|
||||
| Salary increase | 8 | New people to meet | 5 | Familiar processes | 6 | No pay increase | 3 |
|
||||
| Lots of work | 10 | Unknown exact job requirements | 6 | Familiar, good people | 10 | Uncertain work load future | 7 |
|
||||
| Interesting colleagues | 5 | Less coding | 5 | Large company, probably solid | 5 | Un-inspiring boss | 4 |
|
||||
| Grow in Episerver expertise | 6 | More client-facing | 3 | Potential to build Episerver practice and business | 8 | Liberal-minded company/employees | 5 |
|
||||
| Promotion--more authority, influence | 5 | More travel | 8 | Potentially more time to do side projects, especially in the near term | 10 | | |
|
||||
| | | Lose contact with VMLers (probably…not definite though) | 1 | | | | |
|
||||
| | | Switching insurance, 401k, etc | 1 | | | | |
|
||||
| | 34 | | 29 | | 39 | | 18 |
|
||||
Reference in New Issue
Block a user