<
回复: 0
收起左侧

Amazon Senior Engineer Onsite

匿名用户-8BDIY  2024-5-23 23:39:21
本楼:   👍  2
100%
0%
0   👎

2023(10-12月) 工程类 本科 全职@amazon - 猎头 - Onsite  | 🙁 Negative 😐 AverageFail | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
The interview experience was terrible .

The recruiter set me up for 3 interviews on the first day and 2 interviews on the second day. Amazon canceled the second day and somehow couldn't reschedule for over a month. My first interview was in one month, and my second interview was in the middle of the next month.

Overall advice I have is that:
1. Amazon coding questions have likely gotten a little harder. It's no longer exactly from LeetCode, and sometimes the interviewer wants you to do something unusual.
2. When you write your LP stories, make sure you write about what you learned and how you would do it differently. They will ask this follow up every single time.
3. Ask your recruiter for the LPs in each interview. The recruiter will usually tell you, and 50% of the time, it's correct. The other 50% of the time, the interviewer asks too many.
4. You can tell your interviewer that you got the LP before and they will give you a new one.
5. They are starting to ask what year your LP story happened in. I've been told once before that stories past 4 years are too old.
6. The Amazon system design interview is 30 minutes long. Ask them if they want to see numerical calculations, or if they are okay with you just saying whether the system is read-heavy or write-heavy. Often times, you won't draw very much, and the interviewer will guide you to discuss a very specific part of the problem, like performing fanout or something.
7. DO NOT repeat any stories at the senior level. I didn't do this, but I've heard it's an interview killer.


----------


Interview 1:

This guy was HORRIBLE. I could not understand his English at all. My company name sounds similar to a Python package name, and after I told him my LP stories, he asked me if I work at the place that make the Python package. He wasn't even listening to what I said when I told him what my company does or what I do.

A time where I took on something significant outside my area of ​​responsibility. Why is it important?

A time where I strongly disagreed on my manager or peer.


Coding question (Note the bad English):

```
You are in platform team. Various internal teams have been asking for a central place to store customer preferences in the form of attribute.
When a client try to access a preference (read/write)
1. The client must have the permission to do perform the operation (read/write) on the preference.
2. The value need to be verified before it's stored in the database. Let's say the value needs to conform to a constraint (eg, regex pattern, range of number, valid chars).

Given access to database (set/get preference), your task is to provide the low-level code for two functionalities
* getCustomerPreferenceValue(clientId, customerId, attributeName)
* setCustomerPreferenceValue(clientId, customerId, attributeName, attributeValue)

You decided the type of the parameters/return value.

public class PreferenceService {

/* Consider this as a ready to use object.
* db.getPreference(customerId, attributeName);
* db.setPreference(customerId, attributeName, attributeValue);
*/

    private DataBaseAPI db;

    // You can modify any param/result type in the method definition

    public Attribute getCustomerPreferenceValue(String clientId, String customerId, String attributeName);

    // You can modify any param/result type in the method definition

    public void setCustomerPreferenceValue(String clientId, String customerId, String attributeName, String attributeValue)

    }
}


/* Consider this as a ready to use object.
* db.getPreference(customerId, attributeName);
* db.setPreference(customerId, attributeName, attributeValue);
*/
```

I asked what you use the clientId for, and he said he didn't know. He said I can ignore it.
After I wrote the code for getCustomerPreferenceValue, he asked me why I wasn't using clientId.

He asked me what happens in setCustomerPreferenceValue if there is no previous value in the DB. I told him it's an UPSERT (update or insert) and it will create a new value if it doesn't already exist. He said he wants me to write two separate methods: one for update, one for insert.

I wrote both methods, and then he acted confused and said why would you write two different methods?

We ran out of time. I asked him to clarify what he was asking, and he told me to forget about it. This happened over and over.

----------------------

Interview 2:

Most innovative thing
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
log_list.sort(key=lambda log : log.time)
    for log in log_list:
        customer_id_to_pages_visited[log.customerId].append(log.pageVisited)
    sequenceToFrequency = defaultdict(int)
    highestFrequency = 0
    mostFrequentSubsequences = []
    for pageVisited in customer_id_to_pages_visited.values():
        numLogs = len(pageVisited)
        if numLogs < n:
            continue
        for start in range(numLogs - n):
            key = tuple(item.pageVisited for item in pageVisited[start: start + n])
            sequenceToFrequency[key] += 1
            if sequenceToFrequency[key] > highestFrequency:
                mostFrequentSubsequence = [key]
                highestFrequency = sequenceToFrequency[key]
            elif sequenceToFrequency[key] == highestFrequency:
                mostFrequentSubsequences.append(key)
    return mostFrequentSubsequences      
```

After this, he said he wants me to make it faster. I talked about using a rolling hash. He said don't use a rolling hash.

I mentioned that you could use a prefix trie. He liked this idea, but it's not faster.

This interview was also confusing, but not as confusing as the first.


---------------

Overall result:

No hire for senior, offer for L5. I rejected it. This was a terrible experience.

评分

参与人数 3大米 +12 收起 理由
vassili007 + 1 很有用的信息!
清道神君 + 10 欢迎分享你知道的情况,会给更多大米奖励!
elliez0722 + 1 很有用的信息!

查看全部评分


上一篇:亞麻OA
下一篇:准备谷歌面试可以只刷grind169吗
您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

Advertisement
>
快速回复 返回顶部 返回列表