Yersultan Sapar, previously a student of the National School of Physics and Maths, successfully graduated from the University of California Berkeley and is currently working at Apple.
Recently, we have been often witnessing our compatriots going abroad and making great achievements. Yersultan Sapar, a young software engineer who made his dream come true at Apple, is one of the talented youth.
Answering the questions of Forbes.kz, he says: “The connection of technology with other fields leads to incredible outcomes.”
F: What prompted your interest in programming? At the age of 10, you made the first “non-pressing button”. What encouraged you to do it? What inspired you?
- I think that my desire and inspiration for programming at the age of ten was prompted by the interest in the outside world that came from the inside and the passion for education. As we grow older, it is a common challenge for all of us not to lose this childlike excitement, but to further strengthen it. As a child, I was always fascinated by how the “computer” my sisters used worked, who created the programs inside, and how. Through films and cartoons that I watched and books that I read I got really keen on the topics of electronics, robots, and cybernetics. I was interested in the impressive properties of technology, its use in our lives and modern design. I got to create a small show with toys called “Little Magician's Collection” and give my loved ones a unique happiness and wonderful experience through art, performance or technology. Since then, I have chosen technology as my special “magic”.
My parents, who saw this, supported me and gave me the freedom to develop my interest, and looked for opportunities to advance.
- Did Computer Sciences at school help you?
- Of course, Computer Sciences at school was special for me. Since the 10th grade, I wanted to join the Computer Sciences Olympiad group at the National School of Physics and Maths. My teacher at that time Yeskendir Sultanov completely changed my opinion about programming: before that, software engineering, for me, only consisted of creating an interface and implementing simple logic, while Yeskendir teacher's lessons were about algorithms, decision speed and efficiency. It was the first encounter of computer science and mathematics for me, who was not very interested in mathematics until the School of Physics and Maths. Then, I gradually began to understand the full picture of real computer science. My Physics and Math teachers made an invaluable contribution to my scientific outlook. I recognize the initial education I received at school as an indispensable foundation for my further development at a higher educational institution and at work.
- What is your first proudest achievement?
- In 2017, I had the opportunity to participate in nFactorial Incubator, project of Arman Suleymenov. More than 700 software engineers from all over the country applied to participate there, and about a hundred of them passed the selection. The goal for each of us was to invent and build our own mobile application within 12 weeks.
My project, Platonic AR, was dedicated to learning stereometry, which I was really interested in, even though I had difficulties learning it in school. This program uses augmented reality (AR) technology to show figures in the reporting space as part of the world around us. Platonic AR won the grand prize at the Demo Day competition at the Incubator. At the time, Apple was just releasing its AR technology called ARKit, and now it is taking shape as a different space computer, a platform called Vision Pro.
While working with Platonic AR, I learned how to program, think about design, public speaking, and more. A crucial point for me is that this interesting solution being based on new technology inspired me and helped me to work hard. Overall, I can say that during nFactorial Incubator I found many friends, learned and grew with them.
- In your opinion, what is the best place to learn programming language?
- A person who is really interested in something and wants to learn will always find a way. Whether they learn on their own or enrolls in special courses, it’s important to have a strong initiative. The main principles of computer science and mathematics do not change from year to year, and a person who has mastered them can master any programming language. Basically, a programming language consists of special words that everyone can read, this is a special abstraction made for our convenience. Humanity built it for itself. Any language is, first of all, a tool to convey the intentions of the programmer to the computer.
In any profession, we need a teacher, a person who will help us by shining a light along the path we set out on. At the University of Berkeley, I worked as a Teaching Assistant for two years in the largest Computer Science course. We helped our professor - we learned to teach, check homework, conduct exams. The course had over 1,200 students each semester with special workshops to teach the material to all of them, and each Teaching Assistant taught about thirty students individually each week. We also learned Bloom's 2 sigma problem, taught students in small groups, and helped them individually. Students also trusted and looked up to the mentor, who was only a couple of years older than them, studied at the same university, and was able to overcome the difficulties of those classes.
Therefore, I think there is nothing better than learning from people who can teach with maximum personal attention and care. Note: Learning to program and being able to teach and impart that ability to others are two completely different skills.
- So, the role of the teacher (supervisor) in learning programming is special, isn't it?
- Certainly. I received my first upbringing and education from my parents. The person who contributed a lot to my education and professional development is, first of all, my mother. Fortunately, there are many people who have helped me and taught me a lot, and are still supporting me. Some of them teach programming, others helped me in getting higher education. Thanks to them, I have achieved some of my dreams and I am also being interviewed by you (laughs)...
As for programming, from the 5th grade and up I studied under Vasily Serbin. We made several research projects and won prizes in a number of regional and national competitions. During the development of those projects, I acquired critical skills such as thinking about the external interface of the software product, designing the system architecture, and being able to defend the project in public.
In general, when teaching programming, it is essential for the teacher to be able to convey the computational thinking ability to the student, and for the student to be able to learn it correctly. Technologies, programming languages, paradigms change every year. In the meantime, I want to let teenagers that it is important to learn how to find answers to the following questions: “How to solve a general problem by programming?”, “What is the price and performance of that solution?”, “How can this issue be considered as a problem?”, “How can I build the first prototype?”
- What other advice would you give to the younger generation who are entering the field of programming? How should they start their journey?
- The most interesting way to learn a lot is to create engaging and necessary programs for yourself. This process takes you through different fields and tests and teaches you a lot faster. A basic knowledge of general computer science and awareness of related sciences is a must.
In order to find out what you are interested in, first of all, you should pay attention to several areas, evaluate and determine your enthusiasm: artificial intelligence, cybersecurity, networks, compilers, algorithms and many others. In addition, when technology is connected to other fields, the results are unbelievable. As I said above, mathematics, geometry, physics, information sciences are the closest to computer science. Of course, we can also become better programmers by understanding the humanities, because whatever technology we design, it must first consider human nature and serve humanity.
- How long does programming usually take? Have you ever reached a dead end?
Personally, I consider programming as an art. Be it any project or problem, it comes with peculiar difficulties and requires different time. For example, during research or proof-of-concept, it's best to build a program quickly, because your main product is not the final program, but the knowledge you've learned while developing it. And the image of the idea is clear, but if the rest of the work needs to be done properly, it is better to move slow and steady. At this point, more attention should be paid to code quality and architecture.
Of course, there are times when you don't find a solution to the problem right away and think about it for a while. In this case, I like to go outside, refresh myself, and walk outside for a while...
- In an interview, you said: “My idol is Elon Musk, I like his enthusiasm for work”...
- We can learn a lot from our brother Elon Musk. According to him, concern about the future of humanity is his main motivation. We must have an unquenchable fire and indefatigable courage to solve complex and difficult problems and problems. Without such concentration, the probability of success is very low.
I know programming as an art, I said above. In this context, we can work not only on the technical side of programming, but also creatively. The language of our country, the history of our country, the culture and traditions of our people - all this is unique to us. I believe that it is important not only to learn from the world's best, but also to pay attention to our own unique experiences and principles.
- Where are you currently working and what kind of job do you do?
- Right now I am a software engineer at Apple, we create devices for people (iPhones, Macbooks, Apple Watches, newly released Vision Pro, etc.), services (Apple Music, Fitness) and special apps for them.
I have been working here for a little over a year. Before that, I had two internships at Apple. First internship was in the group called Core Data, they are responsible for storing information on all devices (for example, photos on the iPhone, Contacts are all stored with Core Data). My second internship was in the development of the Apple Watch, where I worked in a group called Watch Telephony. They are responsible for the basic settings of the Apple Watch, such as making and receiving calls, mail, messages, and more. Before that, I trained at a streaming service called HBOMax, and at a small company called Ipsy. There, I created projects that develop internal infrastructure, user profiles and system security.
Now, my primary task is to design software, think about their architecture and plan in advance. We work with other teams (software engineers, designers, marketing, electrical engineers, etc.) to develop projects year after year and prepare for releases.
I work in an organization called Special Projects Group. It deals with Apple's scientific research and moonshot projects, which are not currently possible but can be realized in the future. Unfortunately, I can't say much about it. Apple is very careful to keep its projects secret and surprise the world.
- How many apps have you placed on PlayMarket/AppStore so far? Are you happy with your work?
- In 2017, only my Platonic AR from the nFactorial Incubator was placed in AppStore. After the Incubator, I focused on education, teaching, research and tutorials. As Apple employees, we are prohibited from submitting applications to AppStore because we have access to Apple's internal systems, which means we cannot work as independent programmers.
And I really like my job at Apple because we're working on unsolved problems in the world.
- Where do you see yourself in the future? You are aiming to create a “life-improving product”, how is your plan coming to fruition?
- My project while working on the Apple Watch team was to build voice-over-ip (VoIP) calling settings into the Watch using an application called CallKit. That is, now any modern smartphone can make and receive calls over the Internet. This feature was not available in Apple Watch. During my internship in 2021, we developed the first prototype of a watch that can work with CallKit and made a presentation to the management. Then technology of calling from one watch to another clearly showed its potential and possibilities. Even after my internship ended, the team continued the project and unveiled new Apple Watch features to the public at Apple's WWDC 2022 Conference.
Outside of programming, we are involved with Digital Nomads Kazakhstan (DNK), an association founded by Kazakhs living abroad (I can even say my friends and colleagues). The main goal of this group is to unite compatriots working in well-known companies abroad, share what we have learned, and jointly contribute to the development of the IT industry in our country. Whenever we have time, we hold meetings with DNK members for students of BINOM schools and tell them about studying in foreign universities, scientific research, and choosing a future profession.
In general, Platonic AR, CallKit on the Apple Watch, projects I've done as part of my previous internships (HBOMax, Ipsy), meetings for students, teaching at the University of Berkeley - I think any of these can be considered a “Life-Improving Product”. And I hope that in the future I will continue to participate in projects that bring happiness, prosperity and knowledge to people.
Photo: from Yersultan Sapar’s personal archive
Author: Ainura Daribayeva