Weekly Engineering May 2019
Before: ttps://www.getoutline.com/doc/weekly-eng-q1-2019-wcYwcKn60Mhttps://www.getoutline.com/doc/weekly-engineering-april-2019-j4aq1PGnEJ/
May 30 - Run by Puru
Joe Curlee:
common sense tip from today's fire: re-test old stale MRs (and try to avoid stale MRs)
Assign MRs to yourself so that peeps can filter on your name -- MR does not auto assign to creator
Sergey Tyan
Sergey Tyan [3:22 AM]react under the hood: https://www.youtube.com/watch?v=ssyqOYISPco - don’t have to be a topic on the meeting, but really interesting talk
Commiting specific lines of a file to git in VSCode: https://www.loom.com/share/354934de6d2b453daf0dd9cdb42e2054 Puru: git add -p for non VS code users
Ben Ross: How to know if a page is cached. https://www.getoutline.com/doc/cached-pages-and-abs-on-cached-pages-mLqCextENB
Praneeta Mhatre: if simple copy is not used in JS, please do not add to yml file JS needs to read from SIMPLE_COPIES_DICTIONARY which gets populated from the yml files However, server / haml files can read directly from db/redis cache
Follow-ups:
- Rails 5 proceeding? - Testing party is progress
- Staging/dev apps - on Formulation sprint
- status of all things - do we check that before deploying, did we add heroku, new relic etc there?
Fires:
- Stale branch
- Wix edit me thingy
Show and tell: Monitoring using circuit breaker - https://gitlab.com/powr/powr_circuit_breaker/blob/master/config/all.json
how do we feel this week
- collisions
- Sharing test servers
- wario rooms
- public channels
- qa testing
- all things nice
May 23 - We are lumpy!
Praneeta Mhatre:
- unique labels on view - now true unique what Puru did to ensure that. rails model- validates_uniqueness_of :unique_label, allow_blank: true
- retrigger by new blank commit please
- git commit --allow-empty
Ben / Pilar ? must get done aka golden tickets
- expanded scope - bugs etc bring up with PM - communicate
- standup - bring up if not started on
- bring up issues earlier on - do not wait till mondaya before end of sprint
Follow-ups:
- Rails 5 proceeding? - Testing party is today
- React upgrade? blocked by rails upgrade
- Node upgrade - powr - should we worry about outlet?
- Staging/dev apps -
- force rebase on git remote push
Fires: We keep forgetting to test logged out standalone
- unique labels null issue
- checking app_owner on app
Heroku maintenance
Show and tell: Ben's baller show and tell
how do we feel this week
- collisions
- Sharing test servers
- wario rooms
- public channels
- qa testing
- all things nice
May 16 - Praneeta's here…
Puru Dahal:
Heroku dataclips
URL parameters vs query strings parameters?
Ben Ross: Don’t put request specific logic on app view or other cached pages! Add on: Praneeta Mhatre: Please consider adding cache header and cloudflare caching when creating new static pages - eg /unlimited - come talk to me if you have questions on how
Joe Curlee: we need to upgrade node if we are running on an old version (lts is 10.x)
Brent Gummow:
another discussion of weebly testing 🙂
Is there a way to find all methods/functions that are not used in the code base and remove them? Response: Sergey Tyan: I think properly configured editor might help with that
Follow-ups:
- Rails 5 proceeding? - Puru to calendar wednesday after lunch
- React upgrade? blocked by rails upgrade
- Node upgrade
- Staging/dev apps -
- force rebase on git remote push
Fires: none - yay!!!!
Show and tell: ???
how do we feel this week
- collisions
- Sharing test servers
- wario rooms
- public channels
- qa testing
- all things nice
May 9 - Praneeta's not here…
Ivan (via Praneeta: if ordering ever matters, its best to define the ordering instead of leaving it up to postgres

Aigul: How Aigul edits JSON in VSCode: https://www.loom.com/share/357095268d714f4e9470fc8c0b02fcbe ^^to change language or document format just press Command+SHIFT+P
Joe: potential solution to alpha / staging / release conflict madness
Puru: Duplicate env specific app_types with same names as production on different platforms and do not use aliases to avoid conflicts with QAing an App(Type). This also avoids the issue where two people cannot test different aliases at the same time on a platform.
Follow-ups:
- remember to name ab test control groups as 'control'
- Rails 5 proceeding?
Fires: none?
Show and tell: ???
how do we feel this week
- collisions
- Sharing test servers
- wario rooms
- public channels
- qa testing
- all things nice
May 2: - Some bad pun about Star Wars.
Agenda:
Praneeta Mhatre:
- Why to name “control” in an ab as “control”
Puru Dahal: How do we want to proceed with Rails 5 upgrade/QA process?
Brent Gummow: Create/Add/etc To table migrations - do a check for existence
class AddEndUserEmailsToSendToAppFormResponses < ActiveRecord::Migration
def change
if !ActiveRecord::Base.connection.column_exists?(:app_form_responses, :end_user_emails_to_send) add_column :app_form_responses, :end_user_emails_to_send, :integer, array: true end
end
end
Follow ups:
- Ben will put notes for best practices - fires - https://www.getoutline.com/doc/fire-what-to-do-when-server-is-down-slow-Kihjw6dzmx/edit
- process for handling task. - ideally engineers do not work on a task that does not have a ticket.
- Ben/Liza - are we doing better with getting AB instructions?
- Sergey - react upgrade status?
- We now have browser stack
Firesfromlastweek: POWr was down and we ran out of db connections Ivan Kho: Here’s what I think happened:
Heroku backs up our prod database at 2pm each day. The migration that added the columns seemed to cause a conflict with this and caused the table lock. I found this looking at our follower db, where I traced the lock on the table (see image), and the timing seems to match.
The reason why I was able to go in and add the table manually after was when we reset the db connections, it also killed the COPY command.
Puru shifted the backup to start running at 5PM PST so it won’t conflict with when we push migrations in the future.
Can discuss more during the engineering meeting.
Puru Dahal: Follow up on ☝️
Praneeta Mhatre: Added an alert on logentreis - will post in monitor

Our production database backup schedules Note: BROWN => Prod, BRONZE=> follower Before:-
HEROKU_POSTGRESQL_BRONZE_URL: daily at 16:00 America/Los_Angeles
HEROKU_POSTGRESQL_BROWN_URL: daily at 14:00 America/Los_Angeles
After:-
HEROKU_POSTGRESQL_BRONZE_URL: daily at 22:00 America/Los_Angeles
HEROKU_POSTGRESQL_BROWN_URL: daily at 17:00 America/Los_Angeles```

**Show and tell**:
Praneeta: cached static pages
**how do we feel this week**
1. collisions
1. Sharing test servers
1. wario rooms
1. public channels
1. qa testing
1. all things nice