# BQ
[TOC]
## Intro
a Master’s student at New York University and a former SDE intern at Amazon. Have a solid background in Computer Science and a deep passion for innovation. My interest fields are in infrastructure, especially in C++, Java, and Unix programming.
At Amazon, I was part of the Datapath infra team, working on an impressive project. Datapath is a tier-1 serverless hosted platform used by 500+ teams and runs on 120K+ production hosts. He designed an overall architecture that integrates an internal service with a non-blocking network I/O system, and authenticated by an OAuth-based solution. I completed this complex project and presented it to all datapath team.
I’d like to build some products that can impact the world and users.
To sum up, I have 3 internships experiences of being a frontend and full-stack developer. In terms of frontend, I can use frameworks like React Redux and NextJS. As backend, I can use NodeJS Flask and some Database, container (Docker, Kubernetes), and cloud platforms (GCP, AWS), and cloud AWS GCP.
I will graduated in this Dec, so trying to find a full-time job next year. I am glad that I have a interview here. Thanks a lot!
## CV
### Amazon
- I was part of the datapath infra team. Datapath is a tier-1 server-less platform, serves over 500+ amazon teams and running over 100K production host.
- My project is to integrate an internal service to our platform
- I design the overall architecture, and decide how to make request and how to use the protocol
- chose to implement it with aync call, and handle the timeout and exception. also develop the retry strategies
- implemented an auth, make sure the correct access right
- To sum up, I designed, built, and tested the architecture with Java (OOD, Junit), Git, Linux
- With this new feature, it provides more availability to our customers, since they can get more data through our platform.
#### go on production?
- The short answer is not yet, but in progress.
- Datapath is a very essential platform, and tier-1 service
- every new PR would go through a very long pipeline process, it takes 1-2 months to publish to all the regions
- However, my project must go on production afterwards since it is very impactful. During my intership, I presented it to not only my manger, skip manager, but also to the all datapath organization about 40+ ppl (director, L6 L7...)
- This presentation ensure the feature is able to obsess our customers and go on the produciton pipeline.
### NOL CoachAI
- I was a full stack developer and led a team of 20 graduate students and developed a platform (CoachAI) to analyze badminton contests and the performance of badminton players. (footsteps, ball types (smash, lift), speed, win condition)
- My job is to build a web to visualize all the analyed data and make sure it can clearly present to the players
- I design the backend using Python Flask and database using MySQL and design RESTful API to ensure everyone can query and upload the video data to the system.
- Secondly, I used React.js Redux to refactor and seperate the frontend from backend. the refactor makes the system more modularity, scalability and flexibility.
- Finally, I successfully built the website and reduce the 80% average data processing time by integrating the backend and refactoring the frontend. Also, I won the Future Tech Award of MOST 2020 and pulish the results in a Taiwanese conference.
### Trend Micro
- is a Japanese cyber security software company.
- Developed the testing features to test the weekly new release code to ensure the our product's safety and quality.
- Also, wrtie some shell scripts to automate the routine process.
- the system can automatically download the new release code and upload to different testing server
- then after testing, use internal tool to capture the result and parse the logs to auto generate the testing reports and visualize them
- As a result, with the testing features, it makes sure new release code pass all the tests case (performance, max throughputs, signature files)
### D-Link
- Research part
- I researched and implemented the SDN-IP architecture to connect SDN networks to external networks using the standard BGP protocol.
- Use SDN controller (ONOS) to be the central controller to manipulate the network topology
- Emulated BGP routing on routers via a Python lib Quagga, and create a network on virtual machines using Mininet
- Finally, I successfully built the SDN-IP application on a real-world environment
- Testing part
- verified 30+ functions of the SDN-enabled switches, including traditional features like Ethernet, IPv4, IPv6, TCP, UDP, HTTP.
- also verified new SDN features, the flow and group tables
- by designing the network topology using Python and SDN controller
- As a result, I helped the company ensure that their products meets the required quality standards and find issues before the product released.
#### SDN
- Software-Defined Networking (SDN) separates the control plane from the data plane.
- uses software-based controllers to communicate with underlying hardware and direct traffic on a network.
#### the diff from the traditional network
- traditional one is decentralized, every switch and router control its own behavior, where the data goes. SDN create and control a virtual network – or control a traditional hardware – via software. SDN use a controller to control the network, forwarding, modifying, traffice control, or add some rules on specific switch and routers.
#### SDN-IP
- SDN-IP is an ONOS (Open Network Operating System) application used to connect SDN networks to external networks using the standard BGP.
- after receiving a route from an external peering network with BGP speakers
- SDN-IP will calculate and create paths for the traffic when receiving packets.
- Therefore, Routing can make host communication between two SDN Network or traditional Network.
---
- From BGP perspective
- SDN network is like a traditional AS
- From ONOS perspective
- SDN-IP is an app for learning and updating new routes, and enable SDN network to communicate with traditional network
### 3drens
- I was a frontend engineer intern in that summer.
- develop the frontend of CMS dashboard
- use ReactJS Redux to visualize the real-time GPS position on Google Maps
- also develop features like geo-fencing, heatmap, payment system and image uploading
- all of these are essential features to our customers
- I streamlined and accelerated the rental process for our customers
### Microservices ticketing services
- use a microservices architecture to build a ticketing service allow users to buy/sell tickets, login/logout, order and expiration services
- Developed back-end services with Node.js, Express.js, and MongoDB
- structure a set of services that can be developed, deployed, and tested independently
- Deployed with Docker and Kubernetes; designed GitHub CI/CD workflow
- Devised a countdown expiration service using a queue system via Bull and Redis
- Implemented a server-side rendered (SSR) front-end using Next.js, React.js, and React Hooks
#### What is microservice
- a feature is a service, has own router middleware db
- pros: if any other service crash, the other one still can work fine
- difficulties: Data Management between diff services (90% problems)
- Why db per service?
- run independently
- some services might function more efficiently with diff types of db (sql vs nosql)
### ARP spoof
- is a technique when an attacker sends (spoofed) (ARP) messages onto a local area network.
- Generally, the aim is to associate the attacker's MAC address with the IP address of another host, such as the default gateway, causing any traffic meant for that IP address to be sent to the attacker instead.
- ARP spoofing may allow an attacker to intercept data frames on a local network, modify the traffic
預防
- Static ARP 這種設定方式,手動將 MAC 與 IP 位置綁定
- 有些交換器也有提供 Dynamic ARP Inspection (DAI) 的防護方式,會主動偵測這種攻擊,在攻擊成功前就先將其阻斷
- 現在也有許多端點防護的方法,主動監控電腦上的 ARP Table,如有發生異常的改變(例如說所有 IP 都指向同一個 MAC)
### Auto completion command line
### Raycaster
### sandbox
## 2024 NG
## 24 Network Nvidia
### 瀏覽器輸入 google.com
向瀏覽器輸入網址(域名) → DNS解析 → 取得IP → TCP三次握手(連接)
→ 發出HTTP請求 → Server端處理過程 → 瀏覽器解析並渲染
→ TCP四次握手(斷開連接)
- DNS lookup (eg: www.google.com.tw)
- check browser cache?
- check local host?
- check DNS Server
- check root server
- .tw?
- .com?
- .google
- browser got IP address
- ARP
- check ARP look-up table and cache
- ARP request broadcast to local network
- 3-way handshaking
- server: SYNC
- client: SYNC/ACK
- server: ACK
- [Layers Source](https://mark-lin.com/posts/20180910/)
- Physical
- coax, fiber, wireless
- Link
- Frames segement, MAC broadcast, switch, bridge
- src dest MAC,
- Network
- IP, ICMP, IPsec, IGMP
- src dest IP,
- Transport
- TCP, UDP, end-to-end connection
- src, dest port
- Session layer (Layer 6)
- SSL
- Application
- HTTP (hostname), SMTP
- HTTPS request
- 依序建立 HTML DOM tree 與 CSS CSSOM tree,最後結合產生 Render tree
https://medium.com/%E5%BE%9E%E5%BF%83%E9%96%8B%E5%A7%8B/%E7%80%8F%E8%A6%BD%E5%99%A8%E8%BC%B8%E5%85%A5%E7%B6%B2%E5%9D%80%E5%BE%8C-%E6%8C%89%E4%B8%8B-enter-%E8%83%8C%E5%BE%8C%E7%99%BC%E7%94%9F%E4%BB%80%E9%BA%BC%E4%BA%8B%E6%83%85-d442049c9fe3
## 24 BQ TT
### Why Tesla
* in its goal to drive the global transition to electric vehicles.
* I'm particularly enthusiastic about actively contributing to this transformative journey.
* accelerating the world's transition to sustainable energy.
In summary, my journey has encompassed three internships and one full-time position, equipping me with a wealth of experience in C/C++, gdb, socket programming, network protocols, and process life cycles.
### Why GS
- interested in finance industry
### Why do you want to join TikTok?
- stable team
- infra, core, essential to the company
- stay longer in this position
- dive deeper in one field
- product impact
- world-leading product
- this is why I came to US, since TW do not have chances to reach such a product with tons of thousands of traffic
- it's a good time to see how to deal with this system and manage the traffic
- align with my career path to devops and SRE
### next career goal
the work that can not easily to see the direct impact of your work. so that I can not only know how I contribute to the company, the user, and the world. Also, I can share with my friends what I am really did. Such as the exp at Amazon. It really gave me a great sense of achievement.
- DevOps and SRE
- automation
- security
- CI/CD
- system reliability
- networking, communication
- load-balancing
- disaster recovery
- I have comprehensive understanding in various field, such as OS, networking, testing, vm, docker, k8s, fullstack
### How will you help contribute to our growing team
- short term
- previous knowledge (3 internship)
- easy going and teamwork person, bring the positive atm to the team
- long term
- take ownership (handle the traffic in prime day)
- be independent (can be trust by managers and can complete proj w/o too much help)
- decide the new features and next season plan (propose new features and discuss w/ higher level IC)
- teach new people (being a mentor)
### Most challenges & technical challenge and what did you learn from it? what steps to overcome
Amazon
- async calls
- timeout, retry, exception
- metrics, testing
Solve
- learn and be curious, be stuck in 30mins, dont be shy
- find other places have similar pattern, understand the concept and reuse it
- dive deep to each features
- discuss with my mentor
- implement it carefully and write testing
- In the end, completed the project
### proudest work and why
Coach AI or NCTU+
- in the very front line to discuss with the players to see what's their needs
- built the website to visualize the game video
- record the player speed, ball types, footstep, and win condition and visualize all the results.
- they can truely help the player improve their performance and come up with new trajectory depends on their opponents.
- finally got the second place in 2020 olympics game
- invited to several new papers, and invited by national geography channel to shoot a documentary video.
### work as a team or individual
- team player
- enjoy working with others, felt energized
- ppl from diff bg can share the different view point
- enjoy the brain-storming, to see a topic in diff angles
- think out of the box, comeup w/ new idea
- for ex: NCTU+, UX/front/back,
- discuss the features we want to develop, like hackerthon (food maps, course scheduling, share delivery)
- we chose to develop the course scheduling system
- efficiently completed the project and continueously exchange opinions
- reach 95% usage
### help others
- love to help others
- when teaching others, it is also a chance for me to rethink the knowledge and the approach. help me to understand better
- make progress together
- ex: help my friends solve lc problems and address the time space complexity
- when teaching them how to address a problem, I should use straightforward way to help them get the idea, and guide them through the thought process, or even draw diagram to help them get better understanding.
- In the meantime, I will feel more deeply understand the question
- Besides, help me to explain a problem to others and improve my communication skill which will be a very good in my future career.
### go back and do it again
- set clear goals and milestone
- I am too detailed oriented, want to make everthing to perfect
- complete all goals in my project, but want to do the extended goals and it takes longer than I expected
- Hopefully, I still submit the project just in time bcs I spent an extra weekend to finish it.
- next time I will plan the timeline carefully to avoid this happen again
* plan a trip to seattle, know my ccolleahues amd mentor more; but it was expensive
* schedule more 1:1 to my skip manger and other high level managers, to show them what I’ve done;
### failed / mistake you made
- The mistake is I’ve made happended from my first internship experience.
- I got a requirement for adding a new feature on our real-time Maps.
- I tracked the codebase and found an API that can be used by the new features as well.
- thus, I update the original code and modulized it, so both the original and new feature can worked correctly.
- However, the next day the bug happens bcs there is still have another function using the same API and I changed the format so it can not work.
- I fix the bug immediately and make sure every function can work as our previous version.
- afterwards, to avoid this problem again, I proposed we write unit tests and build CICD workflow. Whenever each update, it should be automated tested and had to pass all the test.
- this kind of issues are never happened again.
### WHAT strength and weakness
- My strength is attention to detail.
- always want to accomplish everything in an organized way and tried to make everything perfect.
- expected myself to write clean and elegant code
- My weakness: too detail oriented
- I tried to accoumplish everything and want everything to be perfect, but sometimes I do not have enough time
- example, amazon integrate the common part in different functions.
- out of scope & do not have time
- to solve this, prioritize things, define the scope
### see in 5 years
- take ownership (handle the traffic in prime day)
- be independent (can be trust by managers and can complete proj w/o too much help)
- decide the new features and next season plan (propose new features and discuss w/ higher level IC)
- teach new people (being a mentor)
### XY problems questions
where the question is about an end user's attempted solution (X) rather than the root problem itself (Y or Why?).
user's attempted solution -> X
root problems -> Y
### Any question for me
What is your favorite part working here?
What is the team culture like?
What are the biggest challenges the company is facing right now?
What is the typical day at TT?
What do you think are the most important qualities for someone to be really successful in this position?
What are the common career paths in this department?
## Palantir
[24BQ Palantir](https://hackmd.io/0MCSkArOQnyDvo20KUUXnw)
Spent some time walking through my resume and discussed internship experiences and projects.


### 1006 面試
Round 1
BQ:
Share a project that you’ve worked on in your previous internship
if doing again, how would you make a difference
if doing again, what would you want to do more
Design a platform for teachers and students to create schedules and sign up to teach and enroll in various classes in different rooms.
prerequisite, rooms
Round 2
BQ: tell me a mistake you made in your previous internship
Python Future concurency
## Palantir BQ
### What’s most exciting to you about Palantir and why do you want to work here? (Word Count approx 200)
The first time I heard Palantir is from my friend, a software engineer at Palantir. She was excited to share her experience and the product she did. I watched the demo video of Palantir Gotham. I saw my country Taiwan appears on the video. So, I realized that it is so close that the product can impact the world.
Gotham integrates real-time data analysis for government, military, and disaster to make decisions. It can accelerate the decision making to save people and prevent bad things happens. This job is so fascinating to me because I expect myself to work at a company which can make contributions to the society. Moreover, I was especially interested in visualizing real-time on Map. During my previous internship, I utilized IoT devices to track E-scooters GPS positions and visualized via Google Maps API. I believe that after joining Palantir, I can leverage my skills to build the world’s leading product.
prevent terrorist attacks, fight financial crime, and power socially-important investigations across the world.
### What is something challenging that you have worked on (technical or non-technical) and what was the impact or outcome of it? What did you learn from this experience? (Word Count approx 200)
One of the biggest work challenges I have overcome happened at my last job. Two team members were let go unexpectedly, and I was left with the workload of three people. In the meanwhile, I had to finish a project for the new cooperation opportunities in ten days. I was under huge pressure because the project fell behind, and I knew I couldn’t meet the deadline by myself. However, I chose to stay calm and asked my supervisor for help first. We came up with some solutions, getting temporary help from another team, prioritizing our work, and streamlining our workflow to be more efficient. Finally, we successfully submitted the project just in time and got cooperation with our clients. This experience taught me a lot in terms of coordination, communication, and problem-solving. I think I will be better prepared for the next problem or challenge since I overcame that previous obstacle despite it feeling hopeless initially.
### At Palantir we have two main Software Engineering roles: Forward Deployed Software Engineer and Software Engineer. Which of these roles resonates the most with your job search and why? More details found here: https://blog.palantir.com/dev-versus-delta-demystifying-engineering-roles-at-palantir-ad44c2a6e87
I am interested in Dev (Software Engineer) because I expect myself to work on things that are technically challenging and design the architecture to meet many different use cases. I want to dive deeply into some technical fields and use the knowledge to solve real-world problems.
Designing an architecture that can satisfy different users and use cases is fascinating. Also, last year, I submitted an application for the summer SDE internship and made it to the final round interview. I had a great conversation with the interviewer. This also makes sure Dev is more suitable for me.
### Additional decompose
I had a great conversation with the interviewer, during which we discussed Palantir, its culture, products, and future direction. These discussions resonated with my career aspirations. I didn't do my best in the decomposition interview at that time. However, this past summer, I interned at Amazon and significantly enhanced my skills and personal growth. As a result, I'm confident that I can perform much better if given another opportunity this year.
### What do you like and don't like about your previous internship?
startup
- like
- the pretty flat hierarchy, we can reach out to all levels people in our team
- have more control and able to propose a new solution by yourself
- cross department communication, to attend diff meetings
- build a real product that can impact the worlds
- sometimes can face the customers
- have a lot of startup activities, meet diverse people, full of ideas
- not like
- without an organized prodction progress
- lack of quality control
- do not have code review, unit test
### Share a project that you've worked on in your previous internship
3drens coachai
[most challenge](#most-challenging-project)
### What would be a thing that you think your previous company could change that would make your experience there even better?
- have a clear guide to develop the product
- have a complete unit tests and CI/CD flow
### What are some non-negotiable that you are looking for in your next position?
- intergrity, no lies, excuses
- equality, no discrimination
- attitute
- doing sth impact the world
- learn fast and deeper
- focus on backend, cloud, SRE
### 实习不喜欢的地方有哪些
### Rev BQ
Then I got to ask them some questions.
Some key takeaways from their responses that matter the most to me:
- Palantir has a pretty flat hierarchy, so career progression won't be like FANNG
- Interns have meaningful scopes and responsibilities, some of the work you do might end up becoming a client-facing product
- Mature processes -- this matters to me because I want to build my own startup in the future so I want to find a place where I can learn their processe
## Introduction
BG CS -> NCTU+ -> internships
一個好的面試開場
一定是簡潔有力的自我介紹。我的一分鐘自我介紹架構大概是我是誰 → 我喜歡什麼 → 為了我喜歡的事情做了什麼努力 → 我的成就和願景 → 這就是為什麼我現在在這裡。
Hi, I'm HoYi and U can also called me Harry.
CS NCTU NYU
a Master’s student at New York University and a former SDE intern at Amazon. Have a solid background in Computer Science and a deep passion for innovation. My interest fields are in infrastructure, especially in C++, Java, and Unix programming.
At Amazon, I was part of the Datapath infra team, working on an impressive project. Datapath is a tier-1 serverless hosted platform used by 500+ teams and runs on 120K+ production hosts. He designed an overall architecture that integrates an internal service with a non-blocking network I/O system, and authenticated by an OAuth-based solution. I completed this complex project and presented it to all datapath team.
I'd like to build some products that can impact the world and users. This gave me a great sense of achievement.
To sum up, I have 3 internships experiences of being a frontend and full-stack developer. In terms of frontend, I can use frameworks like React Redux and NextJS. As backend, I can use NodeJS Flask and some Database, container (Docker, Kubernetes), and cloud platforms (GCP, AWS), and cloud AWS GCP.
I will graduated in this Dec, so trying to find a full-time job next year. I am glad that I have a interview here. Thanks a lot!
“我是XXX,我喜歡做出影響使用者的服務,因此我一直努力在 Full-stack耕耘,對於前端我做了JavaScript side project,對於後端我學了AWS。我在Amazon實習時負責了一個獨立Project學到很多實戰經驗,綜合了前後端經驗的我希望可以展開職場生涯,因此很開心可以前來面試”
### What background and experience fit this position
Ho-Yi, a Master's student at New York University and a former SDE intern at Amazon. Armed with a solid background in Computer Science and a deep passion for innovation, he has honed his skills to contribute effectively in this dynamic landscape. What sets him apart is his proficiency in infrastructure, especially in C++, Java, and Unix programming.
At Amazon, he was part of the Datapath infra team, working on an impressive project. Datapath is a tier-1 serverless hosted platform used by 500+ teams and runs on 120K+ production hosts. He designed an overall architecture that integrates an internal service with a non-blocking network I/O system, and authenticated by an OAuth-based solution. His dedication shines through as he successfully completed this complex project and presented it to his colleagues.
His journey has been enriched by hands-on experience in multithread programming, memory management, operating system, and advanced programming in the UNIX Environment. He developed a command-line interface (CLI) support auto-completion, auto-suggestions, and history handling with C. Apart from that, he has experience of implementing a “netstat”-like program, a sandbox for library injection and API hijacking, observing the execution of another process with ptrace, and writing assembly to implement bubble sort.
Moreover, Ho-Yi is collaborative, easy to work with, and communicate effectively with partners from diverse backgrounds. He is an ideal candidate for this position. I am confident that he will leverage his potential, make contributions, showcasing his talent in the tech world.
---
During his time at NCTU (National Chiao Tung University), Ho-Yi actively participated in an open-source community and developed a platform using ReactJS and Redux to enhance the daily lives of students. The service gained significant traction, with over 95% (5000+) of NCTU students utilizing it.
Ho-Yi is a talented and dynamic individual with previous experience as a frontend and full-stack developer through three internships. His skill set encompasses various aspects of web development, including NodeJS, Flask, database management, and cloud platforms such as GCP and AWS.
### Tell us why you are interested in Morgan Stanley Technology and what unique perspective you can bring to the program?
I am interested in working at Morgan Stanley because I believe it is a great opportunity to gain experience in the financial services industry. I am particularly interested in Morgan Stanley's commitment to providing excellent customer service and the company's commitment to innovation and financial expertise. I believe that my skills and experience in finance and economics will be an asset to the company. Furthermore, I am excited to become part of a team that is committed to helping clients achieve their financial goals.
### 2. What technology will be trendy over the 6 - 12 months?
### Doing the right thing is essential at Morgan Stanley, and one of our core values. Please provide an example of a time when you noticed something that didn't appear right. How did you handle and approach the situation?
## BQ
### Why Amazon?
Amazon is a top internet retailing company with a strong focus on customer experience and obsession. I love the culture: work hard, have fun, make history, and becoming earth’s most customer centric company. I’m a person who respect hard working and care a lot about customer experience, so the culture of Amazon attracts me a lot.
Furthermore, the growth of this company is pretty impressive, I have read the book about Amazon -- The Everything Store: Jeff Bezos and the Age of Amazon and found that AMZ is not only an online retail shop but also has a wide range of products like Alexa, Kindle, Video, AWS, etc. Also, hundreds of thousands of talented engineers are working here, building innovative system and solving problems. Therefore, this is a place where I can learn a lot, and use my skills and experience to make things happen with a team. So this is why.
### unclear responsibility
> Confidently Take Risks
> Plan for Different Scenarios. ...
> Communicate. ...
> Embrace Change
When I joined CoachAI, the project is new and the scope and responsiblity is not clear because we have 5 subproject.
At the very begining, we are seeking for the customers and some cooperation opportunities. But the role for being the leader and communicating with clients are unclear. However, I know that the requirements and feedbacks from clients are very impoortant.
So here is the thing I did. First, I created a list of things that do not have clear responsibilty, such as introducing our platform to others and meeting with clients, and bring the clients feedbacks to our dev team. Secondly, I analyze the risks to see whether I am able to handle all these stuffs. Also, I asked my supervisor and told him that I want to be the team leader and take the responsibility. The outcome is he is very happy to see that I stand out to being the leader.
In the end, I successfully got the cooperation with the national badminton team. It is really a great opportunity for this project and my supervisor is very thankful for my efforts. In the exp, I learned that in real world sometimes the responsibilities is unclear. If I encounter this situation again, I should have a plan to deal with it and analyze the risks. Then, communicate with my supervisor and actively take actions to do some change as long as the change can benefit our company.
---
I scheduled meetings and actively introduced our platform for customers. In the meanwhile, I also asked what is the most important thing they care a lot and what is their most favorite function on our platform. Then, I collect all their feedbacks and bring back to our engineer team.
### Colleague taking credit for your work
* maintain open communication
* clarify my contributions to the project and seek acknowledgment for my efforts
* emphasize the importance of collaboration and teamwork,
* highlighting how sharing credit appropriately contributes to a positive work environment and enhances overall productivity
* If necessary, I'm also open to involving a supervisor or mediator to resolve the issue effectively
### Tight deadline / Work under pressure / Couldn’t finish tasks before deadline
> deliver result, ownership, customer obsession
- This happened in my previous work experience. Two team members were let go unexpectedly, and I was left with the workload of three people. In the meanwhile, I had to finish a project for the new cooperation opportunities in ten days. I was under huge pressure because the project fell behind, and I knew I couldn’t meet the deadline by myself.
- However, I chose to stay calm and asked my supervisor for help first. We came up with some solutions. First, I scheduled several meeting with them to understande the requirement from our customers and bring their feedback to our engineer team. After understanding their requirement, I was able to prioritize our work to be more efficient. I chose to focus on features with the higher priority since these are our clients care most. Secondly, I tried to get temporary help from another team. To make sure we can have enough people to deliver results.
- Finally, we built a minimum viable product to for our customers and submitted the project just in time. I successfully got the cooperation with our clients. This experience taught me a lot in terms of coordination, communication, and problem-solving. I think I will be better prepared for this kind of situation.
### Handle challenge / Handle conflict / convince teamate
> If we have conflict, still insist in the way that help organization most.
> Priority - clear what is the priority of the issue, reaonsing the priority to our team
> HAVE BACKBONE; DISAGREE AND COMMIT
One conflict is in my intership at an startup 3drens. One of our customers is local escooters rental company. They want us to develop a mobile system that customers can use for register/login/logout renting e-scooters, so that they can save a lot of money hiring people for these stuffs. Thus, this time my mentor proposed to develop mobile app to meet the requirement, but I disagree with her in a meeting although that time I was just an intern LOL.
We had a little conflict. I express the reason why I do not think its a good solution. The first reason is that we are a small startup and the number of engineer is less than 5 people. Also, the previous projects are all web-based solutions, so no one in our team know how to develop an iOS or Android app. If we develop a mobile app we have to hire new people or learn from the start, but we dont have much time and money. This solution will harm our company.
Secondly, I proposed another solution is using a web-based app. all engineers in our team are very familiar with web framework and language. We can just make the least effort to build the web app, and deliver the platform within 1 month and do not need to spend extra money for the project. Also, the requirement from the customer is simple, we can use webapp to satisfy our customer.
After explaining those reasons to my mentor, she felt like it is a better solution and can help our company. Also, I explain the idea with a very respectful manner and do not offend to others. So, she approved my proposal and said thank you to me.
- web app
- easy to maintain, as they have a common codebase regardless of the mobile platform
- easier and faster to build than mobile apps
- do not need to be downloaded or installed
- mobile app
- pros: run faster, user friendly
- More expensive to develop compared to web apps
- Designing and building the app from scratch is usually required in order for it to be compatible with different platforms such as iOS and Android
- Can be difficult to have a native mobile app approved by the app store
### you earned the trust of a group
coach ai
design an backend architecture
refactor the frontend
to simplify workflow and save time
### quickly earn your client’s trust?
D-Link
- testing new switches and write testing report
- found a bug of the their new switch
- dive deep to the latest specification
- analyze the problem carefully and diagnose what is the main point cause the problem
- record all procedure steps by steps including env, tools version, command, and screenshot
- reproduce the bug in a meeting
### you had to dive deep into data and the results you achieved.
3drens
- fb login crash! critical problem
- dive deep to trace the code
- analyze the question carefully
- found redirect will not receive the response in inApp browser
- google and found its a common issue
- sol: 3rd party detect-inapp library to force user to turn to chrome
- result: solve the issue and
- write a clear documentation for the others
not work for iphone
read src code found they will be distinguished to safari
### innovative product / most significant achievement
NCTU+ coachai
### negative feedback / did not meet customer’s expectation
> earn trust, customer obsession
CoachAI, I am a full stack developer to develop a platform to analyze badminton contests and the performance of national athletes. This project included 5 labs to do differenct research, such as ML CV. My job is to build a web to combine all their research results and make sure it can clearly present to the coach, players.
One time a client gave us a negative feedback and said that he is not fully satisfied with the web that my team and I delivered.
I am an open-minded person, so I chose to stay calm and asked him more details with a very respectful manner. Then I found the problem is that the user interface is too complex for them to use although the functions were useful. Therefore, I realized that it is a very important feedback for our system.
I planed to redesign the user interface of our website. Because at that time, I used python flask for the frontend and backend, Flask is a lightweight framework for fast dev. It lacks of some functions and lib for the frontend, so I plan to refactor the frontend using ReactJS and discuss with my supervisor to ask for his permission. Also, UX designer. Meanwhile, I scheduled meeting to our customers to see how the way they use the system and what is the element they want to see.
I refactored the frontend of the website and turned it into a easy-to-use and user-friendly one. Our customers was very happy with the change and this also accelerate our communication time. This experience taught me that feedbacks from customers are very important although sometimes it may be negative. However, these feedbacks can help me truely understand their requirements and help me to develop a better system.
### quick decision
- Consider the BEST and WORST outcomes
- Discuss your proposal with experienced colleagues to get a second opinion.
- Choose the decision that
- most benefits the organization
- limited risk
- maximum returns
auto video editing
unclear and complex requirement
- combine the video with the same attr, ball types, speed, win condition, last 3 patterns, single or double
- drag and drop to customize the order of the videos
- upload and download
make a MVP for the basic function and quick demo with them to ...
### an example for a success learn from industry
### calculate the risk
MVP
2 weeks vs 2 months
### got a task that is beyond your ability?
NCTU+
more user
GA Oauth
### help others
3drens internship
- I'm experienced with reactjs redux
- on the first week I finished the tutorials quickly
- and he is asking me for help about how redux work
- I give you a brief introduction about the big picture and share with him with some resources that I have every read. hope it can help him understand
- thus, after training we join the dev team next week and we can deliver results very soon and solve most of problems
- our mentor are surprised that what we did, and we covered the project by ourselves so that my mentor can spent more time on the new project. We speedup the whole process and make contribution to our company
### learned something new at work
3drens
google maps api
real time position and geo fencing
### when you went above and beyond for a customer
coachai
simplify the ball types from 16 to 10 and add another button to choose which mode they want to see
### balance the needs of the customer with the needs of the business
3drens CMS saas
1. get advice from my supervisor
2. if the clients are the one of our most important one
3. if features that can be reused by other clients
ex: visualize the position of their vehical in a real time map
### when you asked for customer feedback
coachai
simplify ball type 16 to 10
### failed / mistake you made
> earn trust, customer obsession
The mistake is I've made happended from my first internship experience. I got a requirement from adding a new feature (geo fencing) on our real-time Maps. So I tracked the codebase to see what is the input/output data format and found a API that can be utilized by the new features as well. So I slightly modified the API in order to make it more modulized so that that can fit in more cases. Also, I update the original code that used the API, so both the original and new feature can worked correctly.
After submitting this new features, it works well. However, the next day our customer report an crashing issue. This bug is because I didn't found there is still have a minor function using the same API and I changed the format so it can not work.
I apologized to my supervisor and promise I will fix the bug immediately. Fortunately, my supervisor said the customer didnot felt very angry since it's just a little mistake. Then, I fixed the issue in one day and make sure every function can work as our previous version. In order to avoid this problem again, in a meeting I proposed we write unit tests and build CICD workflow. Whenever each update, it should be automated tested and had to pass all the test. My team members all think it's a great solution and it increase our software quality and earn trust from our clients.
Finally, We spent some time to build the whole testing workflow, this kind of issues are never happened again.
### What Strength Weakness
- How Positive u think about yourself
- My strongest trait is **attention to detail**. When I work in 3drens, I always want to accomplish everything in an organized way and tried to make everything perfect. When I pushed a new feature, I will write some unit tests to ensure it works normally. Then, I will try to modulize some components when they are similar. Lastly, I also expected myself to write clean and elegant code, so I read Clean Code and followed the Google coding style.Therefore, I believe these are my strength.
- I am way too detail oriented. I tried to accoumplish everything and I just want everything to be perfect, but then I realize I'm loosing some time. So maybe that makes me finished some projects a little late. So I think that is one of my weakness.
### simply path
> 成為典範
coachai
OR
3drens
modularized
datetime picker
創造一個 SOP 流程大家使用
### a long time project you manage, how do you measure the project?
NCTU+
student OAuth + GA
monthly active users
### Where do u see yourself in 5 years?
- Commitment
- I think I expect myself becoming a management position. Till then I would like to gain practical exp and eventually become a small team lead. I would able to take the responsibilities for a my team. and continuosly share and learn a lot of new things from my team members. or guilding the new member help them to catch up quickly.
### most challenging project
> Ownership, Insist on the Highest Standards, Customer Obsession
CoachAI, I am a full stack developer and led a team of 20+ graduate students and developed a platform to analyze badminton contests and the performance of national athletes of the 2020 Tokyo Olympics. Our team members are from 5 different labs, and each of them would have a specific research, such as CV, DL.
My job is to build a web to combine all their results and make sure it can clearly present to the coach, players and professors. It would be a challenging project because I had to come up with an architecture and a solution that can be applied for each subproject. The output or data of each subproject are diff, some of them generate csv data, some of them use JSON, and some of them deal with video streaming data
Although it can work in a short term, but it's not a good way for long term value. because our team should spent extra time to deal with different kind of data every time. Thus, as a leader in the group, I chose to coordinate and establish some standards that can bring benefits in the long term perspective.
The first thing I did is to design a backend architecture and use RESTful API to ensure everyone can follow the same rules to query or upload data, and make sure all the data format is the same. It can speed up the communication time and avoid wasting time to do the repeated stuffs.
Secondly, the goal of my project is to improve the performance of badminton players what the players and coaches want to see is the most important thing. Their requirements are my top priority. So, in ordr to provide the higheset value for them, I frequently had meetings with them. Then, I used their feedback and developed an MVP to demonstrate my idea to see whether it was what they wanted.
In the end, I successfully reduced the 80% average data processing time by integrating the backend and refactoring the frontend. Also, I won the Future Tech Award of MOST 2020.
### How do u handle important decision
- based on my previous exp
- weigh on the pros and cons
- take advice from my team members
- look at and evaluate the consequence of the decision
### What is something challenging that you have worked on (technical or non-technical) and what was the impact or outcome of it? What did you learn from this experience?
- Resiliency
- Ability to prioritize
- Ability to stay calm under pressure
- Communication
- Patience
- Ability to take a step back and think/plan when you’re in a difficult situation
## Backgroud check
### What are you working on at this summer
- This is a full time job at NCTU.
- I led a team of 20+ graduate students and build a platform CoachAI to analyze badminton contests and the performance of national badminton athletes of the 2020 Tokyo Olympics
- I Reduced 87.5% average data processing time by integrating backend architectures and designing RESTful APIs with WSGI HTTP Server, Flask, Apache, and MySQL
- Refactored the frontend using React.js and Redux; redesigned the UI/UX workflow with designers
- Implemented authentication workflow with Google OAuth by using JWT and Flask Session
- Won 2020 Future Tech Award among 600+ teams of Ministry of Science and Technology
### Why did you choose (your current company)
- interesting in full stack development
- would like to build some product that can impact the world
### What do you like and not like about (your current company)
- flexible, make own decison
- flat hierarchy organization
- move fast
not like
- do not have SOP
- not clear responsibility
- do not have a senior mentor
## Any question for me
- If you want to give an advice for NG students, what would you suggest what they can do to succueed in the career, tech or non-tech.
- infra or backend?
- how to decide which team i will join
* What is your favorite part working here?
* What is the team culture like?
* What do you think are the most important qualities for someone to be really successful in this position?
* What are the common career paths in this department?
* What are the biggest challenges the company is facing right now?
* What is the typical day at Amazon?
## Thanks
It’s a pleasure to be here and I am very excited about this opportunity.
Thank you for giving me this great opportunity to interview today.
Have a great day.
## Useful link
## BQ
[STAR INTERVIEW QUESTIONS and Answers (PASS GUARANTEED!)](https://www.youtube.com/watch?v=8QfSnuL8Ny8)
STAR and BQ samples
[Tell Me About Yourself - A Good Answer to This Interview Question](https://www.youtube.com/watch?v=kayOhGRcNt4)
- Do not tell personal or family
- Do tell a story
- Give a snapshot (prev compamy, title, responsibilities)
- 
- Make your mini-stories achievement-oriented
- Tell employer what u know about this role
- Tell employer why u are the right fit for the job
[08 common Interview question and answers - Job Interview Skills](https://www.youtube.com/watch?v=1mHjMNZZvFo)
- Introduce
- Confidence, Enthusiasm, Passion, Communication skills
https://www.youtube.com/watch?v=B_LmCruLjis
https://www.youtube.com/watch?v=4hMDN0UAPQ8&t=597s
## Behabior Questions
### link
[[老闆相處] 個人職場感悟第三篇,作為hiring manager來聊聊所謂的behavior questions到底在考什麼](https://www.1point3acres.com/bbs/thread-671498-1-1.html)
### 常見必備問題
[Amazon behavioral interview (questions, method, and prep)](https://igotanoffer.com/blogs/tech/amazon-behavioral-interview?fbclid=IwAR3g2AfdewRLYCZ_DhxeMeS2K3QJEUQ5diWEB-azPJCtW_MtrHNm0z3eaV0)
* 擔當過最難的部份 -> 面試及與海外溝通
* 有什麼收穫 -> 溝通檢視能力,對嚴謹度的重視
* 最有意思的部份 -> 嘗試不同的語言,檢視不同語言的設計是一件非常有趣的事情,像是 js 的弱型態對比於強型態的設計
* 最難解的 bug -> 自己設計的模擬架構要除錯
* 最享受的過程 -> 跟團隊隊員談論架構設計,算法邏輯的時候
* 與團隊成員的衝突 -> 隊員在睡覺該如何處理,隊員進度大幅落後該如何處理。
以下人格特質問題在非純開發職的出現率較高,但如果是新創可能都會問,所以最好也準備一個小故事來對應
1. 你有哪些缺點
* 回答千萬不要太空泛,像是「我太努力了」,這種鬼話,要提到真實並且合乎情理的缺點,然後再提到自己如何克服這些缺點,有哪些解決方式。
2. 專案中最難處理的問題是什麼
* 問題有「最困難」所以就請找出一個最明顯的例子,若是回應的太空泛就好像在顯示其實專案根本不難在硬凹的感覺。
### Tomofun
「實習期間有沒有遇過什麼問題?那你怎麼解決的?」、「你在 Optimize Workflow 上是怎麼 Optimize 的呢?」、「你們公司 QA 的測試環境是根據測試項目分開還是全部合併在一個 Docker 的?那你們和 RD 之間用的 Docker Image 一樣嗎?」、「你當時在學校當 System Administrator 時主要在做些什麼?你覺得你和學弟妹交接的怎麼樣?那他們之後還會來找你問問題嗎?」等,中間還有聊到一些跟我目前實習遇到 App Testing 相關的問題,大約 25 分鐘直屬主管就沒有問題了;接著是 HR 針對一些常見 BQ (Behavior Questions) 提問,例如「你剛剛提到在實習遇到的問題,後來是怎麼提醒自己的呢?」、「平常你會如何紀錄工作的事項?」
「如果今天 PM 要強行在幾天後就發新版本,你知道這段期間測不完手上數百數千個 Test Cases,你會怎麼做?」、「你平常會如何去吸收新科技或新知識,像是 QA Framework 等,也可以順便舉例一下嗎?」,最後 CIO 還問了「你有考慮過你未來的 Career Path 嗎?」
「為什麼選擇 Tomofun?」、「有面試其他家公司嗎?」、「過去身邊的人都怎麼評價你的,優點跟缺點?」、「你剛剛提到...的缺點,那你後來怎麼改善?」
### 最困難的問題
Situation: 幫租車業者開發手機板 app,提供登入、租還車服務,為了方便選擇串接 FB oauth 登入。
Task1: 手機板有時候使用 FB 登入會 crash。
Action1: 研究整個登入流程發現,oauth 登入有兩種方式 pop up 或是 redirect。Redirect 的會收不到 fb 的 response,解決辦法就是加上 disableRedirect 強迫使用 pop up。
Task2: Pop up 大部分的情況是沒問題的,但是使用 line 掃描 QR code 的時候會無法登入
Action2: 研究後發現是因為用 LINE 掃描會開啟 inapp browser,這個狀況下登入也會有問題。
Result:
使用 detect-inapp 套件去偵測如果是 inapp 就跳出 modal 建議使用者更換 browser。
Exception:
另外一個掃描 qrcode app 在安卓上偵測的到,但是 iOS 偵測不到,跑去讀他的 source code 才發現,是因為用 ios 使用那個 APP 會被套件判斷成 safari/604 版本
研究後,發現那個 APP 很舊了,iphone camera 本身就可以掃描 QR code 不會有問題,所以也不會有 iOS 使用者使用那個 APP。
### 最欣賞的同事在公司擔任什麼角色,為什麼欣賞他? *
最欣賞之前實習的 CTO,不只在技術上教導我們很多東西、導入敏捷開發,在平時看他跟媒體記者,或是創業競賽活動當中,都能跟投資人、客戶、媒體等有很好的互動,把創業實現的理念和願景很好的傳達給所有人,在技術跟社交上都有很卓越的表現。讓我期許自己未來也能和他一樣,不知要打造出產品,更要將自己的想法,為何要做這些事情的理念表達出來。
### 除了主要應徵職務外,你在thingnario會如何定位自己,期許帶來什麼樣的影響?
除了後端之外,我期望自己也能在跨部門之間的合作上擔任一個溝通的橋樑,因為我自己擔任過前端、後端等職位,甚至進行過一年的 UX 研究,對於如何找出產品的痛點跟定位很有想法。最重要的是,培養了很優異的溝通能力,能夠將自己腦中的想法清楚的向他人表達。希望能在跨部門之間的合作溝通上可以更有效率。