【學長姊帶路】華城電機/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 assemblylinux.
【學長姊帶路】華城電機/FundPark/Infini Capital/Wonderland 等多間軟體工程師面試分享
經驗很好也深刻體會到自己的不足

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
  1. Generator (Check Out My Sharing)
  2. SQL
  3. Interact w/ API

Synpulse — Banking Technology Consultant — HK

Career | Synpulse (csod.com)

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]
  1. Hiring Manager Interview (Virtual)
  2. Case Study (Virtual) (1hr pre-study, 1hr presentation)
  3. 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…
  1. One hr study for a given case prior to the presentation
  2. Give a speach
  3. Behavioral Questions

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
  1. math — fibonacci
  2. searching
  3. sql query
  1. 針對履歷問題提問,現職工作內容?
  2. 會開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),但實際運行好像有看過文章說tuplelist快,不確定
  • 面試官很肯定地說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. 有沒有別的作法,如何改善
  2. 為什麼要在前面一開始(第七行)加 / 為什麼要用空格區分,有沒有比較快的方式1

有沒有別的作法,如何改善

  1. 為什麼要在前面一開始(第七行)加 / 為什麼要用空格區分,有沒有比較快的方式1
  • strParam += ‘ ‘
  1. 第26行
  • current_word += mychr
  1. 這種字串相加會有什麼問題,如何優化?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比較不熟不過你還是完成了,那我們還是來問一下
  1. 在第6行,WHERE maintable_8KHFC.GroupID = cb_vendorinformation.GroupID還可以怎麼改寫?
  2. 在這邊用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

  1. 有沒有辦法更快?
  2. 可以用set()改寫嗎?
  1. 可以用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 軟體工程師 面試分享整理》

___________

你也有經驗想分享嗎?快來投稿賺稿費吧!

瀏覽 693 次

覺得不錯的話就分享出去吧!

發佈留言

Back to top button