【學長姊帶路】華城電機/FundPark/Infini Capital/Wonderland 等多間軟體工程師面試分享
原標《2022/2023 軟體工程師 面試分享整理》
文/洪健翔 Hung, Chien-hsiang
Interviews
Fortune Electric — Software Engineer — TW
Software Engineer | 華城電機股份有限公司 Fortune Electric | LinkedIn
- 2023–02–15 Phone Call Screen with HR
- 將成立的新事業體,會由外籍主管帶領台籍工程師團隊,約下周線上面試,與該外籍主管與一名顧問。
- 告知職位為FullStack Engineer
- 2023–02–21 Virtual Interview with Team Lead and a consultant
- Some intro about the new department and development. (Battery mgmt.)
- React experience
- Linux, OS
- sse and websocket (WebSockets are bidirectional. SSEs are mono-directional.)
- Rust (security reason)
- The Lead is young and friendly, experienced at
assembly
,linux
.
FundPark — Software Engineer — HK
- 2023–02–06 Virtual Interview Invitation
- 2023–02–13 Email Reminder
- I have to said the HR is so kind to remind/double-check if there is any problem on my side of scheduling time slots for the meeting. I would have lost the email in the Spam and missed the oppotunity of the interview.
- 2023–02–14 Online Interview with HR
- Talked about the exprience:
- Why do you leave the current company
- Why do you want to work in HK
- What are challanges you’ve faced in previous projects
- Any thing to improve either on soft-skill or hard-skill
- What are you bad at
Infini Capital — Infrastructure Developer (DevOps) — HK/TW
- 2023–02–15 線上面試(一位hr兩位IT主管分別在台灣與香港,聽起來兩位主管都是台灣人)
- Infrastructure Developer (DevOps) | Infini Capital | LinkedIn
- Hedge Fund, 處理交易資料、協助RPA,CI/CD
- 面試時間大約一小時,問題涵蓋:
- 對DevOps的了解
- API Scaling
- 維護資料庫經驗 (大型資料庫),如何改善效率
- Design Pattern
- Linux, Shell script
SQL
熟悉程度- Azure管理狀況
- 經驗很好也深刻體會到自己的不足
- 在聽到我對design pattern不熟後,其中一位還說他能理解因為我不是本科系(但這是我的不對,面試後馬上補上),詢問問題也都耐心回答,指引方向
- 兩位主管很專業也很親切,這場面試不管有沒有上都得到很多資訊(解釋DevOps等),會讓人結束後細細品味很想待在兩位團隊底下做事磨練
Wonderland — Technical Application Engineer — TW/CH
Technical Application Engineer | Wonderland Group | LinkedIn
- 2023–02–14 人資電話訪談
- 大概介紹公司在做什麼(嬰兒用品),工廠在哪(東莞?),規模多大等等。主要使用語言JAVA,做PLM生產管理系統導入,配合工廠克制需求。軟體跟外部購買,聽起來是幫廠商根顧問溝通跟作客改,不是純開發。
- 如何快速上手JAVA、有興趣?、對生產管理系統的了解
- 2023–02–17 用人主管線上面試
- 主管很親切,大概介紹工作內容,問能不能外派,主要希望熟悉Java
- 結束後人諮詢問期望待遇,有超過一百
HuntByte — Back End Debeloper — TW
Back End Developer | HuntByte | LinkedIn
- 2023–02–14 開發兼人資電訪
- 完全新創,第一版產品三月會上線,目前公司兩個後端一個前端,全公司八名成員。
- 聊聊為什麼想換工作,完全開發網頁目前認為有什麼部分(技能)是欠缺的嗎?
- 2023–02–17 辦公室面試,與兩位founder和一位cto
- 辦公室在台北行天宮附近
- 面試主要問過去經驗,為什麼想離職,有沒有考慮其他工作,遠端工作?
- CTO會深入問過去工作用到的技術,對前後端、網頁的能力,unit test? 前後端框架 API、資料庫經驗
CTW — Backend Engineer-Python — JP
Senior Backend Engineer- Python|CTW株式会社|日本-人力銀行
Backend Engineer-Python|CTW株式会社|日本-人力銀行
- 2022–10–24 Applied
- 2022–10–26 Web-test Invitation Received
- 2022–10–26 HR Resume Screening & Web Test
- HackerRank 2 Python 1 SQL
- Generator (Check Out My Sharing)
- SQL
- Interact w/ API
- 2022–10–27 HR Interview Invitation and Arrangment
- Rmb to prepare some Qs to ask
- 2022–11–04 HR Interview — Video Call
- [中文面試] Recruiter是才任職三個月的中國人
- 閒聊。被告知如果進下一階段,Tech Interview會有2 rounds,然後才是CTO/CEO Interview
- 目前IT部門有30人,去年還只有15人,預計全公司擴展至300人
- 被問為什麼會想投CTW,說是因為看到公司過了幾輪募資快速發展,但其實好像跟其他公司搞混了xd
- Some Interview Info
- CTW株式会社面試心得 | 面試趣 (interview.tw)
- 日本互联网公司巡礼12 — 快速成长的游戏平台 CTW — 知乎 (zhihu.com)
- 双向奔赴东京游戏公司CTW,关于日语、工作签和面试 — 知乎 (zhihu.com)
- CTW株式会社 — 搜索结果 — 知乎 (zhihu.com)
- CTW.inc是一家怎样的公司? — 要从中国国内招人啦 — 知乎 (zhihu.com)
- 建议你不要浪费时间面试一家叫 CTW 的公司 — 知乎 (zhihu.com)
- ctw株式会社在国内的求职候选人建议不要浪费时间 — 知乎 (zhihu.com)
- 日本东京互联网IT就职调研 — 知乎 (zhihu.com)
Synpulse — Banking Technology Consultant — HK
Reached out by Meg Milagrosa from Talent Acquisition Team on LinkedIn
- 2022–10–25 HR Team Reached Out
- 2022–10–27 Replied w/ My CV and Arranged A Phone Call
- 2022–10–28 Phone Screen & Arranged The Next Round Interview
- [Interview Process]
- Hiring Manager Interview (Virtual)
- Case Study (Virtual) (1hr pre-study, 1hr presentation)
- Head Interview
- 2022–11–04 1st Round Virtual Interview w/ Hiring Manager
- Only discovered the 1st Round Interview was actually interviewing with a Consultant in half an hour to the interview lol
- Related Preparation Materials
- The interview went smooth I think
- 2022–11–07 2nd Round Interview Invitation with Associate Partner (Case Study)
- Prepare for the Interview Process of…
- One hr study for a given case prior to the presentation
- Give a speach
- Behavioral Questions
- Preparations
- 2022–11–11 2nd Round Interview w/ AP (Case Study)
- Anticipated process:
- 1 hr case study (prior to the call) -> 10 mins presentation -> 50 mins QA
- The material I used to prepare before the interview (Mock Technology Consulting Case Interview (Case Study): Architecture Strategy) that you can use.
- Real Process: TL;DW (my draft ppt based on given question, made 1 hr prior to the interview)
Pinkoi — Backend Engineer — Buyer Engagement Squad — TW
Backend Engineer — Buyer Engagement Squad|Pinkoi_香港商果翼科技|台北市-人力銀行
- 2022–10–24 Applied
- 2022–10–25 Asked for Assignment
- 2022–10–27 Coderbyte
- Codebyte 2 Python 1 SQL
- math — fibonacci
- searching
- sql query
- It’s much easier than the CTW one
- 2022–11–03 Online Interview w/ an Engineer Lead and a Backend Engineer 2–2.5hrs
- Preparation Materials:
- Processes and Threads | Operating System
- What Happens When You Click a Link? URL/ HTTP/ Domain Name/ DNS/ IP Address
- API call — implement retry mechanism into python requests library / try-except using Python requests module
- TCP/IP | Backend 101
- More on What I’ve Prepared
- More on Others’ Successful Interview Sharing
- Interview Experience:
- 與兩位工程師中文線上面試
- 針對履歷問題提問,現職工作內容?
- 會開
Markdown
共享,針對前次網測答券 – 三題題目依次討論,然後加考一題白板題
- 第一題我的答案
def MathChallenge(num):
f0, f1 = 0, 1
while f0 < num:
if num in [f0, f1]:
return 'yes'
f0, f1 = f1, f0+f1
return 'no'
- 針對第五行
if num in [f0, f1]:
- 請問
[f0, f1]
還能夠用什麼資料結構來代替 - 再問,若
[f0, f1]
改成(f0, f1)
,{f0, f1}
,效能有差嗎,誰比較快 - 回答
if num in [f0, f1]:
if num in (f0, f1):
if num in {f0, f1}:
- 三個都是O(n),但實際運行好像有看過文章說
tuple
比list
快,不確定 - 面試官很肯定地說
tuple
最快,說之前應為這個更改,順利提升內部程式運行速度 - 後來自己用電腦測試,實際上並沒有什麼差別…
- 測試結果放在這邊,如果大家有什麼不一樣的看法也歡迎留下意見,不確定是自己測試錯誤還是對方誤導
import time
from tqdm import tqdm
time_for_assing = []
time_for_not_ass = []
time_for_tuple = []
n = 250000
for _ in tqdm(range(100)):
# assign
start = time.time()
a = ('a '*n).split()
for _ in a:
pass
time_for_assing.append(time.time()-start)
# no assign
start = time.time()
for _ in ('a '*n).split():
pass
time_for_not_ass.append(time.time()-start)
# tuple
start = time.time()
for _ in tuple(('a '*n).split()):
pass
time_for_tuple.append(time.time()-start)
print('assigning test Starts...')
print(f'avg time_for_assing: {sum(time_for_assing)/len(time_for_assing)}')
print(f'avg time_for_not_ass: {sum(time_for_not_ass)/len(time_for_not_ass)}')
print(f'avg time_for_tuple: {sum(time_for_tuple)/len(time_for_tuple)}')
print('assigning test Ends...\n')
# purely test the difference btw list and tuple
time_for_t = []
time_for_l = []
n = 100000
for _ in tqdm(range(1000)):
start = time.time()
for i in tuple(range(n)):
pass
time_for_t.append(time.time()-start)
start = time.time()
for i in list(range(n)):
pass
time_for_l.append(time.time()-start)
print('purely test the difference btw list and tuple Starts...')
print(f'avg time_for_tuple: {sum(time_for_t)/len(time_for_t)}')
print(f'avg time_for_list: {sum(time_for_l)/len(time_for_l)}')
print('purely test the difference btw list and tuple Ends...\n')
# test different way to concat the str in python
time_for_t = []
time_for_l = []
n = 3000000
s = 'a'*n
for _ in tqdm(range(100)):
start = time.time()
tmp = ''
for ss in s:
tmp += ss
time_for_t.append(time.time()-start)
start = time.time()
s_list = []
for ss in s:
s_list.append(ss)
s_list = ''.join(s_list)
time_for_l.append(time.time()-start)
print('test different way to concat the str in python Starts...')
print(f'avg time_for_t: {sum(time_for_t)/len(time_for_t)}')
print(f'avg time_for_l: {sum(time_for_l)/len(time_for_l)}')
print('test different way to concat the str in python Ends...')
100%|██████████| 100/100 [00:03<00:00, 30.00it/s]
1%|▏ | 13/1000 [00:00<00:07, 128.83it/s]
assigning test Starts...
avg time_for_assing: 0.010596342086791992
avg time_for_not_ass: 0.010336775779724122
avg time_for_tuple: 0.01205378293991089
assigning test Ends...
100%|██████████| 1000/1000 [00:06<00:00, 152.01it/s]
0%| | 0/100 [00:00<?, ?it/s]
purely test the difference btw list and tuple Starts...
avg time_for_tuple: 0.0033366718292236327
avg time_for_list: 0.0031881237030029295
purely test the difference btw list and tuple Ends...
100%|██████████| 100/100 [01:38<00:00, 1.02it/s]
test different way to concat the str in python Starts...
avg time_for_t: 0.71734628200531
avg time_for_l: 0.261464569568634
test different way to concat the str in python Ends...
- 再來是第二題,針對字串相加進行提問1
from collections import defaultdict
def SearchingChallenge(strParam):
if strParam[0] == ' ': return -1
# record the word and compare it through the iteration
strParam += ' '
current_word = ''
word_dict = defaultdict(int)
max_word = None
max_ct = 0
for mychr in strParam:
if mychr == ' ':
this_max = max(word_dict.values())
# update when it's bigger than bf
if this_max > 1 and this_max > max_ct:
max_word = current_word
max_ct = this_max
current_word = ''
word_dict = defaultdict(int)
continue
current_word += mychr
word_dict[mychr] += 1
return -1 if not max_word else max_word
# keep this function call here
print(SearchingChallenge(input()))
- 有沒有別的作法,如何改善
- 為什麼要在前面一開始(第七行)加 / 為什麼要用空格區分,有沒有比較快的方式1
有沒有別的作法,如何改善
- 為什麼要在前面一開始(第七行)加 / 為什麼要用空格區分,有沒有比較快的方式1
- strParam += ‘ ‘
- 第26行
- current_word += mychr
- 這種字串相加會有什麼問題,如何優化?1
- 再來是SQL題,有先告知自己當時因為公司沒有使用,所以對SQL不熟
SELECT
maintable_8KHFC.GroupID,
cb_vendorinformation.CompanyName,
Count(*) AS Count
FROM maintable_8KHFC, cb_vendorinformation
WHERE maintable_8KHFC.GroupID = cb_vendorinformation.GroupID
GROUP BY cb_vendorinformation.CompanyName, maintable_8KHFC.GroupID
ORDER BY Count, maintable_8KHFC.GroupID ASC;
- 面試官說,你有說你對SQL比較不熟不過你還是完成了,那我們還是來問一下
- 在第6行,WHERE maintable_8KHFC.GroupID = cb_vendorinformation.GroupID還可以怎麼改寫?
- 在這邊用WHERE跟JOIN的效能以及效果差別在哪?
- 現場加考第四題白板題,移除重複項,順序不能改變
numbers = [1, 10, 8, 7, 7, 2] -> [1, 10, 8, 7, 2]
[1,10,10,10] -> [1, 10]
[2,2,2,2] -> [2]
[1,10,8,8,7,6,6,7,5] -> [1,10,8,7,6,5]
contrain:
len(numbers) >= 1
from collections import defaultdict
def delete_dup(numbers):
output = []
num_dict = defaultdict(int)
for curr_num in numbers:
if num_dict[f'{curr_num}'] >= 1:
continue
num_dict[f'{curr_num}'] += 1
output.append(curr_num)
return output
- 有沒有辦法更快?
- 可以用
set()
改寫嗎?
- 可以用set()改寫嗎?
- 至於前面根據其他面試者經驗準備的資料,一題都沒考到。剩下稍微閒聊,然後就切到HR。閒聊過去經驗、發展規劃、其他面試、期待薪資(查過比薪水2大概知道薪資範圍,因為只是來練習面試,所以就回1.2M NTD)等。整個流程進行比預期快很多,原本信中預估2–2.5hrs,實際用不到一小半。
阿爾發投顧 — Python後端工程師 — TW
Python後端工程師|阿爾發證券投資顧問|台北市-人力銀行
- 2022–10–24 投遞
- 2022–10–24 面試邀約
- 安排面試時間10/28(五)上午11:00,將採線上面試,面試時請準備過往作品集或專案進行介紹。
- 2022–10–27 面試邀約 回覆時間 重新安排面試時間至下周
- 2022–11–04 線上面試 請準備過往作品集或專案進行介紹
- 準備過往作品集或專案進行介紹
- [面試流程]
- 中文視訊(半小時),面資訊處經理(原後端工程師升上來),對方也是中山畢業資訊博班。原本兩位後端好像也都是中山的,一位回去中山念研究所了,另一位去博班要做教職。
- 流程上就是自我介紹(現職、工作內容、專案)
- 為什麼轉作工程師?
- IT Manager為什麼還會接觸到開發?
- 後端使用什麼Framework?
- 什麼時候開始寫程式?寫多久了?
- 資料庫你除了MongoDB以外還有用什麼?熟SQL或MySQL嗎?
- 為什麼會想要換新工作?
- 對我們公司的了解? 接著進行公司介紹,然後開放問問題。問: 目前IT團隊規模跟組成
- 最後是一些公司制式要問的問題
- 工作上遇到困難會怎麼去解決?
- Git版本控制協作經驗?
- 如果專案上市在即,而公司資安被官方找出弱點需要修正,你怎麼辦?
- 最後是期望薪資3,因為只是來練習面試,一樣開1.2M NTD
Others
一些因為時間有衝突,或者是已經練過類似,或是來不及/懶得打上來XD,如果想知道可以再留言告訴我
- Mindee — Solutions Engineer — FR
- Appier — Technical Service Engineer (GCR) — TW
- Tetrion Capital — Software Design Engineer — HK
- Tetrion Capital — DevOps Engineer — HK
- Marketech International — Artificial Intelligence Engineer — TW
- Wipro — TV/STB Test Engineer- Python — TW
- Wipro — Software Engineer — IN
- (Consus) Wipro — Sr. Frontend Engineer — TW
- (Consus) Wipro — Software Engineer frontend /Sr. Engineer-Backend — TW
- Tea House — Financial Engineer — TW
- 鈊象電子 — Server軟體工程師 — TW
文由 洪健翔 Hung, Chien-hsiang 授權轉載, 原文:《2022/2023 軟體工程師 面試分享整理》
___________
你也有經驗想分享嗎?快來投稿賺稿費吧!
瀏覽 687 次