-
Career Opportunities
The delicate balance of mentoring someone is not creating them in your own image, but giving them the opportunity to create themselves.
Steven SpielbergHello! I’m Ivy Mboya. I’m currently based in Nairobi, Kenya. I’m a software engineer with 1 year of experience and currently interning on the ModECI project within Outreachy. I have a BSc in Computer Science and I can communicate fluently in English & Kiswahili, although I do speak a little German & Dholuo(my native language).
I’m looking for volunteer positions where I can give back to my community through the skills I have amassed so far. I specifically would love to help younger black girls get into more tech spaces and to create a safe space where they can evolve into better engineers. For me, this looks like a 1 on 1 structured mentorship where I actually teach girls how to code. Representation matters, as an engineer, I find that most of the time, I am the only person of color let alone a woman in a tech space. While it is inspiring to have made it into these spaces, I’d like to see more of me. I’d like to be, in a very small way, part of the positive change that will truly incorporate diversity into tech- that is IMPACT.
My skills include full-stack development, However, I find that I’m more passionate about backend development. This includes skills in writing programs using Python & Node.js and using tools such as version-control(Git), database management(MongoDB, MySQL, & Postgresql), testing(pytest), REST-API development & backend frameworks(Flask, Django & Laravel). While I was learning, I tinkered a little with Machine Learning and enjoy Natural Language Processing(NLP) & Deep Learning with Neural Networks.
I consider myself a learner, some skills and tools I’d like to master are: Docker, Kubernetes, Micro-services, Golang, software design & architectural decisions, my leadership skills, how to better communicate my science, how to empathize more with people, and how to be a better problem-solver.
I’m currently looking into programs that I feel align with my purpose of giving back to the community, however, I’m absolutely open to more suggestions of organizations that you think I may be a great fit for.
-
Modifying Expectations : ModECI internship
As software engineers, we often set up project timelines & goals before we even begin working on said project. This is quite important as it helps us break down a complex project into small deliverable tasks and understand the scope of what we intend to build. But do we sometimes set timelines that are just not realistic? Do things sometimes get in the way and we have to add a few more weeks to get a particular feature shipped? Yes.
Halfway into my Outreachy internship, I felt it would be ideal to revisit my initial project timeline and check whether I measured up. I initially split my 12-week internship into 2-week blocks where I purposed to learn about MDF, work on exciting machine learning concepts demonstrated via MDF workflows, and move into further contributing to Open Source Brain Version 2 (0SB-v2). I remember stating that my new position would be “Machine Learning Intern” on LinkedIn. I chuckle a bit about this. It has been more of a Software Engineering Internship for me & I adore it.
I have measured up & beyond! My greatest accomplishment has been having 16 Pull Requests merged into the main MDF codebase- all tasks aimed at making MDF user-friendly. On modifying expectations, one of my first tasks included updating conditions on MDF’s graphical export (Graphviz) to make more sense to new MDF users.
I really underestimated the amount of time I needed to complete this task. It took me 3 weeks to get it working. Why? Because there was a lot to learn under the hood about MDF- going through a lot of source files and trying to piece together this information, how conditions work and how to execute them. I’ve learned to embrace that sometimes it just takes longer to get something working than you initially expected. Modifying expectations means that you are adaptable to change – a great trait to embody as a software engineer.
Moving into the second half of my internship, I intend to achieve all of the goals I have in my original project timeline. I have great ideas to create really cool ML concepts using MDF. I’m excited to delve into MDF as an “end user” to experience the changes I made as an engineer. Oh and OSB-v2 , I’m coming for you soon!!!
Checkout ModECI MDF & how it’s mapping with your favorite ML environments:
-
Conditions in MDF
The second task assigned to me by my mentor (Mr. Gleeson) was updating conditions in the Model Description Format (MDF) project as they were too abstract for an initial user to decipher. The MDF project’s main objective is to express computational models in a standardized format that allows them to be exchanged between different programming languages/execution environments, focusing on Neuroscience, Artificial Intelligence, and Machine Learning. This is important as the project eliminates barriers in exchanging model results within the 3 disciplines, creating more sophisticated models that integrate components across the 3 disciplines.
During the first meetings, the term ‘condition’ was used a lot and I was confused about what it meant within the project. I’ll be honest, I was a bit scared of asking what it meant because I didn’t want to look unqualified. For this task, I dived into the MDF documentation, to figure it out and it was helpful although I did have some knowledge gaps. I learned that within the MDF ecosystem, a condition will determine when and how many times individual nodes within a graph will run.
I did muster the courage to ask a lot of questions regarding conditions on our Slack channel and on Github. My mentor was actually super helpful and guided me on what conditions meant, they further linked a python package graph-scheduler integrated into the project that uses conditions and had more insight on how conditions work.
2 days later, I was able to delve into the code base locally and make changes based on updating conditions to make more sense to users and my changes got merged from my pull request! I find that again, my curiosity and thirst to learn kept me active in trying to understand the project, my tasks, and asking relevant questions.
It is natural to be fearful of asking questions especially when you’re new to a team. I find that taking time to search for an answer online first and putting in the effort to understand something by yourself first is helpful. You get a bit more clarity and you can now further ask more informed questions. Asking questions doesn’t mean that you’re incompetent, it means that you’re wise enough to know that you don’t have all the answers! – and that is okay, more room for you to grow!
To learn more about the amazing project I’m working on and try it out, visit: https://github.com/ModECI/MDF
-
Meet Ivy 🙂
Hi there! My name is Ivy Mboya and I’m from Kenya. I recently completed my undergraduate degree in BSc. Computer Science from the Jomo Kenyatta University of Agriculture & Technology. Graduating on the 28th of this month! Pretty exciting huh!
I’m a Software Engineer with about 1 year of experience in Fullstack development. Outside of computing, I like to read books, try out new cuisines – the kids nowadays call it “foodie” and spend time with my family & friends. I consider myself adaptable, inquisitive, and self-disciplined.
My core values are Curiosity, Learning & Determination. As a child, I was always curious about stuff. “Why is the President blocking the road with all these cars?” – is what I asked my mother and a million more questions, which was annoying to her now that I think about it.
Curiosity is a powerful thing for me, it is sort of a mental exercise that makes my mind stronger and culminates in … learning. I have found that learning provides me with a sense of accomplishment & has boosted my confidence in my own capabilities. Lastly, determination has kept me curious and learning more even in the face of adversity. I have failed severally but determination has kept me going, overcoming failure in the process.
I applied to Outreachy to sharpen my programming skills. I had never contributed to Open Source before so I felt really skeptical but my mentor from KamiLimu encouraged me to apply. During the contribution phase, I really liked contributing to the ModECI project and found excellent feedback from my project mentors. My confidence grew and so did my skills. A month later, I got accepted into Outreachy and have since been contributing to the ModECI project – enjoying every bit of it. Take a chance on yourself, you are capable of more than you know.