Skip to content

Instantly share code, notes, and snippets.

@Rubix982
Created April 24, 2021 14:53
Show Gist options
  • Select an option

  • Save Rubix982/51080d027ef46d348f060792e59de7bb to your computer and use it in GitHub Desktop.

Select an option

Save Rubix982/51080d027ef46d348f060792e59de7bb to your computer and use it in GitHub Desktop.
SE Assignment # 2 Notes
  • Data Storage System
  • Document Database, using one such as DynamoDB
    • In order to optimize the record
    • SQL systems guarantee ACID
    • Document databases are eventually
    • Python, but not always C/C++ when writing a DB engine
  • Requirement Gathering
    • It depends
    • There are product based companies
    • There are consulting based companies
      • More defined processes
      • No scrum master
      • Vision statements - why does the customer want something?
        • Henry Ford has a cliched quote, "why do you build cars?"
        • Engineering practices
      • The architecture depends on the project
        • If it's a project
        • If it's an MVP
        • If it's a LTS based software
        • More inclined towards .NET technologies
        • Scope of the project
      • No defined role for an architect
      • There should be a technical lead who can pitch in during conflicts
      • Documentation
    • Team size depends, but mostly in 2-3 people. But in consulting companies, it's 3-4 people. Industry standard is to have 3-8 people.
    • Tools for team management is Confluence, Data Dog, tools for monitoring Micro-services, such as Prometheus with K8s
    • Startups have this problem of not having much time for documentation
    • When it comes to model training, you need certain clean data models and centralized place where you are storing your intermediate features
      • How do you optimize it?
    • When it comes to monitoring,
      • Monitoring has two aspects,
        • If some end points go down, it should generate an alert
          • On rotation, people have on call duties
          • Usually, someone has on call, they have to be available when they receive the call
          • They go and see what the problem is
    • People are not replaceable
      • The idea is to have the idea of investing in people, their ideas and propagating their growth, and not thinking about replacing them like cogs in a machine
    • Some people like coding more, and they keep posting new things and topics
    • Generalists vs specialists
    • Testing
      • First, Unit Tests
      • Second, Integration Tests
      • Third, End To End Tests
      • QA testing in a staging environment
      • A/B Testing
      • Front-end needs to be tested as well
      • End to end tests which run as the front-end, which is basically a set of procedures for the steps in some process, such as the login part
      • Open vulnerabilities. It's not as secure as it can be.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment