<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Cengiz Ozel</title>
        <link>https://www.cengizozel.com</link>
        <description>Articles by Cengiz Ozel</description>
        <language>en</language>
        <atom:link href="https://www.cengizozel.com/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title>Releasing My Python Library: LogiDrivePy</title>
            <link>https://www.cengizozel.com/pages/articles/releasing-logidrivepy.html</link>
            <guid>https://www.cengizozel.com/pages/articles/releasing-logidrivepy.html</guid>
            <pubDate>Sat, 09 Dec 2023 00:00:00 GMT</pubDate>
            <description>The process and outcomes of developing a Python library with no prior experience</description>
            <content:encoded><![CDATA[<p>When I first started programming, I quickly learned the power and efficiency of using libraries to enhance my coding experience. In the realm of Python programming, there seemed to be a library for everything: NumPy offered vectorized array calculations, Matplotlib enabled data visualization, Pygame was used for game development, PyTorch for building machine learning models, OpenCV for computer vision tasks, NLTK for natural language processing, PyAutoGUI and Selenium for automation tasks, and Tkinter for creating user interfaces. The list goes on. Each of these libraries provided access to specialized tools and functionalities tailored for specific tasks. Reflecting on this vast array of available resources, it made me think that creating my own library might be an absurd plan, potentially redundant and inefficient given the rich ecosystem already in place. As my programming experience progressed, I realized the usefulness of niche and even obscure libraries to fulfill my project requirements.</p>
<p>One such instance occurred during my research, where I required a library to facilitate webcam face streaming for Unreal Engine&#39;s MetaHuman characters. I discovered <a href="https://github.com/JimWest/PyLiveLinkFace">PyLiveLinkFace</a> on GitHub, which enabled real-time facial expression transfer from webcam input to the MetaHuman characters. This experience made me realize the immense power and potential of open source libraries created by individuals or small teams to meet the needs of a larger developer community.</p>
<p>This revelation altered my approach to coding. Whenever I created a helper file for use in multiple projects, I began to ponder if that code could be reimplemented or reused for a broader set of use cases that could benefit more people. This shift in thinking materialized when I embarked on a personal project to collect training data for a self-driving machine learning model, utilizing the BeamNG.drive Python library. To develop a realistic model, I aimed to control the car&#39;s steering wheel rotation programmatically rather than relying on keyboard controls.</p>
<p>Unfortunately, the existing libraries did not provide this functionality, so I started diving deeper into game development techniques to figure out how games achieve steering wheel control. After some research, I discovered a Unity-based C# SDK that offered this capability. Inspired by my desire to code in Python, I decided to develop a Python module that would bridge the gap between Logitech steering wheels and Python scripts.</p>
<p>Thus, <a href="https://pypi.org/project/logidrivepy/">LogiDrivePy</a> was born.</p>
<p>The development process was a learning experience from the start. I familiarized myself with standard versioning practices, distinguishing between beta and alpha versions and determining which numbers should represent specific features or changes. To ensure the module was accessible to others, I adhered to the MIT license and prepared the necessary documentation for publication on PyPI, the Python Package Index.</p>
<p>Testing and debugging on different computers was crucial for ensuring compatibility and addressing potential issues. An interesting development occurred when a Global Senior Automotive Solutions Architect at AWS posted an issue on GitHub related to my module. The issue was resolved quickly, which was a significant moment for me as it underscored the extent of my module&#39;s reach and its potential impact. As of now, LogiDrivePy has 10 stars on GitHub, and I am excited to see the varied purposes for which people will utilize the module.</p>
<p>The release of LogiDrivePy has reinforced my belief in the importance of open-source contributions. This experience has taught me that small projects can impact the developer community. Moving forward, I look forward to contributing to the open-source world, developing useful tools, and embracing collaboration, learning, and innovation through shared knowledge and expertise.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Exploring ACII 2023 at MIT: A First-hand Perspective</title>
            <link>https://www.cengizozel.com/pages/articles/acii-2023-at-mit.html</link>
            <guid>https://www.cengizozel.com/pages/articles/acii-2023-at-mit.html</guid>
            <pubDate>Thu, 14 Sep 2023 00:00:00 GMT</pubDate>
            <description>Reflecting on my inspiring experience at the Affective Computing conference in Boston</description>
            <content:encoded><![CDATA[<p>For over a year, I have been part of research involving an online learning platform, <a href="https://arxiv.org/abs/2308.03022">SAPIEN</a>, that creates diverse and emotionally responsive virtual agents offering a highly personalized interaction experience in various domains and providing actionable feedback. I was fortunate enough to have this work featured in the demo track of the 2023 International Conference on <a href="https://acii-conf.net/2023/">Affective Computing and Intelligent Interaction</a> (ACII) at MIT this week. The entire trip to Boston, including the flight, conference fee, in-city transport, and food expenses, was generously covered by the department. I was eager to observe what work other researchers in the field have been conducting, and the whole experience made me critically reflect upon myself as a researcher and think about my future endeavors.</p>
<h3>Day 1: Saturday, September 9</h3>
<p>The flight was on a Sunday, and I wanted to take full advantage of my time there by doing my assignments early, which led me to stay awake for nearly the 30 hours leading up to my flight. I made it to the airport on time, however, the flight got delayed several times for 3 hours. I turned the delay into an opportunity, using the time to catch some much-needed sleep while hoping the flight wouldn&#39;t get canceled due to weather conditions. I made it to Boston and arrived at the Airbnb at around 8:30 PM. I was exhausted, but I had to get some work done before the next day. I was able to get a good night&#39;s sleep and woke up early to get ready for the conference.</p>
<h3>Day 2: Sunday, September 10</h3>
<p>Before entering the venue, we arrived at the MIT List Visual Arts Center and walked to the Stata Center. After an hour of touring, we went to the Opening Reception at the MIT Museum where I got my first taste of the conference. I was able to meet and talk to many researchers in the field, and I was surprised to see how many people were interested in my work. There were also interesting demos on display, including the optical parametric oscillator of a squeezed light generator used for gravitational wave detection, an interactive application that lets you type paragraphs and screens your likelihood of having neurodegenerative diseases, and the GeneChip Scanner, which is used to scan DNA microarrays. I was able to learn a lot about the research being conducted in the field and was excited to see what the next day had in store.</p>
<h3>Day 3: Monday, September 11</h3>
<p>This is the day the conference officially began at the MIT Media Lab. There were lots of interesting presentations in different topics. The presentations and papers were organized by their topics, and each topic had its own schedule, so people could choose which presentations they wanted to attend. On this day,  I attended presentations on &quot;Large Language Models&quot; and &quot;Emotion Recognition,&quot; and a panel session on &quot;Ethical Affective Computing in Practice,&quot; featuring panelists such as Amanda McCroskery from Google Research, Andreas Häuselmann from the eLaw Center for Law and Digital Technologies at Leiden University, Javier Hernandez from the Human Understanding and Empathy (HUE) Group at Microsoft Research, and Sherry Turkle from the Massachusetts Institute of Technology. I was able to learn about the latest research in the field and talked to some of the researchers about their work. In the evening, we went out to take a stroll on Massachusetts Avenue and had dinner at a Chinese restaurant. The next day was going to be our demo, so we went back to the Airbnb to do some more development and get some rest.</p>
<h3>Day 4: Tuesday, September 12</h3>
<p>This was the day of our demo, but before that, some of my labmates had a presentation on another project from our lab, so I attended the presentations on &quot;Virtual Reality and Agents&quot;. My labmate&#39;s presentation was on using virtual agents for end-of-life communication training for medical students, which got a lot of attention from the audience. I am also part of the next iteration of this project which hasn&#39;t been published yet, so I was excited to see how the audience would react to it. After the presentations, we took a break, and then it was time for our demo. We had a desk with our laptop connected to a bigger monitor as well as speakers. We had a lot of people come to our demo to try it out. I was able to talk to many people about our work and got some great feedback. it was an amazing experience to be able to present our work to a broad audience that came from all over the world.</p>
<p>After the demonstration, the boat cruise conference banquet began, which kicked off from the Boston Inner Harbor. Interested attendees boarded the bus and we navigated through Boston&#39;s heavy traffic, taking approximately an hour to reach the boat. The vessel was quite good and ensured we all had an enjoyable time. It had been organised with dinner, drinks and a music-spinning DJ. We also engaged in a game of foosball. The boat journey offered a view of the Boston skyline, which everyone enjoyed. Once the banquet wrapped up, we returned to our Airbnb for some sleep.</p>
<h3>Day 5: Wednesday, September 13</h3>
<p>On the final day of the conference, the heavy rain caused us to depart later than planned. We visited the MIT main campus, starting at the Rotch Library and touring the main quadrangle. We then attended the closing ceremony at the MIT Media Lab. Originally, we had planned to walk around the Harvard campus afterward, however, the intensifying rain compelled us to return to our Airbnb. I was pretty tired at this point and spend the rest of the evening relaxing and getting ready for the flight the next day.</p>
<h3>My Return and Reflections</h3>
<p>The next day, I woke up early to catch my flight. I was able to get some sleep on the plane, and I was back in Rochester by 2:30 PM.</p>
<p>The ACII conference was not only a refreshing experience but also an eye-opening one that marks a landmark in my research career. Everything I have done between June 2022 and now came full circle. I initially began with the straightforward task of superimposing an image onto a background using OpenCV. Gradually, I took on more complex responsibilities in various projects. Eventually, I started to supervise and mentor new undergraduates, culminating in the completion of our work and publication of a paper. Ultimately reaching a convention where everyone shared a comparable work background and experiences, and now I have the opportunity to share my work and start anew. Of course my starting point is much more advanced this time. Despite the ups and downs I had over the year, there was never a moment when I considered giving up, and I can finally say with full certainty that I enjoy what I do.</p>
<p>My most recent experiences have sparked an interest in me to perhaps consider a doctoral degree, potentially at an esteemed institute such as MIT. Initially, I held a preconceived notion about the challenges and rewards of a career in academia, especially the commitment of several years for comparably lower remuneration. Alluring job prospects at FAANG companies certainly seemed more attractive without the necessity of a PhD. However, my perspective has drastically shifted now. Beyond the apparent, I&#39;ve discovered the profound gratification of creating something novel and contributing to the world of knowledge (read about my thoughts on this <a href="https://www.cengizozel.com/pages/articles/mscs-admission-experience.html">here</a>). My time at the ACII conference has played a pivotal role in enhancing my enthusiasm for research and opened wide the door towards newer prospects.</p>
]]></content:encoded>
        </item>
        <item>
            <title>MSCS: My Admission Experience</title>
            <link>https://www.cengizozel.com/pages/articles/mscs-admission-experience.html</link>
            <guid>https://www.cengizozel.com/pages/articles/mscs-admission-experience.html</guid>
            <pubDate>Thu, 24 Aug 2023 00:00:00 GMT</pubDate>
            <description>Looking back at the 2 years leading up to my admission to the Master's program at Georgia Tech</description>
            <content:encoded><![CDATA[<p>It seems that the bar for education has been getting raised over the past centuries. In the 1800s, any obedient person who was physically capable could become a factory worker while any form of education was a privilege. In the 1900s, a high school diploma was enough to get a job and support a family. By the 2000s, a bachelor&#39;s degree had become the minimum requirement for employment. Over the last decade, a graduate degree has established itself as the new standard.</p>
<p>In my senior year, I was unsure about pursuing further studies. Halfway through my second year, I switched to computer science and felt exhausted from the heavy coursework required to graduate on time. My course planning was considered unrealistic by my CS advisor. Even though I gained straight A&#39;s in my next two semesters and worked as a Teaching Assistant for two classes, the uphill battle of managing condensed CS degree requirements and summer coursework didn&#39;t significantly boost my GPA as I had hoped. Additionally, I lacked internship experience. But the biggest turn-off for me was not really knowing what a master&#39;s is supposed to mean for me. The idea was usually presented to me as a way to get a higher salary, social status, or just as a means to stay in school for a little longer. That was not motivating enough for me to go through the application process and spend another two years in school as I wanted to start working and put my life together.</p>
<p>I decided to go directly into industry and gain some experience for a year or two before thinking about applying to graduate school. This seemed like a sound plan because all I had to do was getting the first job, in which I could display my skills. But then, it also seemed highly challenging to allocate time for LeetCode and job applications while taking multiple advanced CS classes. Fast forward to late April 2022, two weeks before graduation. Fortunately, I found a summer research position, which set the stage for my comeback.</p>
<p>This was a fantastic opportunity. Despite being on minimum wage, I finally began supporting myself, gaining work experience, and taking the summer off to recover from the heavy coursework. It was a period before the latest AI boom when GPT-3 was still only on the OpenAI playground. People were just discovering DALL·E and starting to use public alternatives like Hugging Face&#39;s DALL·E mini. My tasks included creating a dataset of synthetic hand images using the Unity game engine, and I managed to make significant contributions. At the same time, we were working on a virtual avatar that can engage in various conversations which used GPT-3 API to facilitate the dialogue. These 3 months were when I found a deep passion for AI/ML. I was obsessing and thinking about my projects after work hours and using numerous resources to build the foundation to understand the field better as I wanted a career in it. Towards the end of August, my student research position turned into a permanent role. I was learning a lot, had connections with amazing people at the lab, and was encouraged to apply to graduate school.</p>
<p>I finally had found my reason to pursue a master&#39;s as well as the courage to apply. It was my desire to learn more and to be challenged as I think the self-study I conducted over a year felt equivalent to earning three-quarters of a degree. I found out that some of the textbooks I was using to teach myself were being used in actual classes, and I wanted to take advantage of the established structure of a class and the support of the professors and TAs. By late 2022, I began seeking recommendation letters from professors, drafting my personal statements, and preparing for the GRE. Despite having no publications, I was able to discuss the research projects in my personal statement. I know most grad programs have a minimum GPA requirement, thus I had to show that that number does not define my capabilities. I wanted my professional identity to be about my experiences, skills, and passion for the field. During this time, I was making the most of the opportunities I had at the lab by applying the knowledge I gained from self-studying AI, engaging with the other grad students, making use of the university&#39;s career center resources, and joining weekly workshops and lab meetings. Additionally, I made a personal website, revamped my LinkedIn, and was in a constant state of polishing my resume.</p>
<p>I submitted my first application in December 2022 and completed the rest by June 2023. I was accepted into two of my top three choices, with Georgia Tech as the first. My initial reaction was a mix of excitement and relief. I was excited because I was going to be a graduate student at a top CS school, and relieved because I was finally done with the application process and could dedicate that time to my personal studies. In just one year, I had transitioned from being unsure of my place in the field despite my CS degree to discovering my true passion. I also gained confidence and began to envision prospects for my future. I intend to keep building my knowledge in the field, aiming to become a Machine Learning Engineer and utilize my skills to make a positive impact.</p>
<p>Education requirements have been amplified over the years, but it shouldn&#39;t serve as checkboxes or certificates of compliance. The decision to pursue graduate studies should be driven by an intrinsic desire for knowledge and progress, rather than societal expectations. Traditional markers of achievement such as GPAs can be outweighed by practical experience, passion, and commitment to continuous learning. It&#39;s about aligning our educational pursuits with our ambitions and dedicating ourselves to becoming better learners, thinkers, and problem solvers. After all, that is the true essence of education.</p>
]]></content:encoded>
        </item>
    </channel>
</rss>
