Design a site like this with
Get started

Internship wrap-up

I have been the oldest in all my classes, right from ESL classes, community college courses, Hackbright Coding Academy and now in this internship too. My fear about this internship was that all the people that I would be surrounded by are of much younger generation who are very quick and agile at using smartphones and computers. I always felt if I would be good enough like the younger generation at coding.   

My mentors are very patient and helped until the interns are comfortable. Sometimes if I didn’t understand what my mentor was trying to explain, they would explain in a different way slowly until I understood. Sometimes they clarified in the Slack channel that I can go over slowly and multiple times. Amazingly they even provided Pair programming with me. I had struggled to understand Redux for several months before the internship started, but as soon as my mentor SageRoss explained it, I was able to understand. I am very fortunate to have both of my mentors.   

I learned so many skills. While creating React components, I learned the use of Switch, Routes, NavLink, pass the props, using mapStateToProps and mapDispatchToProps. In Redux, I have a clear picture of how actions, constants, and reducers work together. I also learned Ruby on Rails web framework (model, view, and controller) which is quite different from the Python web framework flask, that I had learned in the Hackbright boot camp. I was able to make a Home Tab component by changing the haml page with Ruby code in it. I also finished the other three tabs partially. Another topic that I learned was to create data in the JSON file. I gained more confidence in using git for branching, rebase, pull, stash, show, diff, show HEAD, merging, and push, I think I have acquired more knowledge than in last one year. It is like my veggie garden turning green everywhere in the spring season, that I have learned many skills in a short period of time. which is pleasantly surprising to me. I feel that I have gained more skills including debugging skills during this internship.   

After I finished my coding Bootcamp earlier, I felt overwhelmed with a lot of information and it took a while to come out of the state. But this Outreachy internship helped me to feel more confident and proud of myself. 

I have completed creating a campaign navbar which involved creating three components campaign_stats.jsx, campaign.jsx, and campaign_navbar.jsx file. In order to get data from Redux, I have created campaign.js file in reducers, campaign_view_actions.js file in actions, and campaign.js file in constants. I also finished the Home tab and the other three tabs are partially finished. 

I have planned to finish this project myself. That way I can improve my programming skills and gain more confidence. I have talked to my mentor about it and he agreed.


In Search Of Next Opportunity

It is almost the end of my first Outreachy internship and I am looking for another internship or apprenticeship position. I have developed some interest and skills on React and I would like to contribute to front end development. My skills are Python, Javascript, React, HTML and CSS. I would like to learn more advanced React and git concepts like branch merging, stash, git rebase and Mongo DB.

This Outreachy internship is my very first remote work. I don’t know if I have the required interpersonal skills to collaborate with team members. I have never worked in the office environment, but I am sure I have some of the required skills. I think I have learned a lot of these skills while bringing up my two kids.   

I have learned empathy the hard way with my kids. Though I have been living in the US last twenty years, I have not fully adapted to the local culture, while my kids seemed to have fully embraced. I have learned to be open-minded and adapt to new ideas and values. For the last ten years, I have been taking one or other classes at the local community colleges, which gave me skills to understand kids’ perspectives and the conflicts they go through while growing up. I think I am a better listener to my kids and empathize with them more easily than before. Having motivated myself into continuous learning beginning with ESL(English as a Second Language) classes nearly ten years ago, I think I have the motivation and perseverance to be a software developer.  

My mother-tongue is Telugu, a south Indian language and I have learned to speak and write the English language after coming to this country.  I also know the Hindi language enough to talk and understand. I can understand another south Indian language Tamil but I can’t converse easily.  

My hobbies are cooking and vegetable gardening. I have learned to creatively use the produce from my garden in daily cooking. Gardening taught me many things such as controlling pests without using chemicals, attracting good bugs with some native plants and learning to compost. Since I started growing my veggies I have developed sympathy towards farmers in general. 

Right now I am living in San Jose, California. I am willing to work anywhere within the San Francisco bay-area and I am not able to move out of this region. As I am a citizen, I am open to being a self-employed contractor. Looking for another internship or apprenticeship position after the first week of March 2020. I am willing to take up either a part-time or full-time position including working remotely.

Half way Through My Internship

I had planned to start my project in the third week of December and finish by the end of February. 

I reviewed the React code currently used for courses and the use of Haml in the current implementation of campaigns. I have completed converting the Home tab to React. The other three tabs are partially done. 

In the process of converting the home tab for the Wiki Education Dashboard, I was able to learn Redux, Ruby on rails and haml. 

Firstly, it took me time to understand the user flow for the campaigns on the Wiki Education dashboard. Next to discern the Redux state management took me quite some time.  The next challenge was the Ruby on Rails and haml files were new to me and it took a while to familiarize myself. Ruby on Rails is a server-side web application framework written in Ruby. Rails is a model-view-controller (MVC) framework that provides default structures for a database, a web service, and web pages. To understand sophisticated Rails default structure was another hurdle that took me extra time.

 Understanding errors in my code and tracking the source of errors consumed a lot of time and effort. I felt frustrated sometimes while debugging.  

Understanding the project, learning about Redux, Ruby on Rails and finding solutions for errors took a longer time.

I would like to complete the conversion of the remaining tabs without any errors.

Come on Board! Open source Outreachy Platform.

Outreachy software projects are for people who are underrepresented and this organization encourages them by providing three-month paid internships for those who meet the requirements. 

All projects in the Outreachy are open source projects, and their experienced mentors work with interns. These internships help interns with many skills that provide them with job opportunities in the tech industry. As a result of this more underrepresented people can participate and become financially independent. 

My project is “Convert all the Campaign and Program pages to React”. This allows me to use React which is the JavaScript library. I have developed a liking to React recently. As part of this project, the current architecture is being changed into a single-page architecture. React allows the usage of single-page applications. React creates an in-memory data structure cache which computes the changes made and then updates the browser. As a result of this project, the user experience on the Wiki Education dashboard will be much better with efficient navigation between tabs as the data is stored in the tabs after the initial render.

I feel very fortunate and proud to be contributing to the Wiki Education dashboard project because this is open to everyone around the world who wants to learn or teach. As my project is part of the Wiki Education dashboard, it has been exciting to work every day thinking that I am part of the solution to educate people who are interested in learning and those who want to share their learning. 

In the past month, I have learned Redux architecture to store data and use it in the React components. I also learned Ruby on Rails and haml files as this is required to convert haml files to React. 

Creating the data in the JSON file was quite challenging because the code uses Ruby on Rails and haml, which I did not have a good understanding before. I spent nearly two weeks to understand and then implement successfully.   

How I learnt to ask for help

My project is “Convert Campaign Pages to React”. In order to create Campaign pages, I had to analyze the user flow and data flow in the course.jsx file. It took a whole week to get an overall picture about the user flow.

I drew a user flow diagram to better understand the course.jsx file. That gave me ideas for creating the campaign.jsx file, but for that I needed to know how to get the data from the server side, and also understand the Redux data flow. Redux is another area I was initially very confused about. Boilerplate for Redux seemed very complex to understand. There are many terms in Redux interlinked such as reducers, actions, constants, thunk, selectors, mapStateToProps, dispatch,  mapStateToProps and connect. It took a while to get to know all the terms and how Redux sends data as props.

In Order to implement Redux data flow architecture, I watched React Redux Tutorial by Dev Ed few times and also read few docs. First I setup Redux by creating the action reducer and constant. Then created the path to match campaign route in the router.jsx file, so that it rendered the campaign. When the route matches the Campaign.jsx component mounts and it runs the componentDidMount. Here it calls this.props.getCampaign function. This function sends an API request to the server to fetch data for the campaign. When the request returns its data, the getCampaign function which is located in the campaign1_actions.js, takes dispatch as an argument. That dispatch is also a function which sends the received data along with GET_CAMPAIGN action type. The dispatch  gets handled by the Redux reducer. Here in reducer the switch statement based on the action type handles the received data and returns a new state. If action type doesn’t match it remains in the current state. It updates the Redux state and passes the props to the component through mapStateToProps. After I tried the above steps of Redux data flow pattern, I was not successful in getting the data from the server. 

I tried different ways, but that didn’t help me. My mentor helped me to debug using console log statements and understand every step of retrieving data from the backend including storing in the Redux and pass on the data to React component.

As reading is not my preference, I chose to watch some youtube material and code along with youtube tutors. I mainly learnt React, JavaScript and Redux by myself by following the youtube videos. While watching the youtube videos If I came across some new terms that I don’t understand even after tutors’ explanation, then I search to find more about those terms until I fully understand. In the beginning I was not aware of the checking the date and version of online resources and this caused a lot of confusion. Subsequently I have learnt how to choose the right material online. Few of my favorite resources are W3Schools, MDN web docs and React docs and I frequently use them. 

Due to my own lack of self confidence I found myself many times hesitant to ask for help. But I realized that, whenever I reached out for help, I have always received the support.My mentors Sage and Khayathi have been supporting me and they encouraged me to ask questions. I have learnt the lesson to ask questions without hesitation or anxiety whenever I am stuck.  

My journey to discovery of opportunities in Open-source projects at Outreachy

I wasn’t aware of the open-source projects until my son introduced me to the Outreachy program a few months ago. With no prior experience or knowledge of contributing to any of the free software communities, I became aware that I was using many open source platforms and products including Github, Atom, React, Wikipedia, and others as part of my software education. As a beginner developer, I realized that I have been relying on so many open-source platforms to read and learn on various topics. I also never imagined how large and complex these open-source projects were, how hard these communities work, how much time they invest, how dedicated they work until I went through my first micro contribution process. 

In order to qualify for the Outreachy intern program, I had to record a contribution. For a beginner like me, the Wiki Education Dashboard felt overwhelmingly big and intimidating to work. The initial setup process for the project was actually quite challenging for me than I had expected. But by the end of my contribution period, I learned about forking, ESLint, about commenting code and many other best practices. Overall, it was an incredible learning experience and a critical crash-course in contributing to open-source projects. This couldn’t have been possible without my mentors, Sage Ross, and Khyati Soneji. I’m grateful for their help, and for this opportunity through Outreachy. 

The Issue I chose took me a long time to solve until the day before the due date (Nov 3, 2019). I was worried that I would not make it because I didn’t finish my final application and Outreachy internship proposal timeline properly. Luckily somehow I managed to finish my application and submitted it on time. I was thrilled to see the mail that I was accepted for the internship. I never felt so happy in my life and felt confident and proud of myself. At the same time, I had mixed feelings of overwhelm and daunting about the next three-month internship program, because I have never worked before. I hope I can get through this program successfully.  

Introduce Yourself (Example Post)

This is an example post, originally published as part of Blogging University. Enroll in one of our ten programs, and start your blog right.

You’re going to publish a post today. Don’t worry about how your blog looks. Don’t worry if you haven’t given it a name yet, or you’re feeling overwhelmed. Just click the “New Post” button, and tell us why you’re here.

Why do this?

  • Because it gives new readers context. What are you about? Why should they read your blog?
  • Because it will help you focus you own ideas about your blog and what you’d like to do with it.

The post can be short or long, a personal intro to your life or a bloggy mission statement, a manifesto for the future or a simple outline of your the types of things you hope to publish.

To help you get started, here are a few questions:

  • Why are you blogging publicly, rather than keeping a personal journal?
  • What topics do you think you’ll write about?
  • Who would you love to connect with via your blog?
  • If you blog successfully throughout the next year, what would you hope to have accomplished?

You’re not locked into any of this; one of the wonderful things about blogs is how they constantly evolve as we learn, grow, and interact with one another — but it’s good to know where and why you started, and articulating your goals may just give you a few other post ideas.

Can’t think how to get started? Just write the first thing that pops into your head. Anne Lamott, author of a book on writing we love, says that you need to give yourself permission to write a “crappy first draft”. Anne makes a great point — just start writing, and worry about editing it later.

When you’re ready to publish, give your post three to five tags that describe your blog’s focus — writing, photography, fiction, parenting, food, cars, movies, sports, whatever. These tags will help others who care about your topics find you in the Reader. Make sure one of the tags is “zerotohero,” so other new bloggers can find you, too.