← Back to All Placements

Kayvan Faghani

Dynamic Linker Software Engineer

Apple
United States of America

Summary

My placement started in April and ended in September. I worked as a software engineer writing tooling for the dynamic linker and the shared cache on Apple platforms. I was given my own project to have ownership over and concluded my placement with a presentation to my management.

Role and Contributions

As a software engineering intern I had the opportunity to work on my own project, which I wrote all the code for. I developed an internal tool for Apple devices, which involved working on Shared Caches and the dynamic linker (dyld). Implemented in C++ with focus on memory and runtime optimizations for resource-constrained devices.

Technical Skills

I learned how to use debuggers like lldb and profiling tools like instruments to measure the performance of my project. I also used my knowledge of assembly to help debug my projects code. I learned about how the dynamic linker works and resolves symbols, how the shared cache significantly improves performance, and how these both integrate with Apple's operating systems.

Professional Skills

I learned how to work effectively within a team, working with other engineers in order to learn what I needed to get my project done. I learned how to take on large problems by breaking the problem into small chunks and then figuring out what information I need to complete each chunk. I further developed my communication skills through the presentations that I had to give to my management, this required me to think about how to put together a coherent presentation and how to effectively present data.

Tags

Software