A talk for CS beginners
Jônatas Davi Paganini
Before We Start — A Question
Raise your hand if you’ve used software today.
Now keep it raised if that software made a decision about you — what you see, what you’re offered, whether you qualify for something.
That’s what we’re here to talk about. You’re learning to build the thing that just raised everyone’s hand.
The code you write will touch people you’ll never meet, in situations you never imagined.
Who Am I
- Developer since 2004
- Worked across Brazil and internationally, mostly remote
- Currently Senior Software Engineer at Hubstaff
- Previously Developer Advocate at Timescale — time-series data
- Passionate about open source, teaching, and living close to nature
- Building a permaculture farm while writing database code
A Frame: Three Permaculture Ethics
Before we talk about code — a small detour into farming.
Permaculture is a design philosophy for sustainable human habitats modeled on nature. A forest garden doesn’t need watering, pesticides, or weekly maintenance. You design with nature, not against it.
Its foundation is three simple ethics:
- Earth Care — protect and restore natural systems
- People Care — support human wellbeing and community
- Fair Share — distribute surplus, limit consumption
I’ll use these as a lens throughout this talk. Because they map surprisingly well to software.
Time Is Your Most Valuable Resource
(People Care starts with you)
- You have finite hours — every line of code costs time
- Learning something once vs. doing something manually 1000 times
- Automation is fundamentally about reclaiming human time
Time Economics: think about the return on your time investment.
What to Build Matters
- Not all software is worth building
- Who benefits? Who pays the hidden cost?
- The why behind your code shapes its impact
- Aligning your work with your values is a career strategy
Your choices about what to build matter as much as how to build it.
What Does Ethics Mean in Computing
(People Care at scale)
- Who benefits from the software you write?
- Who is excluded or harmed?
- Ethics isn’t a feature — it’s a design decision from the start
- The consequences of code extend far beyond the codebase
Bias in Algorithms
- Algorithms trained on biased data reproduce that bias
- Real-world examples: hiring tools, credit scoring, predictive policing
- “Neutral” systems are rarely neutral
- Bias compounds over time and scale
If your training data reflects injustice, your model will too.
Privacy & Data Power
(Fair Share — who controls the resource?)
- Data collected is power held over users
- Most users don’t read privacy policies — and companies know it
- Data breaches are not just technical failures, they’re ethical ones
- Minimum viable data: collect only what you truly need
The “Move Fast” Problem
- “Move fast and break things” has real victims
- Speed at scale means mistakes affect millions
- Responsible engineering includes slowdowns for review
- Ethical debt is harder to pay than technical debt
The “move fast” motto was never meant for systems that touch real lives.
The Scale of the Problem
(Earth Care — the invisible infrastructure)
- Global data centers consume ~1–2% of world electricity
- That’s comparable to the entire aviation industry
- Demand is growing faster than renewable capacity
- Software is invisible infrastructure — but it has a physical footprint
AI & Energy
- A single large AI training run can emit as much CO₂ as 5 cars over their lifetime
- Inference at scale is also costly — every query has an energy cost
- Crypto mining and NFTs: enormous computation, narrow benefit
- Streaming video: largest share of global internet traffic
Efficient Code Is Green Code
- Your choice of algorithm literally affects the planet
- O(n²) vs O(n log n) isn’t just academic — at scale it’s energy
- Use efficient queries — don’t load what you don’t need
- Avoid spinning up cloud resources you don’t actually need
- Renewable energy is growing — but demand is growing faster
- “Carbon neutral” claims often rely on offsets, not reduction
Every CPU cycle is a tiny combustion. Write thoughtful code.
Permaculture Principles Side by Side
The three ethics show up everywhere in software — once you learn to see them.
| Permaculture Principle | Software Equivalent |
|---|---|
| Observe and interact | Understand the problem before coding |
| Catch and store energy | Cache, don’t recompute |
| Use small & slow solutions | Incremental delivery, MVPs |
| Produce no waste | Don’t over-engineer; delete dead code |
| Use edges and value the marginal | Edge cases matter |
| Design from patterns to details | Architecture before implementation |
| Integrate rather than segregate | Composition over isolation |
The Mapping Holds
- Earth Care → write efficient code, minimize waste, think about the full compute lifecycle
- People Care → build for real users, protect their data, avoid systems that harm
- Fair Share → open source, accessible tools, don’t hoard data or power
Sustainable design in nature and sustainable design in software come from the same instinct: don’t take more than you give back.
Remote Work Reduces Emissions
(Earth Care in your daily work life)
- Commuting is one of the biggest individual CO₂ sources
- Remote work eliminates daily travel for millions of people
- Less office space = less heating, cooling, and construction
- It enables working from places with lower cost of living or closer to nature
→ ideia.me/disciplina-no-home-office
Paths That Combine Code & Values
- Environmental tech: climate modeling, energy grid optimization, precision agriculture
- Open source: building public goods, not just private products
- Education tech: democratizing access to learning
- Health informatics: data that saves lives when handled responsibly
- Policy & regulation: CS people are needed in government too
You don’t have to choose between a meaningful career and a technical one.
The Ethical Developer Checklist
- Who are the users of this system? Who is invisible to it?
- What data are we collecting, and do users know?
- What happens when this system fails or is misused?
- Could this replace human judgment where it shouldn’t?
- Is the environmental cost of this computation justified?
- Would it be ok if the people affected could see the code?
Start Now
- Learn to estimate the computational complexity of your code
- Use efficient queries — don’t load what you don’t need
- Read the privacy policies of the apps you build (and use)
- Contribute to an open source project you care about
- Choose an employer whose values match yours
The best time to think about ethics is before you write the first line.
Long-Term Habits
- Build a practice of asking “who is harmed?” before shipping
- Stay curious about the social context of the systems you work on
- Join or create communities that take ethics seriously
- Advocate internally — developers have more influence than they think
- Keep learning: CS ethics is a growing field with real careers
You’re Early
You haven’t shipped a broken hiring algorithm yet. You haven’t collected data you didn’t need yet. You haven’t written O(n³) code running on a million requests yet.
You’re at the beginning. That’s a gift.
The developers who shaped the internet mostly learned these lessons after the damage was done. You get to start with them.
The field needs people who care about what they build, not just how they build it. That’s you — if you choose it.
Let’s Talk
Jônatas Davi Paganini
- ideia.me
- github.com/jonatas
- Senior Software Engineer at Hubstaff
What questions do you have?