An Electrical Engineer’s Introduction to Software Engineering

Anirudh Kuchibhatla
Oct 2 · 4 min read
Image for post
Image for post
Photo by Kevin Ku on Unsplash

This summer, I joined Xandr’s Data Platform Team as a Software Engineering intern. As an electrical engineering major, I’ve had some experience with coding through my classes and side projects, but it was generally for hardware and data science purposes and was never purely for a software role. The few computer science classes I had taken were largely focused on the algorithms and math behind computer science and not necessarily the latest tools that were being used to create software products. However, I’ve always been one who is open to opportunities to learn new skills outside of my comfort zone, which is why I applied to and accepted the offer to Xandr. Considering that I had my options as an electrical engineer for my career such as hardware engineering, data science, and software engineering, I felt it was important for me to explore different paths before committing to a field.

My role for this summer focused on web development, including both the front-end and back-end activity. The ultimate goal of the team’s project was to develop a user interface that would provide cost analysis of the Amazon Web Services (AWS) workloads of Xandr. My team was committed to monitoring AWS usage of different teams across Xandr to ensure the best utilization of resources and avoid idle time of EMR clusters to maintain cost effectiveness. Hence, my work required me to understand how a workload is defined and update the rule patterns for any orphan jobs. To do this, I created an interface that had a table with all rule patterns and associated information that could be easily edited and updated by my team members.

Having limited exposure in building user interfaces, this project provided me an opportunity to understand different web development tools and technologies. I began by focusing on the front-end aspect of the website since that’s where I had more experience. My first step was to understand the business behind it and available data. I then started with creating the table that would contain the required information. To do this, I spent some time learning how JavaScript could be used to make the different buttons I was making to insert, edit, and delete rows on the table. From the beginning I was told to provide a solution which can be easily customized by even those without front-end experience, so I created an easily understood layout and design with HTML and CSS to make it as user-friendly as possible.

Once I made a basic table with these capabilities, I began working on the back-end side of the website which would gather and edit the required data in a MySQL database. This required even more learning for me as I did not have previous experience working on the back-end of such projects. Though I knew SQL from data science classes at school, figuring out how to connect to the database to the server-side code and how to send data between the server-side and client-side code was the most difficult part of the project. After thorough research, I found that Node.js was the right tool to solve this problem. Using this, I was successfully able to connect both aspects of the project in a similar manner to the diagram shown below.

Image for post
Image for post
A diagram showing the different components of how a website accesses information from a server (Source: https://developer.mozilla.org/en-US/docs/Learn/Server-side/First_steps/Client-Server_overview)

Now that the table was complete, I had to create a login page for the table as we wanted to ensure that only certain users had access to the page. Luckily, many of the skills I had learned designing the main page translated into developing the login page, so it felt much easier for me. A key learning during this project was understanding how encryption worked, as I had to ensure that passwords would be safely stored and could not be maliciously accessed. With the website complete, it was time for deployment. The application was deployed in EKS, which I had no experience with, giving me the opportunity to learn about containerization and how to deploy application in EKS.

Overall, I really enjoyed my internship at Xandr. I was able to learn a lot about web development and the recruiting team hosted a number of events, making me feel a part of the company despite working remotely. I would especially like to thank both my manager Ramprasad Koya and teammate Siddharth Vadlamudi for their patience in helping me understand the different components of the project, and for pointing me in the right direction whenever I got stuck. Without their help I would not have made nearly as much progress as I was able to.

About the Author: Anirudh Kuchibhatla is a rising senior at Rice University studying Electrical Engineering. His favorite hobbies include gardening, video games, and reading books.

Xandr-Tech

Our latest thoughts, challenges, triumphs, try-again’s…

Anirudh Kuchibhatla

Written by

Xandr-Tech

Our latest thoughts, challenges, triumphs, try-again’s, most snarky and profound commit messages. Our proudest achievements, deepest darkest technical debt regrets (just kidding, maybe). All the humbling yet informative things you learn when you try to do things with computers.

Anirudh Kuchibhatla

Written by

Xandr-Tech

Our latest thoughts, challenges, triumphs, try-again’s, most snarky and profound commit messages. Our proudest achievements, deepest darkest technical debt regrets (just kidding, maybe). All the humbling yet informative things you learn when you try to do things with computers.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store