{"id":15540460,"url":"https://github.com/poteto/e4e-2015","last_synced_at":"2026-01-25T11:02:16.682Z","repository":{"id":148476682,"uuid":"42723504","full_name":"poteto/e4e-2015","owner":"poteto","description":"Notes from the engineers4engineers conference","archived":false,"fork":false,"pushed_at":"2015-09-18T19:52:21.000Z","size":124,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-19T09:49:20.584Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.engineers4engineers.org/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/poteto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-18T13:20:58.000Z","updated_at":"2024-06-12T16:12:21.000Z","dependencies_parsed_at":"2023-04-07T21:46:49.213Z","dependency_job_id":null,"html_url":"https://github.com/poteto/e4e-2015","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/poteto/e4e-2015","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poteto%2Fe4e-2015","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poteto%2Fe4e-2015/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poteto%2Fe4e-2015/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poteto%2Fe4e-2015/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/poteto","download_url":"https://codeload.github.com/poteto/e4e-2015/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poteto%2Fe4e-2015/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28752369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T12:13:49.057Z","updated_at":"2026-01-25T11:02:16.635Z","avatar_url":"https://github.com/poteto.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"## Keynote - Better Work Through Better Feedback\nKeavy McMinn @keavy\n\n### Asking for feedback\n- What exactly do you want feedback on? Be explicit.\n- When do you want feedback? Is your PR WIP (are you on the right direction?) or ready for review?\n- Who do you want feedback from? Whose knowledge, expertise and point of view would you like?\n\n### Giving feedback\n\nWhen commenting on PRs, and giving feedback in general:\n\n- Wait a few minutes, especially if you disagree\n- Ask, don't tell (critique, not criticize)\n- Be humble\n- Explain reasons for changes to give context\n- Use positive language over neutral, as it can be seen as negative\n- Use emojis!!!\n- Disapproval Matrix - Ann Friedman\n  \n  ![](http://i.imgur.com/4GWln11.jpg)\n- Empathize \n\n## Functional JavaScript\nBen Anderson @ben_anderson\n\n### The future has to be functional\n- DOM is stateful \u0026 imperative\n- UI layer should be pure – same output for a given input\n- Immutable.js provides immutable collections for JS\n- Immutable.record as an immutable model for your domain instead\n- Services and queries take data and transform it, without mutating the original data\n- Your app is a pipeline that processes data, and should be deterministic\n- Redux is predictable and behaves consistently, and has a time traveling debugger (!)\n\n## How to Study Design Patterns\nColin Williams, TripAdvisor\n\n- It is not studying design patterns by thinking all you have to do is learn the pattern\n- Every decision made in a design pattern is the best choice (for that situation), so it is important to know the reason why that pattern is the best for the problem\n- Design patterns are always best on a local scale, but can sometimes be the worst in relation to the surrounding code\n\n### Observer Pattern\n- Should the Subject be able to serialize and send its state to its Observers? Depends on the broader context, for example, in a micro-service architecture.\n\n### Mediator Pattern\n- The Observer Pattern can lead to deep complexity, when Subjects can also be Observers themselves\n- The Mediator Pattern takes the logic that is generalized, and consolidates them into one place so that they can interop. \n\n## Automate Your Site's Front-End Performance\nKitt Hodsden @kitt\n\n[Slides](https://kitt.hodsden.org/_/e4e2015-khodsden-automate-front-end-performance.pdf)\n\nPerformance is everyone's problem.\n\n1. Determine key metrics\n1. Establish a baseline\n1. Make a change\n1. Measure effects\n\nCheck out https://lafikl.github.io/perfBar/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoteto%2Fe4e-2015","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpoteto%2Fe4e-2015","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoteto%2Fe4e-2015/lists"}