Hey all, I know it’s been a while since my last post and this one is going to be a little bit different. I thought I’d share what I have been up to this summer, some of the things I have learned, and where I am headed.
Here’s a roadmap of my summer:
- My Summer Internship Experience
- What I have Learned
- Preparing for Summer 2022 Internships
- Technical Interview Prep
- Developing my Network
- Searching and Applying for Positions
- My Goals for the Fall and the Future
My Summer Internship Experience 💯
Going into this summer, I really wanted to have a traditional Software Engineering internship but now realize how hard they are to land as a freshman. By the spring I hadn’t heard back from a single company and expected to return to landscaping. Suddenly, I received a call from the President of a small technology consulting company, a family friend I had been in contact with, asking me to work for his company and help out with some projects.
I ecstatically accepted the position, excited for the first job that would incorporate my problem-solving and technical skills💪.
The first week I had spent my time on a small project but I quickly dived head-first into learning the company's main technology, IBM’s TM1 Planning Analytics. TM1 allows for the ad hoc creation of models used for viewing multidimensional data, which is commonplace in the business world.
TM1 is a Business Intelligence tool that a lot of large companies will use to analyze their data, create accounting reports and plan for various scenarios. It also has its own unique scripting language used to create these models.
After spending a lot of time becoming comfortable with the technology and understanding its quirks, I moved to my next project. The project involved implementing updates on the company’s internal TM1 model. I made the updates on a dev environment and after enough testing, I deployed it to production, praying that it wouldn’t break😳.
My boss was satisfied with my work so he proposed a new project that involved linking a CRM api to the company’s internal TM1 model. I was finally given the chance to write some Python 😁 that would allow the TM1 model to sync with the api.
After this project, my boss thought it was time for me to get experience working for a client. The client was a large international business, similar to many of the company’s clients. I was able to produce various reports for the clients and get an inside look on how a business leverages TM1.
Overall, my internship experience was super beneficial. Due to the informal nature, I was able to assume responsibility rapidly as I learned the various aspects of the technology. I also had many chats with the President, understanding the day-to-day operations of the business.
What I have Learned 🤓
I have learned that despite only having one year of college under my belt, I can provide real value to a company. On my project where I made updates to the internal system, I watched as the Sales Lead of the company used my updates in real time. He was genuinely impressed with the updates and how they had made his job easier.
I also discovered that learning a new technology should not be made out to be so daunting. While I came in knowing nothing about TM1, in the end I was using it for real clients. My background experience in Python and other programming languages proved very helpful. The same problem solving abilities and mental logic carried over to TM1.
I was also able to bring in some of my own outside knowledge and apply it. The company had started to use Python for some simple data-loading routines but only a handful of employees understood it. I was able to help some co-workers on scripts that improved the efficiency of their work substantially. Python also provided an elegant solution for connecting the company’s TM1 model to its CRM api.
If you are hesitant to reach out to a company due to a lack of ability, take a second look at yourself. Before this internship, my only programming experience has been on personal projects and in school. This knowledge still proved useful in a professional environment. Coming from a younger generation that is more technology-immersive, we can provide a unique perspective to companies that drives value.
Preparing for Summer 2022 Internships
What I have learned from my experience freshman year applying for Software Engineering internship positions is that applications begin opening in late summer/early fall and send back results by the winter time. So I knew that I needed to start my preparation for the application process in the beginning of the summer.
Technical Interview Prep 👨💻
For Software Engineering full-time and internship positions, part of the application process is a technical interview. A technical interview is where you are given a problem that you solve with programming. Now these problems can range from very simple solutions to complex algorithms🤯.
Throughout talking to upperclassmen and professionals in the Software Engineering space, it has become abundantly clear that Cracking the Coding Interview by Gayle McDowell is the bible for technical interviews.
Every week I would block out time to read through Cracking the Coding Interview and attempt to solve some of the given problems. The first couple of chapters go in-depth about the interview process and give you strategies for solving the technical interview problems. The later chapters cover important topics like the Big-O and crucial data structures. These sections would include a nice overview and then problems to solve with solutions at the back of the book.
Overall, I would definitely recommend this book if you are new to technical interviews, want to learn more about them, develop a good strategy or go over important topics. I feel like the most important thing for me is developing the right approach to these problems.
Then it’s a matter of practicing the approach on technical interview practice problem sites like Leetcode or Hackerrank .
Developing my Network
Over this summer I also had the chance to reach out to some of my University’s alumni who are Software Engineers.
I was able to do this by using LinkedIn. I could filter based on my University and the position that I was looking for. Then I could send a personalized message introducing myself and seeing if the individual would be open to having a chat.
While the response rate isn’t 100%, I got more responses than I expected. I feel this is because we share the same University and people are genuinely open to conversation. It’s also easier than ever to set up a meeting with somebody online given all of the different platforms.
With that being said, the most important thing for somebody young in their career right now is to create a LinkedIn. More than just creating it, you need to populate your profile with your experiences and skills and then connect with people in your industry, especially from your University.
Not only am I learning more about the Software Engineer industry and where I might possibly want to go from these conversations, but am I developing important connections. These connections are important because when it comes time to look for a new opportunity, I can leverage my network to see what is available. For instance, when it came to start applying to internships, I was able to ask some of my connections for referrals which gives me a good leg up.
Searching and Applying for Positions
As I prepared for technical interviews and continued to expand my network, I also needed to keep track of the internship positions that I wanted to apply for and when they opened. The absolute best way to do this is with a spreadsheet.
I started with adding the big tech companies like Google, Microsoft, and Facebook. While these companies are very competitive to get a position at, they actually provide opportunities for freshman and sophomores specifically.
After going through the large tech companies, I then added FinTech companies, as this an area that really interests me. Then it was a matter of going through some helpful resources and vetting through opportunities that I was eligible for.
My favorite resource is the Summer 2022 Tech Internship Github repo that was created and updated by Pitt CSC.
For applications, volume is important as well as diversity in the types of companies you apply in. It’s similar to the application process for college.
As the application opening began approaching, I updated my resume with my internship experience and other experiences from my second semester. After every semester you should be updating your resume as you have taken more courses, possibly contributed to projects or have joined new clubs.
One of the downsides of applying to a lot of positions is that a lot of companies will send out Online Technical Assessments to every applicant. After my first batch of applying I had 6 of these OAs that I needed to complete, with each of them having time sensitivity.
My Goals for the Fall and Future 😎
It’s my goal to land a Software Engineering internship position for Summer 2022. Hopefully I will have a position secured by the winter but nothing is a guarantee. If I have learned anything, it’s to never remain complacent and to continue sending out follow-up messages.
Besides that, I want to continue pursuing the things that I am passionate about. Throughout the winter until now, I have grown increasingly passionate about Blockchain and Cryptocurrencies. I truly believe it will be a revolutionary technology that will upend the legacy system and provide greater freedoms.
I plan on covering these topics more in-depth on my Twitter and through other mediums. I want to focus on providing resources and information to people that are new to the area. I feel this is important because the biggest thing holding back Crypto from widespread adoption is education.
Overall, I am really excited about where I am headed. I have become more comfortable with being uncertain. College is an amazing place because it's a breeding ground for ideas and allows you to test out what really interests you. I have goals in the future but am open to exciting opportunities striking me.