Government in your pocket


The Ekurhuleni Municipality hosted the EMMHack on the 30th of September at the Alberton Civic Centre. Khwezi, his brother Viwe, Andrew (a friend from Rustenburg we met at Geekulcha Hackathon earlier in the year), and myself were part of 36 teams that took part in the event. We called ourselves Incognito.

Upon arrival on Friday we all huddled together in groups of people we knew (which defeats the entire purpose), I was happy to note that Mandisi and Timothy from We Think Code were also at the event, which made things a little less awkward. Techies have a way of shutting people out, and that makes networking hard at these events.

The 48 hour hack kicked off on the Friday evening with a fancy dinner, pumping us up for a long weekend. The theme of the hack, “A digitally connected city,” meant that the city of Ekurhuleni was looking to improve the integration of technology into their structures and they were giving away R150 000 to see this happen.

The municipality provided challenges for us to work on, the most popular being (1) a way to make what government does visible to the public, (2) a way to make government information accessible to the people and across departments, and (3) the automation of the government housing allocation system. Our team sat for almost two hours deciding on what to work on and we eventually decided to build an app that would allow you to resolve one issue that needed you to interact with different government departments, all in one go.

Here’s a scenario: If I get mugged (which is very common), and during this incident I get stabbed, and my handbag (which has my ID in it) gets stolen, then I would have to report this case to the Ekurhuleni Metro Police Department, with the reference number from there apply for a new ID from the department of Home Affairs, where they would give me their own reference number and head to the clinic for stitches and receive another reference number when I open a file with them.

Our idea was to create a system that let’s you log a case on your phone, get one reference number, and have to validate the case only once at one department. This would mean that instead of travelling to the clinic, then to the police station, then too home affairs and potentially wasting two days, you would just need to open a case online, get a reference number, head to the clinic, where they would confirm your case, and once you get your stitches the system would log a case with the EMPD, and then remotely with Home Affairs. And all you would then need to do is go to home affairs at a later stage and collect your ID.

The application would use the Department of Home Affair’s database as the main source of information. The department is your first point of interaction with government (that’s if you are not born in a public hospital) and your last point once you have died. When you get the app, you’d need to register using your ID number, and just as you would with a banking app, go into a government branch to verify the account. The app would then give you the option to fill in other information about yourself, such as where you currently live, where you work, what your tax number is, whether you are on the grant system… This information will improve on and cross-check what government knows about you across the various departments.

The app would also allow you to map progress on your query until it is closed and at the end of each stage prompt you to rate the value of service provided to you. Because the case is allocated to a government employee at each stage, this would provide government with real-time performance reviews on their employees, thus improving monitoring and evaluation.

When the case is closed and you are informed, the app would require you to share your experience with the public using social media. Here you could express your satisfaction or discontent with government, which would deal with the first challenge of the hackathon, giving real time feedback to the people on what government is doing.

We worked tirelessly through the 48 hours, counting down each hour and ticking stuff off our to-do list. Our team consisted of three designers and a front-end guy, and that worked against us. Should we have invited more developers to our team we would have built a better prototype. We also spent a lot of time during the 6 minute presentation speaking about the problem and not the solution.

Overall, we got to answer the question, how much better can government be when they make their data available to the public? This is the question Ekurhuleni is trying to answer with their digital cities initiative.

Code School Diary: Level Up

It’s the 16th of August 2015 and I’m writing a physics assignment about Identifying Brønsted–Lowry Acids and Bases and Their Conjugates. I have no idea where or how I’ll apply this. I don’t know exactly how this applies to me. All I know is that I am supposed to answer a couple of questions and get graded.
It’s the 28th of October 2016 and I’m working on a C programming project about building a fractal generator and explorer. I know why I am doing this though. I am building a graphics engine and applying mathematical  principles to it. In this way it will perform better than using intuition.
On the 9th of May 2016 I started a journey. A journey so far removed from my plans and capabilities that it took a moment for me to comprehend why I chose this route. Then it dawned on me. It’s the thrill of it. The beauty of it. The passion of it. All this from one month of bootcamp. A bootcamp that was such a terribly beautiful experience that it ensnared me. I knew then as much as I  know now that I… was home.
I am curious and like to solve problems. Simple enough right? Nope. I am currently working on a project called expert systems. Expert systems being a means of creating an AI of sorts that helps with the making of decisions or the evaluation of already made decisions. And to be honest. I am drowning. I don’t see an end. The task is overwhelmingly difficult. I am sleep deprived. I haven’t seen the sun in a while but I am levelling up.
I am capable of building sites, graphics engines, unix systems, AI and using algorithms. More importantly not only can I visualise the real world applications of such skills, I cant wait to apply them in tackling real world problems.
In 2015 I was on a level, then came the bootcamp in February and I levelled up. Then came the cohort in May and a week later I levelled up and I have been levelling up since.
My grades have plenty of fails and few passes yet I have retained all that I learned in attempting these projects. When I say level up I mean I became better as a person, both as a thinker and as a programmer.
The physics assignment I told you about? I got 83% for it. The fractal project I told you about? I got 0% for it. Yet I can create a fractal from its mathematical formula and graphically represent it on the screen. And I still don’t quite understand why I needed to know Acid and Base conjugates.
It’s the 13th of October 2016 and I have a project due on the 16th. Time to level up.
Written by Mandisi Makwakwa
This story is part of a regular series written for by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ here.
This article was originally published on on 17 October 2016.

Code School Diary: Yes, #FeesMustFall!

Once again students are demanding that fees must fall. This isn’t the first time this demand has been issued and if something isn’t done in response – and soon – protests like these will most likely become annual occurrences.
I can understand the frustration that fuels #FeesMustFall. I have also been in the situation where I had to worry that my tuition fees were simply unaffordable. I mean that I, just like countless other South African students, didn’t have have stacks of cash lying ahead of being told how much more I’d have to pay to get a qualification next year. It’s also a hard fact that obtaining funding can also prove to be a mission too impossible to achieve. The current situation is not all that surprising.
People naturally have different views about the current protests. Some are positive and supportive, some are just indifferent while some are just annoyed about the inconvenience protests have on their lives. I know how the protesting students feel; it was only last year where I felt like they do right now.
So naturally I think that their demands are reasonable. I believe that in spite of the politicians’ spin about how unaffordable free education, even while less important expenditures somehow find their way onto the budget. How many billions have been spent rescuing wasteful public companies? How hard can it be to rescue students who truly need rescuing?
I feel like it’s easier for me to come have a reasonable and favourable opinion of the protesting students because I have been in a situation where I felt desperate and hopeless. I am fortunate enough to know what they are fighting for feels like.
I am able to pursue my education without worrying about exorbitant university fees and accumulating crippling debts. Under these conditions it is a whole lot easier to focus on the what’s important to any student: learning.
So knowing how it was for me and how it could be for them makes it  very easy for me to say fight on. There is no question in my mind that #FeesMustFall.
Written by Gomotso Mofokeng
This story is part of a regular series written for by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ here.
This article was originally published on on 03 October 2016.

A block of code: wethinkcode_blog #1

WeThinkCode_blog is a new and ongoing series of articles written by students at the revolutionary WeThinkCode_ school in Joburg, in which they share their experiences of being up-and-coming technologists in Africa’s most connected city. To kick things off, Tumelo Motaung reveals how one post-it note can open the door to crunching code and making friends.

Depending on how old you are, you may find 84 Market Street easier than you would 84 Albertina Sisulu Street.

If the Johannesburg Metro Police CCTV coverage extended to our part of town, you could pull three months worth of tape with over 300 gloomy-­eyed students walking in and out of the 112 year old National Bank Building.

A hustle of yellow sticky notes adorn the doorway to the cluster area, where all the work happens.

“I am here because I know nothing about coding, also for the people – I have a deep yearning to connect with people.”

That one is hers. That’s what she wrote on her post-it on her very first day on campus. Three months, hundreds of hugs, fist pumps and high-fives down the line, she calls the campus home.

After a month of going in at six-thirty in the morning and leaving at around 7pm in the evening, after working on code that made little or no sense, you grow into your peers, and they grow into you.

You get to a point where only they understand what you mean when you refer to every mishap as a norm error. She changed her status to “Coder in Training” when she was accepted into the programme.

She went around telling everyone who would listen that she would change the face of Africa from her Mac.

“I have never gotten so many zero’s in my life.”

That was the general feeling, and yet she stayed, she hung on, even when she wasn’t passing any of the exams, let alone making good grades.

The pace is a little more relaxed now, we have more time for chats and video games. The level of work, on the other hand, has shot through the roof. We scream, we scratch heads, we go blank, we go broke, we go hungry, but the learning is inevitable. (function repeat() { eat(); sleep (); code(); repeat(); })();

It is 13:42 on a Tuesday afternoon. She should have eaten at least one meal, but her PrintF is at a standstill, her brain has hit a block, again. She wants to do this one her own, “figure it out”, but there is no room for heroes at We Think Code.

She’ll need to get up and ask for some help. This is what it’s about.

This article was originally published on on 07 June 2016.

Sink or swim: Being thrown in the coding deep end helps

“How hard can it actually be?”

I remember asking myself those exact words a few months ago.

Imagine you are told that you are among the select few who have made it into We Think Code. What’s great about this is you have around two years of university experience and you happened to get distinctions on every second module. It can’t be that tough right?

It’s now four months later and I have engaged in a lot of retrospection. I have to say I would have been better off if I had no prior coding experience. That way I would have had to start at ground zero with everyone else instead of having to start over and then catch up to the crowd.

In university I was an above average student. I earned my fair share of distinctions and was relatively comfortable. That’s all well and good but why then is it more challenging in this new environment, why have I felt as if I was drowning so many times?

What’s different about We Think Code compared to traditional universities? I say ‘universities’ because I’m not the only one who studied IT in university and now find themselves learning how to crawl all over again.

In a word, the problem is ‘Theory’. Personally I feel like a lot of the concepts I am currently learning are very familiar and easy to grasp. The problem was that I was using the same methods of learning as I did at varsity and that’s just not good enough.

Being given a list of study material and having access to the summary of what I would be asked in the exam made me soft. It was so easy that looking back I am disappointed I did not do better.

What makes things more challenging now is that everything I need to know I have to discover myself. Whether I trawl the internet, which can have way too much information, or ask some of my fellow students does not matter. To top that off you must meet the vague requirements while being given some of the narrowest deadlines imaginable. For example, being asked to code a UNIX shell in two weeks. Then you only find out what the criteria for marking is after submission. This taught me the importance of defensive coding.

I have come to believe that universities do a lot to help students pass. So much so that I believe it is counter productive. A lot of students will complete their studies only to be re-taught how to do their job. That’s if they are lucky enough to find one. It’s one of the key factors one becomes aware of on WeThinkCode_. Here, one learn skills relevant to your workplace, which are desired by corporate sponsors. This is a massive weight off my mind ahead of searching for a job.

It’s not a pleasant experience being thrown in the deep end but it has allowed me to learn so much in a short amount of time. I have also become more resourceful, resilient and persistent. I have acquired skills I am glad I have learnt now rather than later.

My biggest realisation here has been that I don’t know anywhere as much as I thought I knew. That’s a good thing because now I know how much more I can and should learn. To paraphrase Harvard’s David J. MalanWhat ultimately matters in this course is not so much where you end up relative to your classmates but where you, at the end of two years, end up relative to yourself in Week 0.”

Written by Kgomotso Mofokeng

This story is part of a regular series written for by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ here.

[Picture Credit: Robbie Sproule]

This article was originally published on on 12 August 2016.

Code school diary: Feeling the fear and coding anyway

Nine times out of ten, most people are stalled in beginning an endeavour by fear of failure.

Whether it be a starting a business, changing of career, taking that long overdue trip of ‘self-discovery’ or even exiting a toxic relationship, fear of the unknown can stop us in our tracks.

With this in mind, it’s ironic that we accept most simple realities like knowing that not everything will work out on the first attempt or that the best way of learning is to learn by doing.

If this is indeed so, then shouldn’t we ask ourselves – or relearn – to accept unsuccessful attempts as lessons rather than failure? I firmly believe that true failure is failing to find a lesson in our unsuccessful attempt, and not being able to see the reasons behind our mistakes. Essentially our common “failure” is but a learning curve.

As a programmer approaches a new project, there are several inevitable realities that need to be accepted.

The first version of the program will not work, though we will soldier on make changes and recompile over and over for as long as it takes until we finally achieve the desired results.

Usually there are new concepts that we should implement that we know little about. The reasonable and sensible thing to do is to conduct research in order to gain understanding and start implementing.

Simply put, we need to get over our fear of failure; we need to know and accept that not everything will work out on the first attempt, and just as in computer programming our life plans have to go through a debugging process, constantly under review as circumstances change.

This can never happen unless you take the risk! As Franklin D. Roosevelt said, “courage is not the absence of fear, but rather the assessment that something else is more important than fear.”

Written by Botshelo Diale

This story is part of a regular series written for by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ here.

[Image: Ian Burt]

This article was originally published on on 23 August 2016.

Born lucky: Reflections by a young technologist on youth day

Sometimes I ask myself how I got here on the path I have chosen to take. I mean, it does not take much for me to imagine how things could have been different.

When people think of South Africa they think of Apartheid, 1994 and the genesis of the Rainbow Nation. One of the few things people tend to forget when they reminisce about the struggles and sacrifices of the past is the reality of those they love reminiscing about the most.

Take me, for example. Where I’m from, Eersterust in north-east Tshwane, the past is irrelevant. Even though it has played such a huge role in how Eersterust is today, most people’s thoughts are preoccupied with the present. I’m from a place where murder is laughter and drugs are breakfast. Yes, I grew up in the belly of the beast.

The second youngest of six children, my father met his untimely end when I was only five. Thirteen bullets in all. It’s not a very unusual way to go out in Eerseterust. Anybody involved in gangsterism will tell you exactly that.

So it was up to my single mother to raise us in what seemed like purgatory.

I am one of the lucky few who made it out. A lot of my old friends would love to be where I am. Most of them are in jail, and those are the lucky ones. The others were very unfortunate and are now dead. I should know because we buried one every second week.

I’m certain instead of where they ended up, they would rather be doing the things I’m doing. Like re-coding the C library from scratch. Who would not prefer that to gang shoot-outs and drug dealing? I don’t know about you, but recreating the virtual bullets of the classic Wolfenstein 3D game sounds much more appealing than a real bullet to the head.

Some might wonder at how someone whose present life is such a contrast to that of his origin can get to a place where he can say he is at the forefront of education and tech development in South Africa. They might see it as vindication of the opportunities available in the country today.

But maybe the question should be why every child in the country should not have the same opportunity as I do.

Things could have been different for me but thankfully they are not. I am at a place where inspiration is just all around you. A place where trendsetters and CEO’s of multinational corporations occasionally pop in for a talk. Where else can any student experience all that?

I’m certain that if you had to choose between numerous other paths I could have taken and being at We Think Code, you would make the same decision as I did. If you were born lucky enough to have the chance to make it.

Written by Gomotso Mofokeng & Philip Jacobs.

This story is part of a regular series written for by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ by clicking here.

This article was originally published on on 15 June 2016.