How do companies ship code to production?
The diagram below illustrates the typical workflow.
Step 1: The process starts with a product owner creating user stories based on requirements.
Step 2: The dev team picks up the user stories from the backlog and puts them into a sprint for a two-week dev cycle.
Step 3: The developers commit source code into the code repository Git.
Step 4: A build is triggered in Jenkins. The source code must pass unit tests, code coverage threshold, and gates in SonarQube.
Step 5: Once the build is successful, the build is stored in artifactory. Then the build is deployed into the dev environment.
Step 6: There might be multiple dev teams working on different features. The features need to be tested independently, so they are deployed to QA1 and QA2.
Step 7: The QA team picks up the new QA environments and performs QA testing, regression testing, and performance testing.
Steps 8: Once the QA builds pass the QA team’s verification, they are deployed to the UAT environment.
Step 9: If the UAT testing is successful, the builds become release candidates and will be deployed to the production environment on schedule.
Step 10: SRE (Site Reliability Engineering) team is responsible for prod monitoring.
--
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/uc5M7CdXXC
The best way to learn to build software, is to build real software.
But often it’s hard to know what to build, so we end up spending time looking for ideas instead of building and learning.
To help with that, I’ve been sharing a list of project ideas complete with steps to work through in my Coding Challenges newsletter.
Here are some of the past challenges:
⇢ Build your own Redis server - https://t.co/qSmNG5VdjD
⇢ Build your own QR Code Generator - https://t.co/t9RAYWejXt
⇢ Build your own crontab tool - https://t.co/RnTFTmyG7t
⇢ Build your own Lisp interpreter - https://t.co/jOb6FtwMUv
⇢ Build your own URL shortener - https://t.co/9jLCDoGtKo
⇢ Build your own Application Load Balancer - https://t.co/ntdbEuQInr
⇢ Build your own DNS Resolver - https://t.co/FDpQEUPnyG
⇢ Build your own Git Client - https://t.co/XNEz7faqSA
⇢ Build your own Scheduling App - https://t.co/MRmLdS9ZNX
⇢ Build your own Rate Limiter - https://t.co/uDpZtoo1CL
⇢ Build your own Message Broker - https://t.co/U0EZV9NWV8
⇢ Build your own Web Server - https://t.co/qyUUR9fNFT
⇢ Build your own Memcached server - https://t.co/J1ekgCw9aR
⇢ Build your own IRC client - https://t.co/PPcbpfGd90
⇢ Build your own Discord Bot - https://t.co/LSlDb8uezV
⇢ Build your own compression tool using Huffman encoding - https://t.co/ZzKcZBOj06
⇢ Build your own Spotify client - https://t.co/w8vFd35ZjZ
⇢ Build your own JSON parser - https://t.co/9W89VvKjem
People are solving the challenges in JavaScript/TypeScript, Rust, Clojure, Ruby, Python, C, C#, C++, Java, Go and Dart.
If you fancy giving them a go, you can click on any of the links above or to get future challenges sent directly to you, you can subscribe to the Coding Challenges newsletter here: https://t.co/KpYrmkmXca
Tomorrow I'll be publishing the next challenge, Build your own Tetris
Wow... this guy's made $2.1M selling TWO Notion templates:
- Started from brand new channel
- 8.7M total YT views
- 49 videos
- $120K/mo
- Makes ~$0.24/view (crazy)
- Sold $88K with only 3,000 email subs
- Gives away 99% of content FREE
- Cost: $0 to create
- Create once, sell forever
- HUGE opportunity: this can be done with Excel, Airtable, Canva, Framer, Etsy, Carrd, Figma, Email, Wordpress, etc
https://t.co/b50kV1YQay
I love hyper-niche businesses built on SEO:
- Revenue: $30K/mo
- Product: lab-grown bling (hip hop jewelry)
- Pure SEO play
- Just 123 blog posts
- 0 to 10k views/month in first 8 months
- 1,000+ views from just 7 keywords
- Making ~$3/visitor (WOW)
- Margin: ~50%
- Built by 2 students in Estonia
- Proof that SEO is still KING 👑
https://t.co/TVYVvJwTcv
What are the differences between cookies and sessions?
The diagram below shows how they work.
Cookies and sessions are both used to carry user information over HTTP requests, including user login status, user permissions, etc.
🔹 Cookies
Cookies typically have size limits (4KB). They carry small pieces of information and are stored on the users’ devices. Cookies are sent with each subsequent user request. Users can choose to ban cookies in their browsers.
🔹 Sessions
Unlike cookies, sessions are created and stored on the server side. There is usually a unique session ID generated on the server, which is attached to a specific user session. This session ID is returned to the client side in a cookie. Sessions can hold larger amounts of data. Since the session data is not directly accessed by the client, the session offers more security.
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/uc5M7CdXXC
Explaining 8 Popular Network Protocols in 1 Diagram.
You can find the link to watch a detailed video explanation at the end of the post.
Network protocols are standard methods of transferring data between two computers in a network.
1. HTTP (HyperText Transfer Protocol)
HTTP is a protocol for fetching resources such as HTML documents. It is the foundation of any data exchange on the Web and it is a client-server protocol.
2. HTTP/3
HTTP/3 is the next major revision of the HTTP. It runs on QUIC, a new transport protocol designed for mobile-heavy internet usage. It relies on UDP instead of TCP, which enables faster web page responsiveness. VR applications demand more bandwidth to render intricate details of a virtual scene and will likely benefit from migrating to HTTP/3 powered by QUIC.
3. HTTPS (HyperText Transfer Protocol Secure)
HTTPS extends HTTP and uses encryption for secure communications.
4. WebSocket
WebSocket is a protocol that provides full-duplex communications over TCP. Clients establish WebSockets to receive real-time updates from the back-end services. Unlike REST, which always “pulls” data, WebSocket enables data to be “pushed”. Applications, like online gaming, stock trading, and messaging apps leverage WebSocket for real-time communication.
5. TCP (Transmission Control Protocol)
TCP is designed to send packets across the internet and ensure the successful delivery of data and messages over networks. Many application-layer protocols are built on top of TCP.
6. UDP (User Datagram Protocol)
UDP sends packets directly to a target computer, without establishing a connection first. UDP is commonly used in time-sensitive communications where occasionally dropping packets is better than waiting. Voice and video traffic are often sent using this protocol.
7. SMTP (Simple Mail Transfer Protocol)
SMTP is a standard protocol to transfer electronic mail from one user to another.
8. FTP (File Transfer Protocol)
FTP is used to transfer computer files between client and server. It has separate connections for the control channel and data channel.
–
Watch and subscribe here (YouTube video): https://t.co/HGLkRkIdoh
Xiaomi applies for a sales license for their first... car?
Honestly I'm impressed that it isn't ugly. It's an electric sedan with dual motors, optional LIDAR and an active rear wing. And of course there are 3 versions: SU7, SU7 Pro, and SU7 Max 😭
https://t.co/myz8H99f5K
How To Release A Mobile App
The mobile app release process differs from conventional methods. This illustration simplifies the journey to help you understand.
Typical Stages in a Mobile App Release Process:
1. Registration & Development (iOS & Android):
- Enroll in Apple's Developer Program and Google Play Console as iOS and Android developer
- Code using platform-specific tools: Swift/Obj-C for iOS, and Java/Kotlin for Android
2. Build & Test (iOS & Android):
Compile the app's binary, run extensive tests on both platforms to ensure functionality and performance. Create a release candidate build.
3. QA:
- Internally test the app for issue identification (dogfooding)
- Beta test with external users to collect feedback
- Conduct regression testing to maintain feature stability
4. Internal Approvals:
- Obtain approval from stakeholders and key team members.
- Comply with app store guidelines and industry regulations
- Obtain security approvals to safeguard user data and privacy
5. App Store Optimization (ASO):
- Optimize metadata, including titles, descriptions, and keywords, for better search visibility
- Design captivating screenshots and icons to entice users
- Prepare engaging release notes to inform users about new features and updates
6. App Submission To Store:
- Submit the iOS app via App Store Connect following Apple's guidelines
- Submit the Android app via Google Play Console, adhering to Google's policies
- Both platforms may request issues resolution for approval
7. Release:
- Upon approval, set a release date to coordinate the launch on both iOS and Android platforms
Over to you:
What's the most challenging phase you've encountered in the mobile app release process?
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/uc5M7CdXXC
Explaining 9 types of API testing. Next week's topic will be listed at the end.
🔹 Smoke Testing
This is done after API development is complete. Simply validate if the APIs are working and nothing breaks.
🔹 Functional Testing
This creates a test plan based on the functional requirements and compares the results with the expected results.
🔹 Integration Testing
This test combines several API calls to perform end-to-end tests. The intra-service communications and data transmissions are tested.
🔹 Regression Testing
This test ensures that bug fixes or new features shouldn’t break the existing behaviors of APIs.
🔹 Load Testing
This tests applications’ performance by simulating different loads. Then we can calculate the capacity of the application.
🔹 Stress Testing
We deliberately create high loads to the APIs and test if the APIs are able to function normally.
🔹 Security Testing
This tests the APIs against all possible external threats.
🔹 UI Testing
This tests the UI interactions with the APIs to make sure the data can be displayed properly.
🔹 Fuzz Testing
This injects invalid or unexpected input data into the API and tries to crash the API. In this way, it identifies the API vulnerabilities.
Next week, we will talk about:
- Our recommended materials for cracking your next technical interview (YouTube)
- How mobile releases work
- 12 Tips for API security
- What can go wrong with Caching
- Log parsing tips
Subscribe to our weekly newsletter so you won't miss it: https://t.co/uc5M7CdXXC
Best ways to test system functionality
Testing system functionality is a crucial step in software development and engineering processes.
It ensures that a system or software application performs as expected, meets user requirements, and operates reliably.
Here we delve into the best ways:
1. Unit Testing: Ensures individual code components work correctly in isolation.
2. Integration Testing: Verifies that different system parts function seamlessly together.
3. System Testing: Assesses the entire system's compliance with user requirements and performance.
4. Load Testing: Tests a system's ability to handle high workloads and identifies performance issues.
5. Error Testing: Evaluates how the software handles invalid inputs and error conditions.
6. Test Automation: Automates test case execution for efficiency, repeatability, and error reduction.
Over to you: How do you approach testing system functionality in your software development or engineering projects?
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/uc5M7CdXXC
Eliud Kipchoge’s 1:59:40 marathon run is truly insane when you break down the numbers:
▫️4:35 per mile pace (the record for one mile is 3:43 and he kept the pace 26x)
▫️OR 2:50 per KM pace (he did it 42x and each kilometre was within 2:48 to 2:52)
▫️The average men’s marathon time for 5km is ~30 mins (Kipchoge’s 5km pace was 14:13 mins, which he did ~8x)
▫️The world record 10km run is 26:11 (Kipchoge’s 5km pace was 28:26 which he did ~4x)
▫️His 100m pace was 17 seconds, which he did 422x
▫️The 21km per hour pace (or 13 miles per hour) isn’t even available on some treadmills
The sub-2 hour run — which was staged in Vienna in 2019 — is unreal but doesn’t count for marathon record purposes.
Why? Because the event was optimized for Kipchoge: coaches brought him water and he had pacemakers (including a car laying down a laser beam).
The human pacemakers might be my favourite part. They were 41 of the world’s top runners with >50 combined medals at Olympics and World Championships. All knew Kipchoge was the GOAT and chipped in.
Kipchoge’s pace was so punishing that the pacemakers swapped in and out at 5-minute intervals.
The best part — shown below — is when Kipchoge waves them off at the end and they cheer him on as he goes HAM to the finish line.
Harvard university is offering FREE world class education in Data Science!
Courses cover:
- Python
- Data Visualization
- Probability
- Statistics
- Machine Learning
- Data Science: Capstone
A project-based pedagogy that allows you to learn while building! 🚀
Read more!👇