0% found this document useful (0 votes)
252 views10 pages

Tech 101 For PMs HelloPM 1640879694

This document provides a summary of various tech topics including: 1) How the internet works and differences between SSR and CSR 2) Examples of common tech stacks and considerations when choosing stacks 3) Benefits and drawbacks of APIs and how to build one using common HTTP functions

Uploaded by

Ali Abidi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
252 views10 pages

Tech 101 For PMs HelloPM 1640879694

This document provides a summary of various tech topics including: 1) How the internet works and differences between SSR and CSR 2) Examples of common tech stacks and considerations when choosing stacks 3) Benefits and drawbacks of APIs and how to build one using common HTTP functions

Uploaded by

Ali Abidi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

HelloPM - Tech 101 Summary

1. Technology and the internet - why and how internet works, SSR vs CSR
2. Tech Stacks - examples of companies stacks, elements for frontend & backend and its
examples, things to consider
3. API & WebHooks - (+)ve / (-)ve of API, 4 key HTTP functions, building an API
4. Basic SQL - foreign vs primary key, few queries formulas, database scaling
5. Teamwork - frontend vs backend
6. System Design - HLD / LLD, cache, database sharding, CDN
7. Cloud & AWS - basic understanding
8. Working with the engineers - github, scrum & sprint, tips for working with multiple teams

1. Technology and the internet - why and how internet


works, SSR vs CSR
Basic understanding of the technology help PM to understand product's inside
out, better communication with all teams and foresee new ways to improve
experience

The internet works when clients sending a request to DNS (Domain Name
Server) which serves as an "address book" that translates the readable domain
into an IP address. This address helps to identify and locate a specific server.
Upon receiving the request, the server then send back the requested data
towards the clients networks through DNS where the data is then presented /
painted on the client end.

How domain works:


Linkedin.com/in/ankit
^domain ^subdirect

Server Side Rendering (SSR) = an application's ability to convert HTML files on


the server into a fully rendered HTML page for the client.
In other words, data is assembled within server then presented to the client side.

It is expensive and resource-intensive

Client Side Rendering (CSR) = allows developers to make their websites entirely
rendered in the browser with JavaScript. Instead of having a different HTML
page per route, a CSR website creates each route dynamically directly in the
browser
In other words, client have to DIY / assemble the data themselves.

HelloPM - Tech 101 Summary 1


May increase the load time of a page

May cause incoherent user experience in different platform (website,


android, etc.)

2. Tech Stacks - examples of companies stacks,


elements for frontend & backend and its examples,
things to consider
Techstack is the stack / the compilation of different types of programmes ,
languages, frameworks used to make an application
Framework is premade / opensource libraries of code that can be used to speed
up app creating

Elements for frontend:

HTML, which is responsible for displaying content in the browser;

CSS styles the content;

Javascript is responsible for the interactive and functional part of the web
application.

Elements for backend:

a backend programming language like Java or C#;

frameworks like Spring or .NET;

a database like PostgreSQL or MongoDB;

a server like Apache or Nginx, or choose a serverless architecture.

Example of tech stacks:

Netflix Facebook

Programming languages: Programming languages:


JavaScript (front-end), JavaScript (front-end),
Java, Python (back-end), LAMP stack (back-end),
Swift / Kotlin for iOS / Swift / Java for iOS /
Android; Android, C #;

Frameworks and Libraries: Database: MySQL, Hadoop,


React, Node.js, WinJS; Cassandra;

Web server: Apache;

HelloPM - Tech 101 Summary 2


Databases: MySQL, Frameworks: React, React
Cassandra, Oracle, Native (for hybrid apps),
Amazon EC2 (cloud Relay;
services);
Utilities: Framer, Bitbar,
DevOps: Jenkins, Gradle, Origami;
GitHub, AWS Cloud Trail,
DevOps: Jenkins, Datadog,
etc.
Jest, Infer.
Auxiliary Communications:
Amazon SES, Urban
Airship.

Factors to consider for technology stacks

Application size - complexity grows with the size of the project.

Small web application - 10 pages websites, portfolios websites

Medium - online shopping, financial applications

Large - On-demand marketplaces, social media

Development time - if shorter = lesser complexity is preferred

Safety

Cost - hiring developers, account maintenance, server costs

Scalability and support

3. API & WebHooks - (+)ve / (-)ve of API, 4 key HTTP


functions, building an API
API acts as the interface between two applications and facilitates information
transfer while ensuring speed and security

Public API is an open-source API for use external to a company.


Private API is developed for internal use for developers/applications with specific
access

Webhook is a "reverse" API. Webhooks trigger the data transfer based on an


event (such as a payment being received, an update to a user’s feed, etc.) which
can be really beneficial to automatically trigger a downstream set of events.

HelloPM - Tech 101 Summary 3


The +ve of API

It can provide a well-integrated and simple experience for the user

If you leverage other APIs, you can focus on building features that address
the core need for your product, while maintaining a simple and complete flow
for the user

It can reduce the effort to implement specific features

Added functionality

Reduce time to ship

The -ve of API

Some cost money (based on the volume of requests you’re making)

You create a dependency on another system — if the other system changes


their API call, you have to make changes on your end to ensure your user
experience isn’t interrupted

Cost benefit analysis

Check how much dependency needed --> 2nd option is needed to


prevent unnecessary dependency

REST (Representational State Transfer) is the most common type of API


whereby it uses HTTP functions to make / receive requests in JSON files. The
data being return / take is flexible and have a low bandwidth.
4 key HTTP functions:

POST = performing create

GET = read

PUT = update

DELETE = delete functions

SOAP (Simple Object Access Protocol) — this is an actual protocol. SOAP


APIs generally use HTTP and XML. These APIs are often heavier in terms of
bandwidth and payload.

Building an API

Pre-implementation --> validate on the user need, identify key value that
drive our business (eg. revenue / conversion rate), align with organizational

HelloPM - Tech 101 Summary 4


goals, ensure that business is ready to support the cost of building and
maintaining infrastructure

Implementation --> Breakdown user stories for the API and UI, Create
acceptance criteria

4. Basic SQL - foreign vs primary key, few queries


formulas, database scaling
SQL a computer language that is designed to retrieve and manage data in a
relational database. It organizes the data into -> eg. Users = User ID, Name,
Handle, Created_at
NoSQL approach uses Json / document which is hard to join datasets but
automatically scales

+ ve of SQL = easier to join tables and do complex queries


- ve of SQL = its not automatically scalable

Foreign key = the column that connect between 1 table to the other table

Primary key = attributes / a value that uniquely identifying a record / table.


Usually in form of a single attribute of unique ID. Eg. User_ID

SELECT = retrieve data


FROM = identifying specific columns in a table
WHERE = filtering specific data for a speciic columns
DESC = sorting data in descending order
ASC = sorting data in ascending order
LIMIT = limit the number of rows / data retrieved

There are two ways of scaling up your database:

1. Horizontal scaling means adding more machines to the resource pool

Suitable for bigger system

2. Vertical scaling- adding / upgrade the resources

Suitable for a small / starting system

Limitations in the upgrade (Eg. the capacity of RAM now is impossible to


upgrade to 1TB)

5. Teamwork - frontend vs backend

HelloPM - Tech 101 Summary 5


Frontend = whatever happens on client end.
Backend = whatever happen on server. Usually uses  Java, Ruby, Scalar & Go
programming language. They help to create response, which also mean they
need to:

Understand request

Create algorithm (business logic)

Responsibilities of FE & BE

Front end
1. Create request
2. Send request
7. Receive response
8. Present response

This means, look for :


- FE, when presentation seems buggy
- BE, when logic seems buggy & data is incorrect
- Client team, when third-party analytics tools getting buggy data

6. System Design - HLD / LLD, cache, database


sharding, CDN
High Level Design (HLD) - the general / overall system design and how major
components are interacting with each ohter. It consists of description of system
architecture, data base design, brief description on systems, services, platforms
and relationship among modules
Low Level Design (LLD) - the detailing HLD / component-level design process. It
includes actual logic for every system component and it goes deep into each
modules specification

Cache is a hardware or software component that stores data so that future


requests for that data can be served faster; the data stored in a cache might be
the result of an earlier computation or a copy of data stored elsewhere.

Cache is mostly used for:


- most resources extensive actions
- frequently used resources

HelloPM - Tech 101 Summary 6


Sharding is breaking down the database into its constituent paths / to smaller
database. The smaller database also helped to minimize the latency period. By
sharding our database, it creates an infinitely scalable system

Content Delivery / Distribution Network (CDN) - is a geographically distributed


network of proxy servers and their data centers. The goal is to provide high
availability and performance by distributing the service spatially relative to end
users.

When the origin server of an app is far from the users location, usually there is a
replica of files / database in the local location of users to help reduce latency

7. Cloud & AWS - basic understanding


Cloud is an on demand computing services - servers, databases, storage,
softwares, analytics, etc

One of the biggest provider for cloud services is AWS. They provides:

EC2: Elastic Cloud Compute.

RDS: Relational Database Service: Manage, Update, Secure, Analytics

S3: Simple Storage Service

CloudFront: Content Delivery Network

AWS Beanstalk: Orchestrate the web development

SES: Simple Email Service

HelloPM - Tech 101 Summary 7


IAM: Control access to AWS

8. Working with the engineers - github, scrum &


sprint, tips for working with multiple teams
Github is a command line tool, used by developers, to push, pull and modify
code in a location known as a repository. It is also a social place; engineers
communicate with each other, work together on open source projects and add
value to the network by producing more content (in this case code).

Basic understanding of GitHub help you to understand the release processes


taken by your engineering. You also able to understanding the team's branching
set up which help you to empathise when things go wrong or when there are
conflicts with merging. Identify whether there's a need for specialised DevOps to
optimising developer workflows and to ensure issues with merges and bugs on
production get dealt with quickly and efficiently.

Terminologies in GIT:

1. Branch - Snapshot of a repository


2. Commit - Save changes

3. Pull - Getting update version from remote repository

4. Push - Upload local repository to remote

5. Merge - Combine branches into repository


6. Pull/Merge Request - Requesting main repository to merge your branch

Branching in a nutshell:

HelloPM - Tech 101 Summary 8


How scrum and sprint looks like:

There are 3 defined roles:

1. Scrum master - responsible for ensuring the rules of Scrum are followed.

2. Product owner - prioritizing the backlog of work (split into what’s called
“user stories”), as well as representing the end user and other
stakeholders.

3. Development team

Scrum in practice (simplified)

HelloPM - Tech 101 Summary 9


Stakeholders: We’d like you to ship A, B and C.

Product owner: Based on the value they will provide to our users, I
have decided to rank the priority of these items in the backlog as C, B,
then A.

Development team: Last sprint, we completed 15 story points. We


estimate C is 10 story points, B is 5, and A is 3. So we commit to
delivering C and B by the end of this sprint, two weeks from now.

Tips for working with a team:

Build rapport with team through:

Informal interactions

Formal interviews

Regular checkpoints

Learn to listen and understand what are the needs for every stakeholders -->
what drives the team, what they love / hate. Understand that the same team
in different companies have different needs

Context matters. Here's different type of context that you can provide:

Business context - industry trends, business priorities, revenue and


costs, competitive landscape.

Customer context - pains, personas, promoters and detractors,


customer goals and roadmaps.

Product context - how this feature impacts the rest of the product
portfolio, why particular decisions were made in the past, principles for
making future decisions, upcoming work, and why that work matters.

PM is responsible for the what and why, not how.


Give teams problems to solve and not plain solutions, this allows them to
showcase their expertise and a sense of ownership which likely giving a
more committed team

HelloPM - Tech 101 Summary 10

You might also like