Introduction

Hey there, fellow earthlings! If you’re pursuing a degree in any of them STEM fields or related fields then this article might be of interest to you. I’m Saraswathi and I come from a city called Pondicherry in the Southern part of India. Growing up I was always a curious kid and had a whole lot of questions about the universe and the laws of nature – most of which could be answered by Physics and hence I was fascinated with Physics. My love for Physics extended to Math and when it came to choosing a major for college I was looking at various fields which were at the intersection of Physics and Math – turns out Computer Science was one of them (or Computer Science was used in most Physics and Math research) and the only one that was taught at our local University, so as fate would have it I pursed my Bachelors degree in Computer Science. While pursuing my Bachelors degree I was looking into ways to supplement my pocket money and like any immature college kid I thought investing it was the only sensible option (it was too little to invest). So I opened a small trading account – and started doing trades everyday. Although I didn’t make much, given my principal investment was low, I made enough to keep me interested in learning more. I started learning about technical indicators, also learnt that most trades in the real world are done by High Frequency Trading (HFT) Algorithms – thus I started looking into Big data analysis and Statistical models & Algorithms. I wanted to learn more about this and got an opportunity to work under a Professor who was doing research related to Big Data Analysis. This experience motivated me to pursue a Masters degree with a focus on Big data analysis and Machine Learning – I eventually went on to pursue a Masters degree in Computer Science with a Machine Learning and AI specialization at the University of Texas at Dallas. I’m currently working as a Software Developer at a company that provides software solutions for Electric Utilities across the United States and this is also my first job out of college. I work on various projects for the Operations Analytics team which includes software solutions that provide an integrated analysis platform for engineers and system operators of electric utilities (power companies). It uses AMI and detailed data to help users analyze system performance. I also work on Machine Learning projects related to Power consumption forecasting and other topics for electric utilities.

Software Development

career options

Having expertise in Software Development, Computer Science and Machine Learning opens up a wide range of career paths. Here are some common options:

1
Software Engineer
2
Frontend Developer
3
Backend Developer
4
Full-Stack Developer
5
Mobile App Developer
6
Game Developer

Software Development

 skills

What are the main hard skills you use on a daily basis in your current job?

1
Backend Development with Java and Spring Boot

In the domain of backend development, I apply my knowledge of the Java programming language and the Spring Boot framework to create scalable and efficient microservices. By utilizing Spring Boot's tools for building microservices, I develop backend systems that meet the requirements of modern applications. I also employ Spring Data for seamless integration with various database technologies, ensuring optimal performance. With a solid understanding of dependency injection and MVC architecture, I design backend solutions that are well-structured and maintainable.

2
Big Data Processing and Analytics

In the realm of big data processing and analytics, I utilize cutting-edge technologies to extract meaningful insights from large datasets. I apply Apache Spark for distributed data processing tasks, leveraging its capabilities for real-time data analytics and machine learning. Additionally, I implement real-time search and analytics solutions using Elasticsearch, enabling rapid retrieval and analysis of data. I also utilize Apache Kafka for stream processing, orchestrating data pipelines that facilitate continuous data ingestion and processing.

3
Continuous Integration and Deployment with AWS and Kubernetes

I implement continuous integration and deployment practices to streamline the software delivery lifecycle. I utilize Bamboo for continuous integration, orchestrating automated build and test processes to ensure the reliability and quality of software releases. With Kubernetes, I design and manage scalable containerized applications, enabling seamless deployment and scaling in dynamic environments. Moreover, I leverage AWS deployment and management for architecting cloud-native environments that optimize resource utilization and enhance application scalability and performance.

4
Frontend Development with Angular

In frontend development, I apply my skills in crafting engaging and intuitive user experiences using the Angular framework. I utilize Angular's features and ecosystem to design responsive and interactive web applications that meet user needs. I also implement robust state management solutions using NGXS, facilitating efficient data management across application components. With HTTP clients for server communication, I ensure seamless interaction between frontend interfaces and backend services, delivering dynamic and performant web applications.

5
Cloud Infrastructure and Services with AWS

I leverage AWS to design and manage scalable and reliable cloud-based solutions. I utilize AWS deployment and management to architect cloud-native environments that optimize resource utilization. With container orchestration using ECS, I design and manage containerized applications that integrate seamlessly with AWS services. Additionally, I utilize a wide range of AWS services such as EC2, S3, EKS, Secrets Manager, Systems Manager, OpenSearch, MSK RDS, and Lambda to build resilient and cost-effective cloud solutions.

What are the main soft skills you use on a daily basis in your current job?

1
Communication

Effective communication is crucial for conveying technical concepts and discussing project requirements, facilitating productive discussions, and ensuring alignment between technical and non-technical stakeholders.

2
Problem-solving

Strong problem-solving skills enable developers to analyze issues, identify root causes, and devise effective solutions, essential for troubleshooting technical issues and optimizing software performance.


3
Adaptability

Developers need to adapt quickly to new technologies and methodologies, embracing change, learning new skills, and adjusting their approach to meet evolving project requirements.

4
Teamwork and Collaboration

Strong teamwork and collaboration skills are essential for working effectively in multidisciplinary teams, contributing ideas, and communicating effectively to achieve project objectives.

5
Time Management and Prioritization

Effective time management and prioritization skills enable developers to meet deadlines, deliver high-quality work, and maintain focus on critical project objectives, ensuring productivity and efficient use of time.

Saraswathi

’s personal path

Tell us about your personal journey in

Software Development

:

My job search was quite a challenging one given the fact that I was looking for my first job out of college and a lot of job postings required a few years of experience. I have applied for countless job postings most of them related to Software Development, Data Science and Machine learning. Mostly I used LinkedIn to search for job postings, also used sites like Handshake etc. I also interviewed for many different positions with various companies of all sizes – this helped me to get over the fear of interviewing since I pretty much got used to technical interviews by that point. Most of my interviews involved three phases: first an online coding challenge, next a couple rounds of interviews with developers and finally an interview with the team lead and the team members in some cases. I would also encourage people to get some sort of practical experience – so the first few internships or job opportunities can be at smaller companies or startups as they can be a way to get into the industry. What we might have considered a dream job may not be the right fit for us; the universe might have a much more exciting experience for us! How I landed my current job is a bit of an unconventional story. I graduated in the Fall and was looking for jobs around that time. It was Christmas break and I had no interviews scheduled due to the holidays - so I was watching a Christmas Holiday themed movie and it was set in a beautiful green place with lush nature – I googled about it and found that it was Saint Louis, Missouri. So I searched for jobs in Saint Louis, Missouri that matched my qualifications and found only one job posting – to which I applied immediately and eventually interviewed and received a job offer too. Like I said the universe seemed to have something interesting for me which I might not have thought about – if not for that movie I watched :)

What would you tell your younger you regarding building your current career?

If I were to give some advice to my younger self, this would be it – might sound philosophical but its what’s helped me the most: Life is an experience; we are all essentially living different versions of the possible experiences offered by the universe. So, it's important to enjoy the process while moving towards our goal. There will be pretty challenging and hard situations thrown at us – but this only makes us stronger in the end. Being equanimous in success and failure is a valuable trait. Just do your duty to the best of your ability without worrying about the results – this itself will give us peace of mind.

Final thoughts & tips

Software Development is an ever-evolving field – so we are going to be forever students which is a good thing, after all if things are stagnant, it could get boring after a while. Machine Learning would lead to revolutionary advancements in the future – getting some exposure to new advancements in ML is great. Take calculated risks and follow your dreams. Just like it takes years of practice to become a skilled Swordsmen – so does any other field, in my case Software Development – so don’t give up hope and keep working at it. No one path is the correct path – there are multiple ways to success and happiness, so find your special path!

Saraswathi Shanmugamoorthy

Saraswathi Shanmugamoorthy

Software Development
Build Fellow
Open Avenues Foundation
Open Avenues Foundation

Saraswathi is a Software Development Global Talent Fellow at Open Avenues, where she works with students leading projects in Software Development. In her current role as a Software Developer at NISC, she focuses on crafting software solutions that offer an integrated analysis platform for engineers and system operators in the electric utilities sector.

Saraswathi has around 3 of years of experience in Software Development with a focus on full-stack development and cloud technologies such as AWS. Before her current position, Saraswathi contributed as a Research Assistant at the University of Texas at Dallas, concentrating on the security aspects of Software Defined Networks (SDN).

She holds a Master's degree in Computer Science. A fun fact about Saraswathi: She likes to sketch/paint in her free time.

More like this