From Solo Coding to Practical Implementation

Today, I’m going to talk a little bit about myself and my internship experience.

From Solo Coding to Practical Implementation

Hello. My name is Sailekha Sivasamy, and I am a Software Engineering intern on the Identity and Access Management (IAM) team. Today, I’m going to talk a little bit about myself and my experience at BigCommerce.

Related Posts: Meet 2022's Interns

I just finished high school and will be pursuing Computer Science for my undergraduate degree. After seeing the day-to-day life of a software engineer, I’m sure that this career will be even more exciting than I anticipated in high school.

As a kid, I saw my parents in front of their laptops the whole time when working, and looking at this, I felt like I wanted a job that was more engaging — one where I can communicate with people and be more connected. During COVID-19, I realized that many people had to utilize their laptops for work, even teachers and doctors. I always knew that technology would keep improving and making people's lives easier, but I didn't realize how much of an impact it would have until I saw it firsthand.

I saw a LinkedIn post from a friend who had just completed an internship at a company as a Code2College (C2C) Intern, and she was in high school. I was intrigued about the program because I thought only college students could get internships. I thought that an opportunity to actually add to a software or product in a team setting was awesome as until then I had only done programming assignments and personal projects. I researched C2C and filled out an application to join a class. Then I completed the Web Development Class, Bootcamp 1, and Elite 101 and Elite 102. These two classes are solely designed to prepare students for an internship with training in Python and mySQL.

After a few interviews, the IAM team at BigCommerce offered me a position.I was in awe because this goal I had set for myself was finally coming true, and being able to do this before college still feels like a dream.

Open Roles: Explore Your Next Engineering Opportunity

I was really grateful for this opportunity and was ready to give it my all.

Sarvesh Pandit, Software Engineer II had sent some resources to review React — the framework for the Javascript programming language. I was a little rusty because I most recently worked with Python and Apple Swift, but my web development experience helped me get the hang of React after some practice.

My First Two Weeks

During my first week, my fellow intern Peace Amichoh and I completed the onboarding process, which included security awareness training and a warm welcome from our teammates. Then, we started setting up the local development environment with our mentors Michael Lopez , Software Engineer II and Sarvesh. This was a pretty long process, and we had several meetings to go through. Thanks to Michael and Sarvesh, Peace and I didn’t have any confusion because our mentors guided us through every part.

The Main Project

As BigCommerce engages with larger merchants who might have multiple stores under their account, we decided to clean up the way users can manage their own profiles across those multiple stores. We decided to move this functionality from the control panel where merchants currently access these profile settings and opted for a shift to the Accounts Center where it would be easily manageable for a given user. Peace and I worked on the front end, a few client side validations and accessing user data from the backend for two pages in the ‘My Profile’ page, which includes the Profile Information and Change Email subpages. I worked specifically on the Profile Information subpage.

The first ticket’s code was the simplest, but in the beginning, Peace and I were really lost.

I kept asking myself, “What does creating a route even mean?”

We both researched how to do this with Javascript and then Next.js. Finally, towards the end of the day, we discovered a revelation: a video that taught the basics of Next.js. Michael and Sarvesh went through each step of creating a pull request, which has helped throughout the internship. Understanding how to use the terminal and make pull requests was very interesting and totally different from the few times I had used GitHub before. Further, being able to use resources for general applications of a programming language, in this case Typescript using the React framework, was something I’ll take with me to the next stage of my career.

Learning from a Mistake

Once I started my second ticket, I followed this to-do list that my mentor provided on creating a pull request and a Jira ticket. I coded some part of the present Footer component, committed it, and started working on the third ticket following that same to-do list.

But, I made the mistake of not creating a new branch. I branched off the second branch which caused merging conflicts. Later, I learned that the to-do list for the terminal was just for the first ticket, so I made sure that everything was up-to-date with some other commands afterwards.

During my second ticket, I learned the value of creating reusable components, instead of having a common piece of code rewritten across multiple parts of the application. I learned that it's better to create a reusable component, which can be used throughout the separate code files to help keep the application maintainable over time. It also improves the readability of the application and makes any future modifications easier.

Meeting the Team In-person

Towards the last weeks of the internship, I had the opportunity to meet some team members at the Austin, Texas office. David Hauser, the Senior Vice President in Engineering, hosted a session where we learned more about BigCommerce and how we can be better engineers in the future. One point I took away after this discussion was that in terms of experience in the software engineering field (or any field), there are people at different levels of skills and experience, so communicating with that in mind is important in order to get messages across.

Additionally, it's okay to be confused when I communicate with professionals who are more experienced than me. The important thing I need to remember is to ask questions when I don't understand a concept or topic.

Gratitude to the Team

Thank you to Michael and Sarvesh for the learning sessions about GitHub, Testing, BigCommerce, and programming. Also, thank you to Caitlin Stewart,Senior Software Engineer, for the weekly sessions where she helped me so much with coding and advice on better communication. And last but not least, I am grateful that Kristof Redei, Engineering Manager, was a really understanding, friendly leader who totally broke the idea of how I imagined a manager. Before this internship, I expected most managers to micromanage everything that goes on in the team and have a stern personality.

One technique I learned from Caitlin is called Rubber Ducking, which is when you present work to a rubber duck (or other object) before you speak to a human. This allows me to correct any parts that are confusing beforehand, which is really beneficial for a software engineer or any professional.

Another tip Michael and Caitlin shared is to teach what I have learned in order to know the concept even better. I have heard of this study technique, but realizing that it can also be used in programming was really interesting. Sarvesh and Michael also helped Peace and I fix coding errors during the process of completing tickets by jumping into a quick meeting on short notice.

Final Thoughts

To wrap up, here are my biggest learnings from this experience:

  • Making an impact - I coded things that enabled me to see the something that can be used for people all around the world. This is the reason I decided to pursue Computer Science.
  • Web Development Workshop for students - I was going to cover HTML, CSS, and Javascript only initially, but will add a beginner level project with React to the curriculum since it is such a popular framework.
  • Improve React understanding - Learn the framework at a deeper level such as knowing hooks, rendering, and other technicalities for faster development in the future.

Thanks again to everyone who helped make this such a positive experience. I am excited for what lies ahead in my career.

About Code2College

Code2College is driving transformational change by placing historically underestimated high school students into paid, technical summer internships. Through a volunteer-based program model, we deliver after-school coding education and workforce development training to thousands of students across the country. Born and scaled in Austin, TX, we have been changing lives and creating a more equitable future since 2016.

BigCommerce has partnered with Code2College since 2022 to place high school students into paid technical summer internships.