Skip to main content

Kourosh A.

Applied Sciences › Computing Science › Software Systems

Organization
Position Title
Experience Details
Semester
Fall
Spring
Year
2021
2022
Skills
Application and Interview Tips

Here are some more specific related tips for startups and big tech.

For startups:

  • Focus on your personal or academic projects where you have demonstrated your coding skills; as well as your ability to contribute to a big project. Avoid listing projects that take a few days to complete but instead focus on having something that you or your team have developed over a semester.

  • Try to focus on learning the skills and developing projects that are business related than just for fun. The more people can relate to your project, the higher your chances of landing an interview or getting an offer. For example, creating your own bug ticketing system similar to Github or Jira has more business value than creating a game because every engineer and manager has used a similar bug ticketing system before. Therefore, they can relate a lot more to your project because they understand it.

For big tech:

  • Practice leetcode style questions where you are given a problem such that you need to solve it as efficiently as possible. Pay attention to the time and space complexity of the data structures you use. Also, review objected oriented design and programming concepts.

  • The interviewer is mainly looking for your problem solving and communicating skills during the coding portion of the interview. Finding the solution is not the goal, so make sure to communicate your thoughts clearly and seek clarification when you need it.

Introduction + Preparation

Prior to getting an interview at IBM, I was practicing for interviews by focusing on general Software/DevOps related topics as well as the good old ‘Leetcode’ style questions.

I applied to roughly about 20 positions until I got my first two interviews which were in the first month of the semester, so I heard back quite early. For IBM, I ended up applying to various roles, and because of my experience in AI and Software, I landed a role as a Cognitive Software Developer.

The interview process was online which was a 1h panel interview with my manager and mentor. They asked me various behavioural questions, technical concepts, and situational style questions (e.g., what would you do if ... or how would you...).

Previous Experience

My previous experience was working at Ecoation, a startup company focused on agricultural tech strategies to provide better pest management solutions to growers around the world. I worked at Ecoation for about a year where I focused on setting up their analytics infrastructure to monitor the health and data of their systems.

I ended up working on a one year long project where I focused on various backend, testing, and analytics tasks. My project was developing different monitoring dashboards that displayed the health and status of various systems from machines to the web applications. We had the ability to monitor our data/logs in near real-time, and this project ended up helping to catch technical issues faster than usual. Combined with automated alerting, teams would receive slack messages if something would go wrong which made the investigation process even faster.

At startups, you usually end up owning a project and developing it. A benefit of that is you end up becoming an expert in certain tools and technologies, and the downside is that tasks can become repetitive. Therefore, if you are someone who likes working on new and challenging tasks, a situation like this might not be ideal for you. However, you can find other ways of getting exposure to new technologies by self-learning or asking your teammates to take over each other's tasks.

Preparation Tips for Future Students

So to land a position at IBM, this is what I did:

  • On my resume and Github, I listed projects that displayed my backend and AI skills which was closely related to the role.

  •  A ML certificate from a bootcamp also helped me stand out from the crowd. A Udemy or Coursera certificate will also suffice.

  • An active Github portfolio where I had displayed my projects with descriptions and images to demo them.

And if I want to give you a more personal tip, I want you to go to any interview with a mindset that this is just for practice, and regardless of what happens, you are going to walk out of that interview door with a ton of experience. This type of mindset really helped me to stay calm and positive during and after the interview without caring much about the outcome.

During my Experience
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.

Wrap Up

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.