Hataluli Randima / Developer

Built to work.
Engineered
to hold up.

I build thoughtful backends and real-time experiences — with security considered at every layer.

system / architecture01 — 03

A GOOD INTERFACE STARTS DEEPER.

01   Phoenix LiveViewexperience
02   Elixir / OTPlogic
PostgreSQLdata integrity
Obanbackground work
↳ clear boundaries
↳ reliable workflows
↳ security by design
FOCUS Backend engineeringAPPROACH Security-mindedSTACK Elixir / Phoenix / PostgreSQL
01 / About

Curious by nature.
Deliberate by design.

I’m Hataluli, a software developer drawn to the parts of an application that make everything else possible: data, workflows, and trust.

My work connects Elixir and Phoenix LiveView with practical business problems. Alongside backend development, I’m building my knowledge of defensive security and ethical testing.

01 / Understand the problem02 / Make it reliable03 / Keep learning
02 / Skills

Under the hood.

Tools with a purpose.
/ 01

Backend & real-time

Business logic, interactive server-rendered interfaces, and dependable background workflows.

ElixirPhoenixLiveViewOTPOban
/ 02

Data & delivery

Relational data, transactional updates, and the infrastructure that keeps applications running.

PostgreSQLEctoDockerKubernetesNginx
/ 03

Security mindset

Session lifecycle, browser security controls, and a growing practice in application security.

GuardianCSPSecure sessionsSobelowEthical testing
/ 04

Web & scripting

Python for scripts, data work, and simulations. Hand-written HTML, CSS, and JavaScript for the browser layer, including this site.

PythonJavaScriptHTMLCSSTailwind
03 / Experience

Learning by building.

TauSpace

Software development

Turning complex operations into usable software.

Work across backend features and Phoenix LiveView interfaces, with a focus on inventory operations and application reliability.

  • Purchase-order, stock-take, and reservation workflows.
  • Approval-driven repricing and scheduled jobs.
  • Reporting, data exports, and practical security improvements.
University of Johannesburg

Education

BSc Computer Science & Informatics

A foundation in computing, extended through hands-on development and continued security learning.

04 / Selected projects

Beyond the interface.

01 / OPEN SOURCE · HEX PACKAGE
Repo.transaction() |> audit()
Every change, accounted for.

AuditTrailEx

A transaction-safe audit logging library for Ecto, with field-level diffs, actor tracking, and redaction of sensitive fields.

ElixirEctoPostgreSQLTelemetryMIT
Inside the project

Mutations and their audit events commit atomically in the same transaction, and updates store only the fields that changed. It plugs into Ecto.Multi pipelines and records who made each change, whether a user, an API key, or a background worker. Protected fields are excluded or redacted, telemetry never emits field values, and optional PostgreSQL triggers catch changes made outside the library.

{:audit_trail_ex, "~> 0.1.0"}
02 / BACKEND ENGINEERING
purchase_order |> receive()
Inventory, without the guesswork.

Inventory operations

A Phoenix LiveView workspace for purchase orders, stock movement, reservations, and stock takes.

ElixirLiveViewPostgreSQL
Inside the project

Built around real inventory workflows: serial capture, duplicate validation, paginated stock queries, and reconciliation. Ecto transactions keep related stock updates consistent.

03 / SECURITY ENGINEERING
session |> verify() |> revoke()
Trust ends at the boundary.

Authentication hardening

Defensive improvements to session handling and browser security in a Phoenix application.

GuardianCSPSecurity
Inside the project

Focused on invalidating sessions after logout, tightening Content Security Policy, and replacing inline event handlers with JavaScript hooks. Security work is described without exposing internal infrastructure.

04 / BACKEND ENGINEERING
price |> approve() |> schedule()
The right price. At the right time.

Scheduled repricing

An approval-driven repricing workflow with scheduled background execution.

ObanEctoElixir
Inside the project

Separates proposal, approval, and execution. Approved price changes are scheduled with Oban; item and header statuses make each stage visible to operators.

Client work is shown as summaries. Its source code and internal system details are not published.

05 / Contact

Let’s build something
that holds up.

Have a backend challenge, a thoughtful project, or an opportunity to collaborate?

Email me ↗ hatalulirandima123@gmail.com