Introduce yourself
My name is Rex, I graduated from sun-yet-sen university in 2016, It's the best university in sourth China. My major is software engineering. And I got the bachelor degree. I have 6 years’ experiences as a software engineer. And I have been working in huawei for about 3 years until now. And before in huawei . I worked as a software engineer for 2 start-up companies. I'm in charge of security protocols and certificate management development in HUAWEI. I serve for the other department , my major program language are C/C++, my major job responsibilities are analyzing requirements, designing the solution, coding, unit testing and publishing library to my customer, It is end to end process. I'm a self-motivated and high standard employee. Over these years, I have built up lots of transferable skills and experiences. And I believe that I can drive company forward by my experiences and skills.
Why amazon阁最?
Amazon serves for millions of small and middle size companies with AWS. That is very meaningful and cool. Even though amazon is an international company now, it still keep Customer Obsession, which is the same as Huawei. I can't agree more with this values.
As an engineer, I am attracted to Amazons culture of taking ownership, which will make us do better in work. I implement this value in my work, and I'd like to join a team that has already reached for this standard.
Finally, because of amazon's huge amount of customer and various of user scene, there are many cases for study in Amazon.
[failure](Ownership, Earn Trust, Customer Obsession)
tell me about a time when you make a mistake
I’m the kind of person who tries to learn and grow from every mistake.
Once, I developed an API named Init, which would load dynamic library by calling the system function 'dlopen'. I filled in some parameters (lazy, deepbind) when using dlopen. It worked well in my test machine, but unfortunately, it made some mistakes in my customer's system.
After that, I took the ownership, and I booked a meeting with my customer and dived deep to the reason. I checked all their use cases, and finally found out the reason. One of the parameter caused the mistake and made my customer's system call the wrong function. I came up with a solution quickly and published a fixed version to my customer that day. Even though I made a mistake, I reacted fast to solve this issue in a short time. So my customer forgave me and praised me for my quick response. And also, I earned trust from my customer because of my quick response and diving deep spirit.
What I learn from this mistake is that even though something looks simple, if it is involved in a complexed system, I must be careful and dive deep the background.
follow up : what parameter? RTLD_DEEPBING , used the function in library . This led to the user not being able to use their function first.
tell me about a time when you make a mistake
tell me about a time when you make a big mistake? (ownership, dive deep, earn trust)
S: I actually realize what ownership is and the importance of upholding the highest standards in this mistake.
When I became an owner of a cooperation-work project for the first time, I made a mistake. One of my colleague in my team was in charge of debugging with customers. The customer needed to integrate our library in their system. One day, my colleague told me that all of the debugging use case had already passed and we could deliver a public version to our customer. I doubted about this conclusion but I was busy developing a new feature at that time, so I didn't check the result, and allowed him to publish a version to our customer. According to the Murphy's Law, there were many bugs in their system after integrating our library. The bugs appeared one after the other.
T: I needed to fix all bugs and improved the quality of our product.
A: After that, I took the ownership. I put my own work aside and devoted myself to fix bugs with colleagues. I recorded all the bugs in a list and fixed them. At the same time, I dived deep to those bugs and found that many bugs needed to be fixed with other team. So I booked a meeting and discussed responsibility boundaries with them. After discussion, I made a table including all the possible boundary issue, and divided those boundary issue to the team who should be in charge. After fixing all the bugs, I insisted on the highest standard and made a plan to improve the quality of product, including test case increase, code review again and use scenes review.
R: Finally, under my leadership, all the bugs were solved. And the customer was satisfied with my quality improve plan. We earned trust from our customer again.
[nagetive feedback](Ownership, Earn Trust, Customer Obsession)
manager/peer:
customer:
tell me about a time when you recive a nageive feedback from your customer?
S: I got a negative feedback from my customer in a project. One day, I needed to make a publish plan with customer and code by myself. I listed all the features and workload and checked one by one with my customer. But we had ambiguity on memory optimization in this project. One of the features was to load two same certificates in the system. There will be memory waste if I parse same certificate twice. I thought the memory optimization should be included in the second debug version. But my customer thought it should be in the first version. However, both of us left out this important issue in the meeting. We found out this issue in second day meeting, and I insisted that the work load of the part of memory optimization was out of first version, and the delivery day would delay. So, to avoid delay, it should be included in the second version.
My customer was not happy and criticized about my plan with my manager.
T: So as to earn trust from my customer and base on customer obsession, I needed to give a solution in a hurry.
A: I came up with the solution with my manager. I evaluated the workload of memory optimization and took action immediately. I read the code of opensource and designed a solution for certificate memory optimization quickly . After that, I told my manager that I can finish the memory optimization on time but I need to work overtime for two weeks, and I will keep the words. I also told my customer that I will work hard to finish the memory optimization on time. After that, I sent the progress of project weekly to my customer and manager. So they can know that the progress of this project is going well.
R: Finally I finished the work on time and there were no bugs in debug version. My customer was very satisfied with the quality and I earned his trust again. What I learn from this story is that I should stand in the position of my customer and think about what they want and when they want. And also making plan clearly is quite important.
[miss deadline]
tell me about a time when you miss the deadline
[conflict](Insist on the Highest Standards, Ownership, )
tell me about a time when you disagree with you manager?
S: One day, I disagreed with my manager in huawei company. I got a requirement from my customer. They needed to load certificate buffer into the system. And they needed to use two different components to do the same thing. My manager wanted me to finish all by myself in one week. But after estimating carefully, I realized that if I insist on the highest standard in this project, I cannot finish it by myself in one week. So I disagreed with my manager and told him that I needed two weeks to finish it in highest standard. But my manager insisted on finishing it in one week because of the pressure from our customer.
T: As a member of platform department, which serves for other department in HUAWEI company, the customer obsession is deeply engraved in our minds. I could not lower the standards and the deadline was so tight. And I didn't want to disappoint my customer too.
A: So I took the ownership and dived deep to find the solution. I read the source code and designed the API. I believed that other team members could help me after I designed the solution clearly. I discussed with my manager and asked whether other colleges could help me to finish the project. I promised that I would finish the harder component and I would guide the college to finish another one. My manager agreed with my idea.
R: Finally, I insisted on the highest standard to finish coding and testing. And I delivered the component on time. There were no bugs in our delivered version.
tell me about a time when you disagree with your colleague ?
[most challenging](take ownership , dive deep , bias for action)
tell me about your most challenging projcet?
S: One day my manager called me to the meeting room in a hurry. When I came into the meeting room, I was shocked. There were so many high level colleagues in the room. They were attending the online meeting, talking about a bug in production environment. I came here to hear about the background of this bug because I needed to fix it. After the meeting, I got the information that our device was lack of memory when we loaded the super large CRL certificate with openssl. There are more than 100 thousand revoke list item in this crl certificate. It's not a normal certificate.
T: I took the ownership and I needed to fix this bug in one month. I must be careful. Since there were millions of devices having this bug, the solution was very important.
A: I took action immediately. I recorded the information in previous meeting. I got the super large crl certificate from colleague. And mocked the scene where the bug was triggered. I loaded the super large crl certificate with openssl and debugged the program step by step. I learned about the ASNII module of openssl and how it parsed certificate and alloced memory. I also took statistics of the call times of function malloc, which were about 200 thousand times. After that, I got a conclusion that the root cause of the bug was memory fragmentation. After that, I designed the solution and booked a meeting room and invited the high level colleagues to review this solution. I introduced my solution to them in detail. I used the mempool and pointer offset to reduce the memory alloc times.
R: Finally they agreed with this solution and I started to code. After 3 weeks, I finished the code and had a test. I reduced the memory alloc times from 200 thousand to 200. It's a great optimization and fixed the bug. I got a praise from my team.
[took a risk]
[sacrifice short for long goal](Think Big)
[tough decision]( Bias for Action, Ownership , Deliver Results)