44 Matching Annotations
  1. Apr 2024
  2. Jan 2024
    1. The takeaway here is this: we should all learn from early-Google's example. When employees feel truly valued (which is rare!), it creates psychological safety, high morale, productivity, and creativity. Early employees would often encourage each other to "fail fast" as a means to innovation, but that's no longer easy in an environment where failure implies a layoff. If you're someone building a company, challenge yourself to value employees above all else, then watch and be amazed at the ROI.

      sad thing is that most companies don't have this luxury

  3. Dec 2023
    1. there benefits to splitting up a table into multiple tables too. In our case, we wanted to make maintenance easier, so we split our table to locales. This way we can easily give US more capacity as it’s the most heavily used locale. Backups, restores and removals are easier to reason with this way for our use-case.

      well, it's still about the access pattern

  4. Nov 2023
  5. Oct 2023
    1. Soft language is a phrase coined by American comedian George Carlin to describe euphemistic expressions that "conceal reality" and "take the life out of life."

      better be blunt and direct.

      the society nowadays is just too sensitive, too subjective, it tries to not offend anyone, only leaves a more polarised chaos.

    1. 'The TPM owns the ‘when?’ and ‘who?’ questions. The PM owns the ‘why?’ and ‘what?’ The EM and the engineering team own the ‘how?’ This is the shortest elevator pitch I have.
  6. Sep 2023
  7. Aug 2023
    1. Maybe you should just do it, so that you know what’s on the other side of that decision. So that your life is larger. More informed. So that you have the experience. So that you know. And so that other people — the people you like, the people you love, or just the people you want to attract or know better — can benefit from the thing you were afraid to give them.

      when I look back, I should have done a lot things differently, should have been bolder, even reckless. consider the risk and return, most of the time it's worth doing it.

    1. aws infra changes also emit events with payload, we can catch and enrich these events to make decisions in downstream services

    1. Mike Kail, CTO and cofounder at CYBRIC: “Let’s say an application environment is your old-school lunchbox. The contents of the lunchbox were all assembled well before putting them into the lunchbox [but] there was no isolation between any of those contents. The Kubernetes system provides a lunchbox that allows for just-in-time expansion of the contents (scaling) and full isolation between every unique item in the lunchbox and the ability to remove any item without affecting any of the other contents (immutability).”
  8. Jun 2023
    1. In office jobs, by contrast, productivity remains rooted in notions of busyness and multi-faceted activity. The most productive knowledge workers are those who stay on top of their inboxes and somehow juggle the dozens of obligations, from the small tasks to major projects, hurled in their direction every week. Movie-making is of course different than, say, being a marketing executive, or professor, or project manager, but creating things that are too good to be ignored, regardless of the setting, is an activity that almost without exception requires undivided attention.

      undivided attention

      we need focus time to produce quality

  9. May 2023
    1. visually pleasing explanation of the load balancing

  10. Mar 2023
    1. In real terms, the specific design for the push notifications service, not only solved our scaling issues, but also helped us in cutting our costs by almost half.


    1. But it's not for them. It's for managers and stakeholders who have to report progress and who are responsible for budgets.

      does that mean the ones got managed by this have to suffer?

  11. Sep 2022
  12. Aug 2022
    1. Be kind to your future self — keep it simple.

      it applies to anything, simplicity always win over cleverness

    1. With one-to-many relationships, there’s one core problem: how do I fetch information about the parent entity when retrieving one or more of the related entities?

      pre join

    1. What we should aim for instead is Integration Tests, which verify the correctness of our service in a more isolated fashion while focusing on the interaction points and making them very explicit.

      Interface, it's always interface

  13. Jul 2022
    1. We prioritize customer issues based on the RICE framework (reach, impact, confidence, and effort), plan on semester boundaries (Q2/Q3 and Q4/Q1), craft objectives that align with our overall org strategy, and incorporate the work that “keeps the lights on” (KTLO).
    2. During quarterly planning, each team within the engineering organization prepares a list of the top initiatives that will contribute to their OKRs. These could range from improving the onboarding experience for new users to introducing Reddit in new languages. We also use a continuous ideation process to build a robust project backlog, which is then prioritized via an idea review process. Our leads team reviews new ideas on a weekly basis, estimating them using T-shirt sizes (S, M, L, XL) to allow for ROI assessment. Our ROI formula is: ROI = confidence * (expected benefit / engineering cost).

      Team as an unit Plan around okr

    3. Before we begin any project, we seek input from internal and external stakeholders to understand their needs. From there, we propose features based on a scale of “critical” to “nice to have.” We address any questions regarding product vision and engineering feasibility to ensure projects align with our objectives, time requirements, and resourcing options. 

      Get align on needs

    4. Our top priority is team optimization. Before assigning teams to a project, we consider the scope of the solution and the right mix of team members to work on it. We factor in tenure and experience, opportunities for growth, and bandwidth to ensure the team has a healthy balance of projects, including working on tech debt. We also establish a buffer for rest and recovery, making sure team members have an “offsprint” day in the sprint and several offsprint weeks throughout the year.

      Find the right mix of team members Offspring, what does a developer do during this phase?

    1. Quite insightful article about the software engineering soft skills

    2. Flexibility Defend your opinions stridently but also review them every time you have new evidence that contradicts them.

      you have to stand your ground, with solid evidence, there's nothing about you, it's only about what is correct / better, once your idea / opinion is proven wrong with strong evidence, there's no shame to own it and learn the better approach.

    3. Information sharing Use meetings and Q&A sessions to ask the right questions, exchange knowledge and inform the team.

      create the environment to ask and share, encourage others to ask, there's no stupid questions.

    4. Acceptance and respect Admit when you don't know something and be open to asking for help, even from juniors.

      juniors are just in this line of work shorter, not that they don't know anything, most likely they know better than you in certain areas, be humble and learn from everyone.

    5. Customized communication Use language, concepts, and levels of detail relevant to your audience.

      even the very same content, you can deliver differently, depends on your audience, offer right amount of detail to help other understand instead of confusing them

    6. Deep modules Write code that solves complex problems for other developers but exposes functionality through a lucid interface.

      this resonates a lot, also matches what I read in the book <philosophy of software design>, a package / module should be deep, so that it offers something that can really help

    1. optimizing packaging size will improve cold start performance. - use aws sdk v3 - bundle and minify code - avoid top-level import

    2. you can also see a significant cold start performance improvement. You can load test the Lambda functions using Artillery

      load test lambda

    1. 28:00 长吸气短呼气 让心脏加速 短吸气长呼气 让心脏减速

    1. The greenhouse tree solution can be combined with iron fertilization of the ocean. Putting a hundred tons of iron filings into the ocean will generate an algae bloom. The algae bloom can feed fish and then take a few to many million tons of CO2 to the bottom of the ocean.

      algal bloom 水华 让水变色的水藻 自然生成的会很快被鱼类食用

    1. on how to negotiate raise

      give your manager a good reason and prepare ammunition for them to use in talks with other departments

  14. Jun 2022
    1. I was splitting my train/test sets randomly and that this was not ideal and that I should take the recent issue data as my test set.


    2. Implementing the code I need for a project is a lot easier when I have a big-picture idea of what features are required. That’s why I love doing the “solve it on paper first” exercise when I’m starting. The drawn diagrams don’t just help me think about what I need; they also make for great documentation pieces, especially when working with a remote team.


    3. I verified some important project properties. There was a valid business case to explore.

      注意开始项目的时候,思考做这个项目是不是有意义也是很重要的一环。练习技术总是有趣,但是更重要的是要有business case才好。

    1. 除了jeremy提到的用conditional expression进行控制以外,用IAM控制也是一个有趣的想法,不过这就要涉及到不同的operation用不同的IAM role或者policy,程序的复杂度会大幅提升,是需要考虑的因素。

    2. It’s generally preferred to use separate attributes for your GSIs, but if you wanted to map secondary indexes directly to your input data, this method would prevent you from doing so as GSIs must map to root attributes. In addition, you can’t project nested attributes in a map to other GSIs. You would either need to project the entire map attribute, or copy the relevant data to root attributes.

      数据结构设计的时候,可以考虑attribute isolation,不过dynamodb就有其限制,不能用map结构里的数据做index。这点来说mongodb确实更灵活。