Orientation and First Weeks
The first few weeks are crucial in terms of your success at the job and making a first impression. Nobody expects a lot from you when you get started, but in a couple of weeks, you are expected to catch up and deliver on tasks.
In the first week, I was mainly reading wikis, setting up my dev environment locally, and requesting access to various repositories and documentations which are classified for safety reasons. In the second and third week, I ended up working on a high visibility ticket which was finding and fixing the areas in the code that was slowing down our application.
The optimization ticket really helped me understand different parts of the code and to feel confident that I can contribute to a bigger project. Back in Ecoation, I was owning a project that I developed from scratch and it was significantly smaller in size compared to what I am doing at IBM. When I first joined IBM, I walked into an already implemented project, and I had to read other people's code and improve it.
I also had a few mentors who would answer my questions through Slack or call which was great. I would also meet with my team lead every week for any product related questions which helped clarify new things early on.
Day to Day
The first thing I do in the morning is to go through my emails and Slack messages prior to scrum meetings where I have to discuss the progress of my tasks and anything that is blocking me. After about half an hour, I start with my tickets which can be either developing a feature or fixing a bug or even investigating data related issues. My work schedule is also pretty flexible since it is remote, so as long as I put 8 hours in per day, it is fine. It is recommended to spend core hours during a time that your team is available just in case you or your team has any questions.
Learning and Adaptation
At a startup, there are more people that know the product inside out because the project is usually smaller. However at a big tech company, not everybody knows the answer to a question, so sometimes in order to solve your problem, you have to go through multiple people each with different expertise. Therefore, communication and people skills are vital to success at big tech companies. In addition to the size of the projects, big tech companies like IBM have products that are much bigger in size, so new projects are often an add-on feature to an already existing product.
At a startup, you sometimes own a project and end up developing it from scratch, so the coding style and the tools that you use is much more flexible. However, at big companies, you cannot use any tool because it is important to use the tools that are company approved such that they are open source or license is obtained by the company. Aside from this restriction, coding style also matters, but as long as you use Object Oriented programming and design, you would be fine.
Accomplishments and Challenges
I feel like my work at Ecoation had a lot more visibility because it involved visualizations and analytics dashboards. However, at IBM, I was more like a role player trying to help with tasks mostly around Backend. Some examples of these tasks include implementing and testing APIs, writing code to create graph based data (i.e., nodes and edges), performing code optimization, writing database queries, and writing data-validation scripts.
Depending on where you work, you have to find a balance between quantity and quality of work. In startups, you mostly focus on quantity and being able to deliver fast. However, at big companies, the main goal is quality. Therefore, you might receive more feedback on your work during code reviews at big tech companies compared to startups. Just make sure to look at these comments as something that you can improve on, and do not worry about how your teammates might think of you. Everyone on your team knows that you are learning as an intern, so take advatange of this opportunity to learn.
Going from a startup to a big tech company is definitely a unique experience. The type of work you do is still similar, but how you approach work might slightly vary depending on the company. I believe transitioning from a startup to big tech is great because it gives you an experience of what the two different environments look like. Startups are known to be smaller and you get a chance to connect to people more, and it's still the same thing at bigger companies, you end up getting to know your teammates pretty well.
I worked at Ecoation in person, but for IBM, it is remote work. I'll be honest, I sometimes miss some elements of in-person work such as the lunch and game events that my team and I used to do weekly, but now that I'm working at IBM, I feel like remote work is something that I cannot give up; it saves me time and gives me the personal space that I sometimes need.
In my opinion, anyone can work at a big tech company, even if you have no technical experience. Just make sure you apply some of the tips I included above to showcase your academic skills and projects to better stand out from the crowd.