Most software teams discover GDPR in one of two ways: during a legal review a week before launch, or after a data breach. Neither is a good time to start thinking about compliance. The regulation has been enforceable since May 2018, and yet the pattern of treating it as an end-of-project legal checkbox persists — usually because engineering teams don't feel equipped to make compliance decisions, and legal teams don't speak the same language as the codebase.

At Yo! Nellore, we build products that handle personal data for healthcare, fintech, and HR clients. For those verticals, GDPR compliance isn't optional — and we've found that treating it as a design principle from sprint zero, rather than a retrospective audit, consistently produces better products and lower long-term risk. Here's the framework we use.

What GDPR Actually Requires of Your Software

The General Data Protection Regulation (EU) 2016/679 establishes rights for EU data subjects and obligations for organisations processing their data. Even if your business is based in India, you are subject to GDPR if you offer goods or services to EU residents, or monitor their behaviour. With the UK GDPR applying post-Brexit, and India's Digital Personal Data Protection Act (DPDPA) 2023 following similar principles, the investment in compliance-first development now covers multiple regulatory frameworks simultaneously.

For software engineers, the key GDPR obligations translate into concrete technical requirements:

  • Lawful basis for processing: Every category of personal data you collect needs a documented legal justification — consent, contract, legitimate interests, etc.
  • Data minimisation: Collect only the data you genuinely need. If you're collecting a date of birth when all you need is age verification, that's a compliance risk and a design smell.
  • Purpose limitation: Data collected for one purpose cannot be reused for a different one without fresh consent.
  • Right to erasure ("Right to be Forgotten"): Users can request deletion of their personal data. Your system must be able to fulfil this request completely — including data in backups, logs, and third-party integrations.
  • Data portability: Users can request their data in a machine-readable format.
  • Breach notification: Supervisory authorities must be notified of data breaches within 72 hours of discovery.

"Data protection is not a legal problem dressed up in engineering clothes. It's an architecture problem that legal teams are asked to review at the wrong point in the process."

The Data Protection Impact Assessment (DPIA)

A DPIA is required under GDPR Article 35 for any processing that is "likely to result in a high risk to the rights and freedoms of natural persons." In practice, if you're processing health data, financial data, location data, or building any form of automated decision-making system, you need a DPIA.

We now run a lightweight DPIA as part of our discovery workshop for every new project. It doesn't need to be a formal legal document at this stage — it needs to answer four questions:

  1. What personal data are we collecting, and why?
  2. Who has access to it, inside and outside the organisation?
  3. What are the risks to the individuals whose data we hold?
  4. What technical and organisational measures reduce those risks?

Running this exercise before writing code changes what you build. We've had clients realise in this session that they were planning to collect data they didn't actually need, or that their proposed third-party analytics vendor was incompatible with their users' consent terms.

Privacy by Design: What It Looks Like in Code

Article 25 of the GDPR codifies "data protection by design and by default." In engineering terms, this means:

1. Encrypt Personal Data at Rest and in Transit

Transport Layer Security (TLS 1.3) for all API communication is the minimum bar — it should be a non-negotiable infrastructure requirement. For data at rest, field-level encryption of sensitive personal data (PII) is preferable to relying solely on database-level encryption, because it provides defence in depth if the database is compromised.

# Example: encrypting PII fields before storing to database (Python/Django)
from cryptography.fernet import Fernet

key = settings.FIELD_ENCRYPTION_KEY  # stored in environment, not in code
cipher = Fernet(key)

def encrypt_pii(value: str) -> str:
    return cipher.encrypt(value.encode()).decode()

def decrypt_pii(value: str) -> str:
    return cipher.decrypt(value.encode()).decode()

2. Pseudonymisation and Anonymisation

Pseudonymisation replaces directly identifying information with a pseudonym. Analytics events, for example, should reference an internal user ID rather than a name or email address. True anonymisation — where re-identification is impossible — means the data no longer falls under GDPR, but the bar for genuine anonymisation is high and often requires statistical techniques to prevent re-identification through data linkage.

3. Consent Management

If your legal basis for processing is consent, that consent must be freely given, specific, informed, and unambiguous. Pre-ticked checkboxes are not valid consent under GDPR. Store consent records with timestamps, the specific version of the privacy notice shown, and the mechanism through which consent was collected.

-- Consent audit table schema
CREATE TABLE consent_records (
  id              UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id         UUID REFERENCES users(id),
  purpose         VARCHAR(100) NOT NULL,  -- e.g. 'marketing_email', 'analytics'
  consent_given   BOOLEAN NOT NULL,
  ip_address      INET,
  privacy_version VARCHAR(20) NOT NULL,   -- e.g. '2.1.0'
  created_at      TIMESTAMPTZ DEFAULT NOW()
);

The Right to Erasure: Engineering the Hardest Part

The right to erasure is technically the most demanding GDPR requirement for most software systems. Fulfilling a deletion request completely means:

  • Deleting or anonymising the user's personal data from the primary database
  • Clearing cached copies (Redis, CDN-cached API responses containing PII)
  • Purging entries from log files (application logs, access logs, error tracking tools like Sentry)
  • Propagating the deletion to any third-party processors (analytics platforms, CRM, email tools)
  • Handling backup retention — GDPR does not require immediate deletion from encrypted backups, but you must ensure restored backups re-apply the deletion
Architecture Decision

Design your data model from the start so that personal data is clearly separated from behavioural/transactional data. Anonymising a user record (replacing name, email, phone with pseudonyms) then becomes straightforward — and you preserve the transactional history that your business reporting depends on.

Breach Response Planning

The 72-hour notification window for reporting a data breach to the relevant supervisory authority starts from the moment you become aware of the breach — not from when you've fully investigated it. You can report what you know and update the notification as you learn more.

From an engineering perspective, this means your incident response playbook needs to be in place before a breach happens:

  • Define who is responsible for making the notification decision
  • Maintain up-to-date records of what personal data you hold and where (a Records of Processing Activities document)
  • Have alerting in place for anomalous data access patterns — unusual query volumes, off-hours admin access, bulk exports
  • Test your breach response annually, not just your security controls

The Business Case for Doing This Early

Retrofitting GDPR compliance into a live product is expensive — typically 3-5x the cost of building it in from the start. We've seen enterprise clients with six-figure remediation bills because early-stage decisions (storing unencrypted PII in log files, no consent management system, third-party analytics scripts loading user data without consent) became load-bearing parts of the architecture that are expensive to change.

Beyond cost, compliance-first development builds user trust. The teams that invest in clear privacy controls, transparent data handling, and genuine user control over their data consistently see higher conversion rates on consent prompts and lower unsubscribe and deletion request volumes. People can tell when privacy is an afterthought.

If you're building a product that will touch EU or UK user data and want to review your current architecture for compliance exposure, get in touch. We offer a structured GDPR readiness review as a standalone engagement.