Open to software developer roles

Edward MawelaSoftware Developer

I build software from first principles. I'm confident in my work because I'm obsessed with fundamentals: how memory, data and algorithms actually behave. I break hard problems down into small, well-named pieces that are easy to reason about, test and change.

  • Johannesburg
  • Pretoria
  • Durban
  • Cape Town
  • Remote
Edward Mawela standing with hands in pockets, wearing a navy suit
~/edward Founder, Blue Monday Studios
Harvard University
CS50x certified
Client websites
10+ deployed
University of Johannesburg × FNB
Higher Certificate
Blue Monday Studios
Founder

01 / Approach

How I think about software

Frameworks and languages change. The ideas underneath them don't. I put my effort into the parts that last, and that's why I can learn any tool a team uses quickly.

i.

Fundamentals first

I like knowing what happens beneath the abstraction: how a string sits in memory, why a hash table is fast, and what a query costs the database. When something breaks, that knowledge turns guessing into diagnosis.

ii.

Respect for abstraction

A good abstraction lets you forget the details safely. I design interfaces that hide complexity rather than leak it, and I avoid abstracting too early, before the problem has shown its real shape.

iii.

Decomposition

Every large problem is a set of small ones that haven't been named yet. I break work into pieces that each do one thing, can be tested on their own, and fit back together cleanly.

iv.

Ship it, then own it

I've taken client projects from first conversation to a live domain more than ten times. Deploying, maintaining and supporting real software taught me that "done" means working in production for real users.

# A hard problem, broken into small, testable pieces
def launch_client_site(brief):
    requirements = clarify(brief)          # what problem are we solving?
    design       = model(requirements)    # data, structure, flows
    build        = implement(design)     # one responsibility per unit
    verify(build, requirements)             # test against the brief
    return deploy(build)                 # live, monitored, maintained

02 / Harvard CS50x

CS50x: Harvard's Introduction to Computer Science

CS50x is Harvard University's introduction to the intellectual enterprises of computer science and the art of programming. It is known around the world for its rigour. Each week has a long lecture followed by a demanding problem set, and you earn the certificate by completing every problem set, passing automated correctness and style checks, and building an original final project.

  1. Week 0

    Computational thinking

    Representing information in binary, ASCII, Unicode and RGB. Algorithms, pseudocode, functions, conditionals, loops and abstraction, built up from first principles in Scratch.

  2. Weeks 1–2

    C, compilation & arrays

    Types, operators, control flow and the command line. How source code becomes machine code: preprocessing, compiling, assembling and linking. Strings as arrays of characters, command-line arguments, and classic ciphers.

    Mario · Credit (Luhn's algorithm) · Readability · Caesar · Substitution

  3. Week 3

    Algorithms

    Linear and binary search, then selection, bubble and merge sort. Big O, Ω and Θ notation, and recursion. Choosing an algorithm by what it costs, not by habit.

    Sort · Plurality · Runoff · Tideman (graph-based ranked voting)

  4. Week 4

    Memory

    Pointers, addresses and hexadecimal. Stack vs heap, malloc and free, memory leaks and debugging with Valgrind. File I/O and reading raw bytes.

    Volume · Filter (image processing on raw BMP pixels) · Recover (JPEG recovery from a forensic image)

  5. Week 5

    Data structures

    Building linked lists, stacks, queues, binary search trees, hash tables and tries by hand in C, and weighing time against memory for each.

    Inheritance · Speller (a fast, memory-safe hash-table spell checker)

  6. Week 6

    Python

    Moving to a high-level language and re-solving earlier problems with it. Seeing what abstraction gives you, and what it costs.

    Sentimental re-implementations · DNA (STR profile matching)

  7. Week 7

    SQL

    Relational databases, schema design, primary and foreign keys, joins, indexes, race conditions and SQL injection.

    Songs · Movies · Fiftyville (a mystery solved purely in SQL)

  8. Weeks 8–9

    The web & Flask

    The internet, TCP/IP, DNS and HTTP. HTML, CSS and JavaScript, the DOM and events. Then server-side apps in Python with Flask: routing, templates, sessions, cookies and authentication.

    Homepage · Trivia · Birthdays · Finance (a full-stack stock-trading web app)

  9. Beyond

    Security, AI & final project

    Passwords, hashing, encryption and the ideas behind modern AI. The course ends with a self-directed final project, designed and built from scratch.

03 / Credentials

Education & certification

Harvard University

CS50x: Introduction to Computer Science

Computer science fundamentals in C, Python, SQL, HTML, CSS and JavaScript, from memory management and algorithms through to full-stack web development with Flask.

See what it covers →

University of Johannesburg, with FNB

Higher Certificate in Digital Entrepreneurship

Building and running ventures in a digital economy: how a business turns technology into value for customers. It means I understand the commercial reasons behind the software I write, not only the code.

Industry

Founder, Blue Monday Studios

I run a studio that designs, builds and deploys websites for clients. I've handled every stage myself: requirements, design, development, hosting and ongoing support.

bluemondaystudios.co.za ↗
Edward Mawela in a navy suit and blue tie, standing outdoors

04 / Work

Blue Monday Studios

I founded Blue Monday Studios to build fast, dependable websites for South African businesses. More than ten client sites are now live, each taken from brief to production and kept running after launch.

10+ websites designed, built and deployed for real clients

What that work involves

  • Requirements: turning a client's goals into a clear, scoped specification.
  • Design & build: responsive, accessible interfaces in semantic HTML, CSS and JavaScript.
  • Performance & SEO: optimised assets, clean markup and search-friendly structure.
  • Deployment: domains, DNS, hosting and HTTPS, so the site is live and stays live.
  • Maintenance: updates, fixes and support long after handover.
Visit Blue Monday Studios ↗

05 / Toolkit

Languages, tools & foundations

Languages

  • C
  • Python
  • JavaScript
  • SQL
  • HTML
  • CSS

Frameworks & tools

  • Flask
  • SQLite
  • Git & GitHub
  • Linux / CLI
  • Valgrind
  • VS Code

Computer science

  • Data structures
  • Algorithms & Big O
  • Memory management
  • Recursion
  • Relational design
  • HTTP & the web

Delivery

  • Responsive design
  • Web performance
  • SEO
  • Hosting & DNS
  • Client communication
  • Product thinking

06 / Contact

Let's build something solid.

I'm looking for software developer roles in Johannesburg, Pretoria, Durban and Cape Town, on-site, hybrid or remote. If your team values people who understand how things work underneath, I'd like to talk.