Fork me on GitHub

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!

Wednesday, March 9, 2016

Show your support to DoubleCheck.

We've all been there,

1) You send a very time-critical email, then a few minutes later you receive it because you replied to yourself instead.

2) You send the email to the Mike A instead of Mike B( and have to deal with the awkwardness that ensues)

3) You hit reply all and (annoy pretty much everyone else).



It is costly and in the long run, diminishes your productivity. But we are human and these mistakes do happen (I might be leading on that count..;)). In the spirit of productivity I have made an addin that double checks your recipients in one click. It is competing against other applications that aimed at increasing productivity using the Office 365 API. If this idea, resonates with you please vote on the link below.

http://devpost.com/software/doublecheck

Voting only happens over the next 9 days so please vote as soon as you can. As a heads up,you will have to create a Devpost account before voting, let me know if you are stuck on that part. Thank you in advance.