vault backup: 2024-08-14 16:26:58
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user