Fork me on GitHub

Friday, August 26, 2016

To lead or not to lead.

About a year ago, I was elected to be on the committee of the Women In Computer Science Society at UCT. Last Wednesday, I oversaw the election of the next committee. This post is about what happened in between.


I was once talking to a potential sponsor and he asked, 'Why this society? As a student, it must take a lot of your time, It must mean a lot to you.' My response was and still is, 'yes it does'. I have written a lot about why we have few women in technology and why we we need to more to solve the problem. I have experienced first hand being what its like to be one of two girls in the class, or the only female developer in an office, or to be told I should be study something suitable for girls like Commerce and the list goes on. Its definitely not fun and is a big contributor to Impostor Syndrome. After going to Grace Hopper 2014 and seeing how much it is a global problem, I decided to be part of the solution. Now that we have covered the whys, lets get to the hows.

I was promoted to Chair Person after the previous Chair Person resigned. I can definitely tell you that I wasn't ready. Leading a society requires a lot of time, commitment and sometimes experience, especially because it was a young society that had just been reinstated as an official society. There was no alternative so I took up the challenge. Gradually the society, became my baby. I found myself using a lot of my time sending emails, writing announcements, thinking, organizing and planning. I was always thinking of what I could have done better or differently.It sometimes felt like a job that I wasn't getting paid for. Now I realize the immaterial rewards far outweigh the material ones.

Over the course of the year, I have had the platform to implement whatever crazy ideas I had, I have connected with lots of interesting people from members to sponsors and supporters,I have received feedback from members about how happy the society makes them feel, (Damn I live for those emails), I have received good feedback from the Department of Computer Science, I have learnt the art of fundraising and following up. I haven't saved the world yet but leading  helped me as much as the community.
If you are a student considering getting involved on campus, my advice is 'Go for it, and have fun while at it'. It is true that it will take a lot of your time, (time that you are now wasting on social media by the way), but its a good use of your time if personal growth is your priority. Happy leading!

For updates on the society like us on facebook or visit our website.
Have a great weekend!

Tuesday, August 9, 2016

What you missed out on .. #AndroidCamp2016



I was in London last week for Google Android Camp which ran from 1st to 5th August at the Google London office. Participants are invited based on merit.(I'm not sure how much merit I have but I'm grateful I made it). During the camp we learnt to develop Android apps and in teams we developed apps over a 24 hour hackathon. I proposed an app idea and was assigned to team mates from Croatia, Israel and Poland. 



The curriculum
My team
       
In one week we went from beginner/novice to expert, thanks to Ran, our instructor. We learnt about UI, Design, Recycle View, Background Execution, Network Operation, Firebase , Animations... all the necessities you need to develop a functional app. The workshops were self paced which I really liked. Between the sessions we also had talks from Googlers such as Andrei Popescu, Android director and David Singleton, VP of Engineering. It was eye opening to hear from the team working on Android on where it headed.We also had a career panels where Googlers shared their journey to Google and an interview workshop which was really helpful.

The hackathon
From Thursday afternoon to Friday afternoon we had a 24 hour hackathon where we developed apps from our suggested ideas. Unfortunately I was sick with headache and fever hence I couldn't stay up all night. But we were a strong team and we managed to create a functional proof of concept. 
That face after the hackathon



The perks
Just like in the movie, Google really spoils its employees and in this case guests. First off, they welcomed us with Nexus tablets to keep (that's right). As if that's not enough they gave us the 6th  edition of the book Cracking the Coding Interview. 

 Of course, they showered us with swag and fancy food from different places.
Dinner
Android Umbrella

 This is all on top of an all expenses paid trip , Thanks Google!

Google office

If you are interested in my London adventures go here. Have a great week ahead! 

Sunday, July 24, 2016

I did the thing.

Hackathons rarely happen at UCT and it has been at the back of my mind to organise one for a long time. Then two months ago this happened.


I organised the WICS(Women In Computer Science Society ) hackathon which happened yesterday and of course a lot of planning had to be done.This includes securing sponsorship, mentors, a venue, catering services, name tags and even more difficult, getting students to sign up.  Each had its own difficulties but it was worth it. I'm grateful for the support from my fellow committee members , Amazon CapeTown , Facebook and Google Developer Group CapeTown.







Seven teams competed by hacking solutions to their community problems. Their ideas greatly impressed the judges from Amazon. Solutions included apps to improve health, safety, security among many others. Students all the way from first years to final years were able to produce working prototypes in just about 8 hours. Winners walked away with exclusive swag feeling confident in their Computer Science skills. Considering that each team had at least one female member, I think our mission was accomplished.  I'm proud to have been made it happen.


Many participants commented that they were keen for more events like this. I might have found my life's purpose ..;). Jokes aside, it was a fun filled Saturday. Have a great week ahead!

Event pictures: https://www.facebook.com/Women.CS/photos/tab=album&album_id=1161941890495506
More event info: http://wcs.cs.uct.ac.za/index.php/blog/

Friday, July 15, 2016

#MachineLearning on steroids


This winter break I did something different. I didn't do a typical Software Engineering Internship. I used this break to learn as much as possible about Machine Learning mostly because of #FOMO and that it’s a field I have been interested in for a while.



My regime included an internship, Coursera course, open source contribution, reading books and papers (lots of them), competing on kaggle.com (or tried to) and following relevant blogs and twitter accounts. If you follow me on twitter, apologies for all the #MachineLearning tweets, in my defense I left a warning..;).
Here is how it went.

1) The internship
I interned local startup called Data Prophet that specializes in Machine Learning. I can't talk about it due to NDA but I'm very proud of the work I did there. I got to work with a smart and curious team from whom I absorbed a lot. I also got to work with iexperience interns from America. The company generously paid for my Machine Learning Course on Coursera (more info next). The highlight of the internship was the company hackathon where we got to play with brain waves.

This is a course taught by Andrew Ng, a professor at Stanford, founder of Baidu and co-founder of Coursera. He definitely is an influential figure in Machine Learning. The course runs over 11 weeks, it is free but a certificate costs $49. It covers basics of Machine Leaning, basic Math and programming knowledge are enough prerequisites. It gives a comprehensive guide to the vast array of algorithms. I completed it with the 100%. I highly recommend it for any beginner in Machine Learning. 


3) Open source contribution
I have been contributing to Scikit-Learn, an open source python Machine Learning library and SOMPY. I contributed by working on some issues. So far I have made 3 pull requests, all of which have been merged. Score! I have also contributed to SOMPY documentation. 


4) Reading research papers.
This one was tricky at first. It takes a while to get used to academics' language but I have found my way and actually enjoy it. Nothing beats reading an interesting paper over a cup of tea..;). I have read (and still am, actually am writing this post as a break from a paper) interesting papers on Natural Language Processing, Deep Learning and Kohonen Self Organising Map (for my thesis). Trust me when I say it gets addictive.

5) Following relevant content.
This one is easy, just click a button and you have found your tribe. It’s also very addictive. I have a bookmark folder that I’m happy to share with anyone interested. The following have been very useful for me:
·        http://www.wildml.com
·        http://karpathy.github.io/
·        Colah.github.io

Blogs are a good source for latest developments, opinions and tutorials (simpler language than papers)

6) Competing
 I love competitions, so the idea of participating on Kaggle resonated with me. Unfortunately, due to limitations of my PC, I can only participate in some competitions. Oh well, once I have worked around it, I’ll write a post about y progress. They also get quite addictive, on submitting a solution, you are more likely to spend hours improving your score by 0.1%.

My top 3 lessons from the experience:
1) Machine Learning is a very broad subject; you'll definitely get lost if you try to understand everything. Rather pick a topic or two, at most three to focus on.
2) Seek help if you are stuck.
3) Don't give up!

You are probably thinking, wasn’t that too much Machine Learning for 5 weeks? Well, it was intended to be a binge, remember. I did other things too, like attending DebConf, travelling (writing this from Tanzania), reading (Malcolm Gladwell’s David and Goliath  and Blink) , listening to Psychology podcasts and of course running #Balance.
As the break comes, I believe my objective has been met (at least partially). I'm definitely more comfortable with Machine Learning terms and the current trends. I also still have a lot more to learn, hence the papers, blogs and courses. I don’t know what this will lead to, perhaps a postgrad in Machine Learning, a job as a scientist, or just a hobby. I can’t tell, but I did and do enjoy making Computers intelligent. Here is to the last leg of my degree!


Sunday, July 3, 2016

What you might be missing out on .. #debconf16


How was your weekend?
I can tell you mine has been exciting. I attended DebConf2016, the international conference for Debian Developers. It was more of a spontaneous decision since I learnt that it is taking place on campus and free to attend. I ended up really enjoying it.

What is DebConf?
Debconf an international conference for Debian Developers. This year they chose CapeTown specifically UCT to host it. It has about 250 participants so far. It attracts delegates from all over the world with a diverse set of interests, skills and ethnicity. There were delegates all the way from Germany to India, from Senior Engineers to Students. It was quite an fascinating space to be in. 

What is Debian?FOSS?
Debian is an Operating System based on the Linux Kernel. Its free and open source and Ubuntu is derived from it. Learn more about it here. I don't use Ubuntu or Debian but I was drawn to attend because I'm a supporter of open source. I'm actively contributing to open source specifically scikit-learn a popular Machine Learning library for python.

Sessions 
There are varieties of talks. Topics range from Internet of Things to India! (that's right, India). I attended a talk by Karen Sandler on FOSS(Free and Open Source Software) and companies, FOSS in India by Keerthana Krishnan , Lessons from a year of contributing to Open Source Software Dieter Adriaenssens and a panel on Introduction to Debian. They were intellectually stimulating, not also of the 4 above, only one is actually about Debian. I particularly enjoyed the lightening talk on India by Keerthana who is also a University student


The Community. 
I have met incredible people in just a weekend. I was able to connect to Karen Sandler from the outreachy program with whom we had a lot to talk about #WomenInTech.  I also connected with Chirayu Desai,  a Google Summer of Code participant who was also a Google Code In prize winner as well as other GSOC Debian participants. The Debian community is absolutely welcoming and approachable. In the hallway you can strike up a conversation with anyone and talk about anything literally. They are particularly keen to get more people in Africa involved in contributing to FOSS, which would explain the hospitality. In addition to that, the conference is also very easy going, spontaneous sessions and arrangements are more than welcome. 


All in all, Debconf was a great way to spend the weekend. It is still running until 9th July. Of course a conference isn't complete without swag. 






Find out more about debconf here and if you are in CapeTown, don't hesitate to pop in at Menzies Building, UCT Campus. If you are not, you can livestream the sessions from the website. Have a great week ahead!

Monday, May 23, 2016

My Research Assistant Experience



So this semester was a bit different. I took on a part time job as a Research Assistant in the Department of Computer Science. I worked in Dr. Hussein Suleiman's research group under the supervision of Lighton Phiri, a PhD student. I made a web application that will be used by instructors to sequence their activities under the IMS global standard. There are many standards for sequencing and I implemented the Simple Sequencing standard. I successfully completed it and I couldn't be prouder of myself. Below are my reflections as I look back.

I learnt a good deal web application development with the MEAN stack. Having never used Node before, it was a bit of a learning curve. Node is particularly different due to asynchronous nature of functions.I had to ensure this doesn't introduce unpredictable behavior to the user.

I also got my hands on lots of open source projects. These include front end frameworks such as introjs.com guidejs, sequencejs, interactjs among many others. In addition to that, I wrote part of the backend in Java and I modified the apache-poi library to suit the application needs. Anyone involved in opensource can attest to how challenging it is to modify big libraries. My flavour of the library can be found here: https://github.com/imaculate/JavaSlides

Definitely improved my software thought process. I made a lot of mistakes and learnt from them. I had to make sure , the final product is convenient for the user to use. I had to go through hours (sometimes days) developing algorithms and debugging. It can be frustrating but its all worth it in the end.




On top of technical benefits, I exercised a good deal of time management balancing with my studies and working with deadlines. Being an RA gave me an excuse to go to PhD labs and experience the life of graduate students. It was also fun working with my supervisor and most importantly, it feels good to contribute to education research.


Below are some screenshots of the application.
I will post the link once the repository is publicly available.



Have a great week further! 

Friday, April 29, 2016

Meet Imaculate ... a leader



Being the current Chair Person of Women In Computer Science Society (WICS), a society I helped founded at UCT, I have grown a lot as a leader. We just held our last event for the semester last week so this post comes from retrospection. I have drawn a lot from my experience as a Google Student Ambassador( star GSA .;)) , but WICS has been different in that we do not a stable source of funding and the team is bigger (there were only 2 GSA's, WICS committee is made of 6). Here are some lessons I took away which I believe also apply to many other aspects of life.

Its never too early to start planning.
A lot could go wrong and in no particular order these risks include: funds not arriving on time, your event could clash with another event in your event, the internet could be slow, heck the ATM could run out of money. You'll sleep a whole lot better if you have catered for them in advance.

Less admin more results. 
Any student leader at UCT will attest to how much admin there is. From registering a society to to booking venues , retrieving funds for events. There is always a form to fill and this can easily detract you from the mission of your society. I keep admin to the minimal, by taking shortcuts for instance reimbursement is so much easier than purchase order, then reimbursement it is. In short legally hack the system.

Take chances, take charge.
At Grace Hopper conference last year I took charge by approaching a Facebook representative on getting sponsorship for WICS. I had little hope but did it anyway. After following up and suggesting our (very vague at the time) plan , we got sponsorship for two events including speakers for our Interview preparation event.  We also got sponsorship from Google for our opening event in a similar manner.



Don't exclude men from the conversation.
Our mission is to encourage women to pursue Computer Science and a lot of times we are asked if men are allowed to events, or why are men allowed. Having few women in technology is not just a women's problem. Data proves that women are just as good in technical fields as men, the gap starts because of society stereotypes and norms and we should fix it together. Besides men have women in their circles, will be more than happy to refer them to our society if they feel included in the conversation.


Its gets better with practice.
In the beginning, it was more difficult to coordinate everything with my team but after a couple of events together, we built a framework that works for all of us. We are even gonna host the first women's hackathon on campus next semester. No matter how inconvenient it seems at the beginning, done is better than perfect.

People are willing help, just show them how.
Hard to believe, but true. We have received enormous support from the Department of Computer Science as well as other technical societies like Rails Bridge CapeTown , Developers Society just by showing initiative and speaking the right language. Easy tip, make it easy for them to show support.


Interested in our activities? Volunteering ? Sponsorship?
Read more about us on our website.




Like us on facebook page.


Or email us at women.cs.uct@gmail.com.

Stay tuned for next semester!