

Hello friends!
Welcome to this week’s Sloth Bytes. I hope you had a weird week 😏
I messed up somethings, so if you see this again… whoops.

Let go of the clutter, distractions, and stress with Atono.
Atono is an all-in-one platform designed to help cross-functional teams build better software together.
Do more, juggle less: Bring roadmapping, story writing, feature flagging, bug reporting, and usage tracking together in one place.
A clean, focused experience: Minimalist UI with in-context tools ensuring everything is where you need it, when you need it. User stories at the center: Stories are first-class objects in Atono that highlight customer value, set clear goals, and keep your team aligned.
Early adopters can get six months free on Atono’s Business plan for up to 25 users when they sign up for a monthly plan using the code LessStressM25.

CI/CD For Dummies

CI/CD is a very useful set of practices for projects with multiple contributors or frequent releases. It won’t magically prevent anyone from breaking production, but it can automate checks, make releases repeatable, and catch a lot of mistakes before users do.
What is CI/CD?
CI/CD stands for:
Continuous Integration (CI)
Continuous Delivery/Deployment (CD)
Together, CI/CD describes practices for integrating code frequently and automating the path from a code change to a releasable—or automatically released—version of your application.
Think of it like this:
Instead of manually repeating every build, test, package, and release step, you encode those steps in a pipeline. Humans still decide what checks matter, review failures, manage secrets, and choose how much of deployment should be automatic.
You write code → you push or open a pull request → a pipeline starts → it runs configured checks → if they pass, it can build an artifact and optionally promote or deploy it.
CI/CD does the boring stuff, while you go back to being a code monkey.
🧠 CI (Continuous Integration)
The CI portion is about integrating changes frequently and getting fast automated feedback when code is pushed or proposed for merging.
Usually the process does these actions:
Installs dependencies in a clean environment
Runs automated checks such as formatting, linting, type checking, unit tests, integration tests, and security scans as appropriate
Builds the application or deployable artifact
Reports failures before a change is merged when branch protection requires those checks
🚀 CD (Continuous Delivery/Deployment)
The CD part has two related meanings that people often mash together:
Continuous delivery: every passing change is kept in a deployable state, but releasing to production may still require a human approval or promotion step.
Continuous deployment: passing changes are automatically released to production without a manual release decision.
Usually it does this:
Packages a versioned artifact such as a Docker image or application bundle
Deploys to test, staging, or production environments according to the release policy
Uses environment-specific configuration and secrets without committing credentials to the repository
Runs smoke tests, health checks, or other post-deploy verification
Can use approvals, protected environments, gradual rollouts, and rollback procedures to reduce deployment risk
Sends status/incident notifications when releases succeed or fail
🧪 How To Implement CI/CD With GitHub Actions
Here’s a small GitHub Actions workflow that actually runs a basic Node.js CI check. You’ll still need to adapt the Node version and scripts to your project.
Inside your repo, create this file: .github/workflows/ci.yml
Paste this in:
name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint --if-present
- name: Test
run: npm test
- name: Build
run: npm run build --if-presentNow GitHub will run this workflow on pushes to main, pull requests targeting main, or a manual run. If you enable branch protection, you can require this job to pass before merging.
Do not put production passwords, tokens, or cloud keys directly in this YAML. Use GitHub Actions secrets or, even better when your cloud supports it, short-lived identity federation/OIDC. For production deploys, use protected environments and least-privilege credentials so a CI job does not become a skeleton key to your infrastructure.
If you want more examples with GitHub actions, github has a lot of templates (I stole this one from them lol)
GitHub Actions is only one option. GitLab CI/CD, CircleCI, Buildkite, Jenkins, cloud-provider pipelines, and deployment platforms can all implement the same ideas. The valuable skill is understanding the pipeline—not memorizing one YAML dialect.
If you want to keep learning
Version control explained — the Git fundamentals CI/CD pipelines rely on before any automation starts.
Git reset vs revert vs restore — how to safely undo mistakes before or after they reach a shared branch.
Command Line for beginners — where you’ll run Git, deployment tools, and most CI/CD commands.


Loving the feedback!



Thanks to everyone who submitted!
Kauketz, GabrielDornelas, bakzkndd, jw123450, xanerin, ariatheroyal, victorhugobarbosa, and E-Sieben.
Remove the Computer Virus
Your computer might have been infected by a virus! Create a function that finds the viruses in files and removes them from your computer.
Examples
removeVirus("PC Files: spotifysetup.exe, virus.exe, dog.jpg")
output = "PC Files: spotifysetup.exe, dog.jpg"
removeVirus("PC Files: antivirus.exe, cat.pdf, lethalmalware.exe, dangerousvirus.exe ")
output = "PC Files: antivirus.exe, cat.pdf"
removeVirus("PC Files: notvirus.exe, funnycat.gif")
output = "PC Files: notvirus.exe, funnycat.gif")Notes
Bad files will contain "virus" or "malware", but "antivirus" and "notvirus" will not be viruses.
Return
"PC Files: Empty"if there are no files left on the computer.
How To Submit Answers
Reply with
A link to your solution (github, twitter, personal blog, portfolio, replit, etc)
or if you’re on the web version leave a comment!
If you want to be mentioned here, I’d prefer if you sent a GitHub link or Replit!

New video is out!
I’m also giving out my notes for free!
Since you’re a Sloth Bytes subscriber, I’m giving away my notes about AI Agents!
I’m still working on them, so If any of my notes are wrong or you have suggestions let me know 😁
Another video coming out soon.
That’s all from me!
Have a great week, be safe, make good choices, and have fun coding.
If I made a mistake or you have any questions, feel free to comment below or reply to the email!
See you all next week.
What'd you think of today's email?
Want to advertise in Sloth Bytes?
If your company is interested in reaching an audience of developers and programming enthusiasts, you may want to advertise with us here.







