# 2024 年「[資訊科技產業專案設計](https://hackmd.io/@sysprog/info2024/https%3A%2F%2Fhackmd.io%2F%40sysprog%2FH1-4KbanC)」課程作業 3 > [resume](https://drive.google.com/file/d/1Dkjk2THABUHvSJWXkQsR9d6RWFnJDKg5/view?usp=sharing) ## Realtek ### [Switch/Router/Gateway軟軔體設計工程師](https://recruit.realtek.com/Job/JobDetail?jobid=202) <details> <summary>Requirement</summary> 大學以上,電機、資訊相關系所畢,具下列任一條件者佳: 1. 熟C、C++、Assembly、Linux。 2. 具網路embedded system開發經驗。 3. 對網路如Ethernet, TCP/IP, NAT, QoS, Network processor/protocols/Architecture有興趣者。 4. 對網路產品,程式設計有興趣者。 </details> #### 分析職缺和自己的匹配程度 - 符合 + 我比較熟C、C++,leetcode都用這兩個語言刷。 + 我有修"網際網路架構"課程,本身實驗室也是網路相關的,對網路內部包含TCP/IP、Ethrnet等等內容都挺有興趣。 - 待加強 + Linux部分只懂CLI操作,也沒碰過Assembly。 + 雖然有參與過embedded system開發,但內容是將yolo模型轉檔成xmodel部屬在xlinux上運作,和網路無關。 #### 可能面試題目 1. 對Switich的了解 2. 對Router的了解 3. 考Leetcode白板題 #### 模擬面試 > 💁:Interviewer > 🙋‍♂️:Interviewee 💁:歡迎你參加我們的面試,請你先自我介紹。 🙋‍♂️:面試官好,我是王郁誠,學歷是中正大學資工所學士,成功大學電機所碩士。我對網路架構很有興趣,因此希望能夠進入這個部分,和大家一起努力。 💁:OK,那請問你對於Switich了解多少呢? 🙋‍♂️:我認為Switich是Hub的進化版,在使用電腦透過乙太網路連網時,資料會從電腦透過網路線連到Switich或Hub,再送給Router連網。但Hub會把它接收到的封包傳給網路中所有連接的設備,這導致大家共享頻寬,host A傳輸時,host B就不能傳。而Switich則可以智能的根據每個host的MAC address建立表格,當傳輸發生時,只會占用傳輸方與被傳輸方的頻寬,其他人還是可以傳,雙方互不干擾,不共享頻寬。 💁:回答的挺充分的,你剛剛也有講到Router,那請問你對它有何了解呢? 🙋‍♂️:Router主要負責擔任區域網和外網的橋樑,當host端送packet到router後,若要連外網,則會繼續上傳給Router,此時Router再傳給下一個Router或ISP。此外,Router還有一個DHCP技術,可以自動幫區域網內的host發IP,減少手動控制麻煩。然後現在大部分Switich跟Router都做在一起,大部分人都直接叫這兩個Router,才導致非此領域的人會不知道兩者差別。 💁:挺完整的回答,看來你對這些有一定的認識。那麼接下來要考你coding能力。 🙋‍♂️:好的,沒有問題。 ...(跳過code interview) 💁:OK,那我們面試就到這邊,會再用Email通知您結果,感謝你今天的參與。 🙋‍♂️:好的,謝謝面試官。 ## Google ### [Software Engineering Intern, Summer 2025](https://www.google.com/about/careers/applications/jobs/results/134225437638173382-software-engineering-intern-summer-2025?location=Taipei%20Taiwan&category=DATA_CENTER_OPERATIONS&category=DEVELOPER_RELATIONS&category=HARDWARE_ENGINEERING&category=MANUFACTURING_SUPPLY_CHAIN&category=NETWORK_ENGINEERING&category=PRODUCT_MANAGEMENT&category=PROGRAM_MANAGEMENT&category=SOFTWARE_ENGINEERING&category=TECHNICAL_INFRASTRUCTURE_ENGINEERING&category=TECHNICAL_SOLUTIONS&category=TECHNICAL_WRITING&page=3) <details> <summary>Job Discription</summary> ### About the job Software Engineering Interns at Google are researchers and developers who yearn to create and implement complex computer science solutions. Our engineers develop massively scalable, distributed software systems and also collaborate on multitudes of smaller projects that have universal appeal this requires research, awareness, interactivity and the ability to ask the right questions. You'll develop effective competencies in data structures and algorithms, along with a technical fascination for how stuff fits together. You'll also have a solid foundation in computer science, allowing you to come up with new ideas, as well as to strive for a deep understanding of our products and services in order to continually improve upon them. We focus on being a collaborative, global organization consisting of engineers with the highest levels of technical depth, programming skills, and a keen attention for quality. Google is and always will be an engineering company. We hire people with a broad set of technical skills who are ready to address some of technology's greatest challenges and make an impact on millions, if not billions, of users. At Google, engineers not only revolutionize search, they routinely work on massive scalability and storage solutions, large-scale applications and entirely new platforms for developers around the world. From Google Ads to Chrome, Android to YouTube, Social to Local, Google engineers are changing the world one technological achievement after another. </details> <details> <summary>Requirement</summary> ### Minimum qualifications: - Currently pursuing a Bachelor's, Master's or PhD in Computer Science, or a related technical field. - Experience with data structures or algorithms. ### Preferred qualifications: - Currently in your penultimate year. - Experience with Unix/Linux, Machine Learning, Tensorflow, or embedded systems. - Experience programming in one of the following languages: C, C++, Java, or Python. - Ability to complete an internship program of 10-12 weeks. </details> #### 分析職缺和自己的匹配程度 - 符合 + 正在讀碩士 + 有使用資結、演算法經驗 + 有使用tensorflow,以及yolo的ML經驗,embedded system部分也有碰過。 - 待加強 + Linux只懂基本CLI指令 + ML部分都只碰很淺的,API套一套那種,嵌入式系統也是都淺淺的,沒有深入了解。 + 我英文雖然不差,但還沒好到能應付此工作,需精進。 #### 可能面試題目 1. 各種演算法經典題 2. Leetcode上的題目(會包裝) ### [Software Engineer III, Image Processing, Pixel Camera](https://www.google.com/about/careers/applications/jobs/results/132929521719354054-software-engineer-iii-image-processing-pixel-camera?q=image%20processing) <details> <summary>Job Discription</summary> ### About the job Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward. In this role, you will manage project priorities, deadlines, and deliverables. You will design, develop, test, deploy, maintain, and enhance software solutions. Google's mission is to organize the world's information and make it universally accessible and useful. Our Devices & Services team combines the best of Google AI, Software, and Hardware to create radically helpful experiences for users. We research, design, and develop new technologies and hardware to make our user's interaction with computing faster, seamless, and more powerful. Whether finding new ways to capture and sense the world around us, advancing form factors, or improving interaction methods, the Devices & Services team is making people's lives better through technology. </details> <details> <summary>Requirement</summary> ### Minimum qualifications: - Bachelor’s degree or equivalent practical experience. - 2 years of experience with software development in one or more programming languages, or 1 year of experience with an advanced degree in an industry setting. - 2 years of experience with data structures or algorithms. ### Preferred qualifications: - Master's degree in Computer Science or Electrical Engineering, or a related field or equivalent practical experience. - 5 years of experience in Image Signal Processing. - 5 years of experience in image processing, computer vision, and computational photography development. - Experience with color space management and tone adjustment algorithms. - Experience with HDR system design and management. - Experience with Machine Learning (ML) based image processing model design. </details> #### 分析職缺和自己的匹配程度 - 符合 + 有學士學位 + 有碩士學位(預計2026年畢業) - 待加強 + 雖然image processing,但沒有五年,最多一學期 + 沒有color space management經驗 + 沒有HDR system design經驗 + 有用過ML,但沒有將其結合image processing經驗 + 英文需加強 #### 可能面試題目 1. CV和image processing差別 2. 邊緣偵測方法 3. 各種演算法經典題 #### 模擬面試 > 💁:Interviewer > 🙋‍♂️:Interviewee 💁:Hello XXX, welcome to this interview. Later, I will give you some question to test your ability with image processing. 🙋‍♂️:Ok, Let's go! 💁:First, Can you explain what's the difference between computer visoin and image processing? 🙋‍♂️:Sure, computer vision's goal is to understand what this image mean. Just like a furry dog means that dog has a smooth and continuous texture. We hope to make computer wiser to have sensibility with visual data, not just deeming them as 0 and 1 sequence. On the other hand, Image processing's aim is to extract useful information from a image, and make good use of that. For example, I can convert an RGB image to gray scale. That is a classical image processing. But we won't say that is a CV work just because this action. Because computer still can't understand what it done. 💁:OK... That's a interesting point. Next question, do you know edge detection? How many method you know? 🙋‍♂️:Edge detection is an important part of image processing. As it's name suggests, it can detect the edge between different objects in the image. I know some method such as Sobel, Canny, Prewitt, and Roberts. 💁:Good, as you mentioned Sobel, do you know how it work? 🙋‍♂️:Sure! The Sobel operator works by applying two filters to an image: one for detecting horizontal edges and another for vertical edges. These filter are 3x3 metrics, after make convolution with image and those two kernels, we can get the intensity in both x and y direction, this intensity also called gradient. After that, we can calculate the magnitude. The magnitude means the intensity change. A big magnitude means a high intensity change, and it is more likely to be an edge. 💁:Cool. OK, it's time to test your coging ability. 🙋‍♂️:OK, I'm ready ...(skip the code interview) 💁:Alright, thank you for your join, We you inform you the result as soon as possible. 🙋‍♂️:OK! Thank you,too. ### Open AI [Machine Learning Engineer, Applied AI](https://openai.com/careers/machine-learning-engineer-applied-ai/) <details> <summary>Job Discription</summary> ### About the Team OpenAI is at the forefront of artificial intelligence, driving innovation and shaping the future with cutting-edge research. Our mission is to ensure that AI's benefits reach everyone. We are looking for visionary Machine Learning Engineers to join our Applied Group, where you'll transform groundbreaking research into real-world applications that can change industries, enhance human creativity, and solve complex problems. ### About the Role As a Machine Learning Engineer in OpenAI's Applied Group, you will have the opportunity to work with some of the brightest minds in AI. You'll contribute to deploying state-of-the-art models in production environments, helping turn research breakthroughs into tangible solutions. If you're excited about making AI technology accessible and impactful, this role is your chance to make a significant mark. #### In this role, you will: - Innovate and Deploy: Design and deploy advanced machine learning models that solve real-world problems. Bring OpenAI's research from concept to implementation, creating AI-driven applications with a direct impact. - Collaborate with the Best: Work closely with researchers, software engineers, and product managers to understand complex business challenges and deliver AI-powered solutions. Be part of a dynamic team where ideas flow freely and creativity thrives. - Optimize and Scale: Implement scalable data pipelines, optimize models for performance and accuracy, and ensure they are production-ready. Contribute to projects that require cutting-edge technology and innovative approaches. - Learn and Lead: Stay ahead of the curve by engaging with the latest developments in machine learning and AI. Take part in code reviews, share knowledge, and lead by example to maintain high-quality engineering practices. - Make a Difference: Monitor and maintain deployed models to ensure they continue delivering value. Your work will directly influence how AI benefits individuals, businesses, and society at large. </details> <details> <summary>Requirement</summary> ### You might thrive in this role if you: - Master's/ PhD degree in Computer Science, Machine Learning, Data Science, or a related field. - Demonstrated experience in deep learning and transformers models - Proficiency in frameworks like PyTorch or Tensorflow - Strong foundation in data structures, algorithms, and software engineering principles. - Experience with search relevance, ads ranking or LLMs is a plus. - Are familiar with methods of training and fine-tuning large language models, such as distillation, supervised fine-tuning, and policy optimization - Excellent problem-solving and analytical skills, with a proactive approach to challenges. - Ability to work collaboratively with cross-functional teams. - Ability to move fast in an environment where things are sometimes loosely defined and may have competing priorities or deadlines - Enjoy owning the problems end-to-end, and are willing to pick up whatever knowledge you're missing to get the job done </details> #### 分析職缺和自己的匹配程度 - 符合 + computer science學生 + 有DL和transfer learning經驗 + 有使用tensorflow經驗 + 有跟別人合作開發過 + 對於不懂的,會盡力去弄懂 - 待加強 + 沒有search relevance, ads ranking or LLMs經驗 + 雖然有train & fine tune過,但不敢說到非常懂,要加強 + 不敢說擁有Excellent problem-solving and analytical skills + 時代變得太快,不敢說自己一定跟得上時代的腳步,但會盡力跟 + 英文需加強 #### 可能面試題目 1. 什麼是Neural Network 2. 模型怎麼學習 3. 考演算法題目 #### 模擬面試 > 💁:Interviewer > 🙋‍♂️:Interviewee 💁:Hello XXX, welcome to our interview. We want to know how you familiar with machine learning, so I will give you some question. Is that clear? 🙋‍♂️:Sure, please go ahead. 💁:First, please explain what is Neural Network. 🙋‍♂️:A Neural Network is a kind of machine learning model. It's composed by three layers, one input layer, some hidden layers, and one output layers. Each layers has some node. And these nodes will connect to all the next layers node by unique weight. At the end, linking to the output layer and become our model final disicion. When training, these weights connect between nodes will be adjusted according to the loss between previous output and ground truth. After lots of epochs, the model will slowly learned some detail and become more accurate. 💁:Cool. That's a good answer. Next question, how exactly the model learned? 🙋‍♂️:As I previous say, Model first calculate loss between prediction and ground truth. After getting loss, model will use backpropation method to update the weight, aiming to lower loss and becoming a better model 💁:Good, Can you explain how back propagation work? 🙋‍♂️:Sure, It uses the chain rule to compute gradient descent. The gradient refers to the derivative of the loss function with respect to each weight. From the Output layers all the way back to the Input layers, it will gradually update those weight, hopping to achieve higher accuracy. 💁:OK. Next, I will test your coding skill. 🙋‍♂️:OK, I'm ready. ...(skip the code interview) 💁:Alright, thank you for your join, We you give you feedback in a week. Have a nice day. 🙋‍♂️:Cool, thank you. Have a nice day,too.