Weekly Eng Q1 2019
before: https://getoutline.com/doc/weekly-engineering-meeting-LFb9cwWGXV
Feb 28: - Muni sucks
Agenda: Brent Gummow / Teddy (form team): let's talk about testing notes cards priority, assignment, bugs on prod is easier for larger tasks. small tasks - 1 testing note card big tasks - multiple. Ensure ALL bug tickets are linked to a task. If this is not done, task goes back to QA.
Praneeta Mhatre:
possibility of storing premium features and limits in db
ab testing using url params
add class
ignoreon allinputsyou put in react components
<input className="ignore" data-lp-ignore={true} style={display: 'none'} accept=".csv" type="file" ref={this.setHiddenInput} onChange={this.onUploadStart} />
Sergey Tyan: PM approvals using Loom <3. and MR.
Pilar Sterne: Pair programming 👯♀️
Ben:
Pairing best practices:
Use big screens
One person drives- has mouse and keyboard. Other person does not look at Facebook. Keep switching. Unless you are actually writing you do not get it completely.
Drivers vocalize. Or the driver vocalizes and the person types- but both are engaged.
Look at badges, also useful for reviews.
https://awwapp.com
Joe:
Pair sessions dont need to be entire day. An effective hour and the break up and come back.
https://www.youtube.com/watch?v=rG_U12uqRhE
One person coming up with edge cases and other one comes up with answers.
draw.io, google draw thing, pictures on notepad, Kelseys thing - realtime board
Kelsey :
https://realtimeboard.com/
Follow ups: Praneeta: Set up Burrito party
Show and tell:
Firesfromlastweek:
how do we feel this week
- collisions
- Sharing test servers
- wario rooms
- public channels
- qa testing
- all things nice
Feb 21: - aka everyones in town - party time!!!!
Agenda:
- Quick discussion:
Ben: Can we put PM at the end of branch names to make autocomplete easier? e.g. reactify-slider-PM-5275 Praneeta Mhatre: I checked with Sergey about this and he said it shouldn’t be too complicated. Kelsey Raczak: YES PLEASE Sergey - what do you say?
2.1 Puru Dahal: Do not, DO NOT push directly to master, please
2.2 Praneeta Mhatre:
- gitlab cancel deploys vs reverting from master
- git etiquettes.
3. Brent Gummow: Joes new renderReactDOMComponent helper when adding react things to powr
Follow ups:
Brent: Alpha 3rd party integration: https://www.getoutline.com/doc/serversenvironments-Tge8HWLCvI
Puru helps Kelsey with syntax highlighting.
Does everyone who needs a burrito have one?
Show and tell: Ben: Internal Vote app
Firesfromlastweek: Zac Wickstrom 😎 [1:00 PM] POWr down
Puru Dahal [1:02 PM] Rolling back to last good deploy 11:13 AM’s POWr is back, i am pushing fixes.
Puru Dahal [2:08 PM] @here I have pushed all the changes after that 11:13 AM’s rollback. All good to go now.
Brent Gummow [2:26 PM] thank you
how do we feel this week
- collisions
- Sharing test servers
- wario rooms
- public channels
- qa testing
- all things nice
Feb 14: - aka Valentines day
Agenda: Alpha 3rd party integration Brent to make a list on outline and everyone will add to it. (Document created) https://www.getoutline.com/doc/serversenvironments-Tge8HWLCvI
Follow ups: Mifify is gone, but will be back - hopefully not with a bang.
Show and tell: Kelsey’s Korner Presents: Style Guide Update! https://www.powr.io/admin/style-guide
- FOLLOW UP: perhaps during upcoming eng meeting or spank the jank, we can each add some documentation to the react settings components in the styleguide
- Puru helps Kelsey with syntax highlighting.
Firesfromlastweek: Brent: migration stuff (mini fire on monday)
how do we feel this week
- collisions
- Sharing test servers
- wario rooms
- public channels
- qa testing
- all things nice
Feb 7:
Agenda: Praneeta Mhatre:
- share what you just learnt - if you did not find an answer to your question in outline and someone helped you - pay it forward, Add that new knowledge to outline so the next person looking for it will benefit from your newly gained knowledge
- simplecopies refresher -https://www.getoutline.com/doc/translations-and-simple-copy-or-simple-copies-uvyV0IJq16
Joe Curlee:
- by popular demand, these are the various things i talked about last week with more explanation. - https://www.getoutline.com/doc/javascript-coding-standards-5BGzdanuV5
Pilar Sterne:
- Including Jira ticket number in branch name (Docker QA + GitLab integration) - THIS IS A MUST TICKETNUMBER-SOME-INFO-ABOUT-BRANCH EG: PM-1234-Branch-for-something.
Brent: Staging / Alpha - wadup?
- Big JS changes will cause issues on prod. Minify taking too long. We need to look into how we can improve the build times . Source-maps be the answer.
Follow ups: Avatars - are they updated? #spankthejank
Show and tell: Ben Ross: scroll-to-top
Firesfromlastweek:
Social feed - facebook pages were failing for new app creations https://gitlab.com/powr/powr/merge_requests/1855 We got rid of the oauth request on powr side which got the page id and sent to powr outlet, now it sends the page name / id based on whether new or old page. while we were deploying it however, we noticed that it had already started working magically (:🤷:) We decided to not revert the change just in case the oauth requests fail again over the weekend and the code works currently as is. We have made a request for “Page Public Content Access” permission for POWr.io app and with that permission we should be set - even to make a search for page names like we did before. Permission is pending and Puru is keeping track of progress
how do we feel this week
- collisions
- Sharing test servers
- wario rooms
- public channels
- qa testing
- all things nice
Jan 31:
Agenda: Praneeta Mhatre: MRs - are we still poking people 1:1 when we need a review? also are we always having 2 people review code before merging? Ivan Kho: more on jobs (Puru handling) Brent Gummow
- Reminder to please update user avatar on gitlab - hard to know who the different patterned circles are when looking at gitlab jobs page 😉
Follow ups: Follow the process. - trusttheprocess. QA process. Scout - https://gitlab.com/powr/powr/merge_requests/1831/diffs - how to
Show and tell: Bad Praneeta - Mobx - just doing a quick reminder, will write a complete getOutline before next Eng meeting and will share notes. https://slides.com/praneetamhatre/deck#/6
Firesfromlastweek:
how do we feel this week
- collisions
- Sharing test servers
- wario rooms
- public channels
- qa testing
- all things nice
Jan 24:
Agenda:
Ben Ross: PM approval before testing
Praneeta Mhatre:
are we leaving enough time for testing in our planning? - Getting stuff out correctly is more important than rushing into something and pushing broken code. #spankthejankTM - Can we create tickets for jank when we see it/ add it for hotfixes and like POWr hour have an spankthejank hour for cleaning it up? Doesn't have to be every week. jankparty - pair Sr with a Jr. Wednesday.
QA process:
How do we parallelize testing with a mirror of prod. - Docker QA Tool. How do we ensure that two tickets touching similar parts of code doesn't break on prod because they don't together. - QuASS Aways follow the process. You can do code review and PM approval in parallel. If many bugs, PM needs to be looped in will prioritize the bugs. Batch testing notes, and they can go through PM Approval code review. iteration .#2. Exception is hotfixes.
Show and Tell:
Joe:
These are ongoing issues i see crop up in our Javascript code
default function params and other stuff which isn't supported by IE mutating state directly (causing rendering issues) -> this.state.xyz = "123"; setState to mutate state in methods where it should not be called such as render (can cause render loops) failure to remove listeners in componentWillUnmount (can cause memory leaks for the user) over-reliance on jquery (we want to stomp jquery out of our code as much as possible -- if your'e reaching out of a component and into the dom its usually (not always) a sign of a bad pattern that needs to be re-worked) lots of reliance on global methods and variables (lets start including these) binding this incorrectly (should be using foo => { // method code here } to declare functions (i've been failing at this) the above list is non-exhaustive but super important to start hammering down because lots of time is being spent fixing bugs due to the above issues.
interfacing with this sort of code can be extremely difficult as well which means either rewriting it so that its clear for all developers and fixes bugs (which takes time) or everyone has to hack around it (which also takes time and compounds the issue).
writing correct code takes less time than writing fragile code quickly and shipping it to prod because correct code has to be supported less (by everyone involved, this includes QA, support, engineering and PMs) and can be improved and modified faster, whereas incorrect code breaks and takes time away from all of the previously mentioned team members.
eslint is a really good linter which is completely set up and ready to use with the powr codebase -- you can get it to work with atom and vscode -- it will give you a list of errors and warnings in your console on save -- if you're not seeing those messages then you haven't set your linter up correctly... if you are seeing those messages and you're letting it fly... why? some warnings are fine to ignore at times (such as the magic number warning) but true errors should never be ignored.
you should not use auto-correct with your linter, you should use it as you would use spell check when writing an email (so that you can learn from your mistakes, like spell check or any other auto-correct / hint system -- its AI assistance for developers).
also, its useful to keep your developer toolbar open in chrome during the duration of development as you will be able to see errors and warnings (such as the plethora of ~memory~ React related warnings and errors throughout our site) and this will help you fix these things before launching to prod. (edited)
Follow ups:
Jobs - Ivan posted a list in the channel. Do we need tickets? Should we have a #firesfromlastweek? Puru: check if restart server works when mem issues. MobX show and tell - Praneeta eslint - Joe request for QA - @eng ticket link has passed QA. I have moved it to “Ready To Launch” in the QuASS Sheet. QA updated process - meeting / rewatch recordings. Testing time - automate, ensure we are testing only what needs to be tested. possibly selenium? record and quick test. - should we look into this.
firesfromlastweek:
Databases should be avoided on /view page. If we need to make a call, it should be cached.
Scout is a good tool for this. also has a little chrome extension.
how do we feel this week?
collisions Sharing test servers wario rooms public channels fuck threads qa testing all things nice Jan 17: Agenda:
Praneeta Mhatre:
zendesk tickets >> jira tickets.
praneeta shame - slate in IE and localstorage issues
if (document.querySelector('#js-standalone-loader')){
ReactDOM.render(
, document.querySelector('#js-standalone-loader'));
}
- refresher on outline for new members
Aigul Imadildayeva:
Praneeta summary: components.yml is not responsible loading things in Ruby and on the /view page. We avoid loading simple copies on /view Detail:
guys, regarding SC components.yml not loading automatically correct English version: Praneeta pointed into layouts/application.haml.html file where we are excluding “views” for SC loader, also it will auto load only for JS files, haml files we have to do it manually in an old school way: https://www.powr.io/simple_copies/4759/edit
Thx Praneeta!
- does anyone else has this error in their local terminal, whenever I try to create new plugin, in terminal I see this error:
ActionController::RoutingError (No route matches [POST] “/1113”) => where 1113 is my created plugin’s ID
Show off:
Yerassyl: Tests
https://www.getoutline.com/collections/7fc385cf-78f0-442b-bf87-c2f0e0b26262
Follow ups:
Puru: Did everyone add the cron jobs they are aware of?
Pilar: channel to use to alert support about important updates: we killed #supportupdates, so please put everything in #support (we’ll clean up the spam from automated stuff in there at some point :bowser:)
how do we feel this week?
collisions Sharing test servers wario rooms public channels qa testing all things nice
Jan 10: Agenda:
Zac: Paypal thing
https://www.lucidchart.com/invitations/accept/6a19d734-a7ff-4c2e-9bed-20c85d75c00f
Pilar Sterne:
Communicating/documenting migrations
Card status
Puru Dahal: Followup on list of all the schedulers
Praneeta Mhatre:
Good resources to know about https://docs.google.com/spreadsheets/d/1BBmam35RdQznHXJWYoXNEJeg-ehTY6bAA66EvenzI2E/edit#gid=0 and https://docs.google.com/spreadsheets/d/1EkAR7Tog8l1As3_5KWaozFQ9v1sT8ewftw1AT5z3kMc/edit#gid=0
- ressurecting (Wix UI stage formbuilder) https://i.imgur.com/qft8XiU.png
It’s almost configured and works AF, just has some modal height issues. What’s needed for that?
Brent Gummow :
Jira status: Who moves card to done? (discussion point, not a current question to be answered here 😉 )
- Letting support know about updates - support or supportupdates slack channel?
Sergey Tyan: testing pure JS helper functions using
Jest: https://www.getoutline.com/doc/testing-pure-javascript-helper-functions-TlqJvr5loQ
Show off:
Follow ups:
Wix testing on staging- Puru needs a Jira for this.
QA corner:
how do we feel this week?
collisions Sharing test servers wario rooms public channels all things nice Jan 3: Agenda:
Puru Dahal: List of all the scheduler (possibly on getoutline) with Cron times (so its easier for #support folks and me to know what caused the sidekiq spike, and if its expected or not when #monitor channel is reporting high enqueued list?).
For example:-
PowrMailSaveWorker (Everyday at 9 AM PST) Suggestion: Calendar for schedulers. Support can look at it if monitor is red alert eng. If Job 1 and Job 2 have same time slots, it causes craziness. If db connections are not high, can increase workers(for eng)
Puru will list from heroku scheduler and calendar. Will need estimate from responsible eng for how long the task needs to run.
Praneeta Mhatre: Wix formbuilder reactification and the decisions made.
Show off: Zac's amazing campaign builder demo
Follow ups:
Paypal thing from Zac - Pilar Jira for Zac
Emails testing on staging alpha
Wix testing on staging- Puru needs a Jira for this.
how do we feel this week?
collisions Sharing test servers wario rooms public channels all things nice