Preface

Intel, a globally recognized technology company, has been at the forefront of innovation for decades. Established in 1968, Intel has become synonymous with cutting-edge semiconductor manufacturing and advanced microprocessor technologies. The company’s commitment to pushing the boundaries of computing has led to the development of revolutionary products that power a wide range of devices, from personal computers to data centers. Intel’s industry-leading processors and chips have earned a reputation for delivering exceptional performance, energy efficiency, and reliability.

With a strong emphasis on research and development, Intel continues to drive technological advancements that shape the future of computing. The company invests heavily in groundbreaking technologies such as artificial intelligence, machine learning, and quantum computing, positioning itself as a leader in these emerging fields. Intel’s dedication to innovation extends beyond hardware, as they develop and optimize software tools, libraries, and frameworks to maximize the potential of their hardware solutions. Additionally, Intel actively collaborates with industry partners, fostering an ecosystem of innovation and driving technological progress on a global scale.

Intel’s commitment to sustainability is a core pillar of its operations. The company strives to minimize its environmental impact through various initiatives, including energy-efficient manufacturing processes, waste reduction, and responsible supply chain management. Intel’s commitment to diversity and inclusion is also evident in its workforce, where they value a diverse range of perspectives and experiences. As a responsible corporate citizen, Intel actively engages in philanthropic efforts and community development programs, working towards creating a positive social impact. With a legacy of innovation, a focus on sustainability, and a dedication to inclusivity, Intel continues to shape the world of technology and drive progress in the digital age.

My position at Intel

I was an Embedded Systems Engineer, working on the Intel Movidius GPU technology.

Mainly, I was developing firmware for the Intel Movidius GPU. By firmware, I was specifically working on integrating different image filters and optimizing the current imaging pipeline.

Things that I’ve done during my internship:

  • I’ve optimized the image filtering code by improving the existing C and Assembly code.
  • I’ve developed three image filters for the GPU: gaussian blur, sobel edge detection, and a grayscale converter.
  • I’ve done research on how to perform color space conversions on the GPU, efficiently, from YUV to RGB, and vice-versa.

The internship was a great experience, and I’ve learned a lot of things about the embedded systems industry.

Details about my role

Here is a table that objectively describes my role characteristics:

Description Value
Workload Part-time
Work hours around 20 hours/week
Work schedule Flexible
Work type Remote
Start date March 2021
End date June 2021
Duration 3 months
Team size 12 (?) people

My experience at Intel

Working at Intel has been an immensely rewarding experience, and I consider it a fantastic company to be a part of.

One of the most captivating aspects of my time at Intel was delving into the inner workings of GPUs and witnessing their transformative capabilities in performing image processing tasks. Witnessing the practical implementation of a GPU and its role in image processing was truly fascinating.

Prior to joining Intel, my exposure to assembly code was limited to books and theoretical knowledge. However, being at Intel provided me with a unique opportunity to witness assembly code in action and its significant impact on optimizing code. The experience of observing how assembly code can be leveraged to enhance GPU performance and optimize code was genuinely captivating.

Intel employs its own specialized flavor of assembly code, which we utilized to optimize image filtering code specifically tailored for the GPU. This customization enabled us to achieve remarkable results in refining image processing capabilities.

During my tenure, I actively participated in comprehensive trainings focused on Git workflows and Intel’s cutting-edge Movidius GPU technology. These trainings enriched my understanding of efficient code management and deepened my expertise in harnessing the power of Intel’s advanced GPU technology.

Having the opportunity to write C and assembly code for GPUs brought me great satisfaction. Witnessing firsthand how these coding languages enable sophisticated image processing tasks was eye-opening. It completely transformed my perception of image processing, and I have gained a wealth of knowledge in this captivating field.

At Intel, I discovered the boundless possibilities that arise when innovation, cutting-edge technologies, and a passion for image processing intersect. The experience has been truly enlightening, and I am grateful for the invaluable insights and skills I have acquired during my time at Intel.

The interview process

The interview process was, honestly, rather easy in my opinion.

All that I’ve had to do was to complete an online assignment that contained around 50 questions about C programming, and embedded systems. The questions were not very difficult, but they were interesting, and they required some thinking.

One particular question that stuck with me was about the difference between a volatile and a const volatile pointer. I’ve never seen a const volatile pointer before, and I’ve never thought about it, so it was a very interesting question.

After I’ve completed the online assignment, I’ve had a short interview with the team leader, and he asked me some questions about my previous experience, and about my future plans.

What I considered valuable about this experience

Even though my time at Intel was short, I’ve learnt a lot of things! It was interesting to understand how a GPU works, and how it can be used to perform image processing tasks.

Furthermore, I’ve learnt how to write assembly code, and how to optimize code using assembly code. I’ve also learnt how to use a custom flavor of assembly code, which is used by Intel to optimize code for their GPUs.

I acquired valuable expertise in crafting assembly code and utilizing it as a powerful tool for optimizing code. This newfound proficiency opened doors to a world of possibilities, enabling me to enhance code performance through strategic assembly code implementation.

What I did not like about this experience

The work schedule was flexible. This means that I could work whenever I wanted, as long as I’ve completed my tasks.

This was like a double-edged sword, because even though I could work whenever I wanted, I’ve felt that the social interaction was lacking. I’ve felt that I was working alone, and that I was not part of a team.

We’ve had a meeting once every week, where we’ve discussed about the progress that we’ve made, and about the tasks that we’ve completed. This was the only time when I’ve had the opportunity to interact with my colleagues, and to discuss about the work that we’ve done.

Besides this, I’ve felt that everyone was working alone, and that there wasn’t much collaboration between the team members.

Why did I leave Intel?

I’ve left Intel because, mainly, I’ve felt that I was not part of a team.

Furthermore, at the same time, I was given an offer to remain with Microsoft, and I chose to stick with Microsoft.

Intel is a great company, and I’ve learnt a lot of things during my time there.

I will always be grateful for this opportunity.


Document revision history

Date (DD-MM-YYYY) Changelog
01-07-2023 Initial document release.