Wednesday, December 15, 2021

Angular interviews

 

1. Pentalog

TS quizzes

  1. how to write empty decorator
  2. oldest version of JS that TS can transpile to
  3. default target of tsconfig.json
  4. how to write TreeNode data type
  5. any type is for...
  6. outFile is for...
  7. type annotation is transpiled to JS as ...
  8. JS is compatible with TS
  9. array vs tuple
  10. supported types of TS
  11. access modifier of properties in class
  12. read-only type in class
  13. enum is for...

enum Direction {
Up,
Down,
Left,
Right,
}

14. what's value of Down

Angular quizzes

  1. role of interceptor
  2. syntax to lazy-load a module
  3. type of valuechanges in formcontrol
  4. selector used to style a component based on a condition outside of the view
  5. when impure pipe run
  6. Which syntax completes the following code so that it dis plays 'Hello Angular!', given that isTrue = false; ? <span>Hello <span …›world</span></span><ng-template #hi>Angular</ng-template>
  7. How can you have a separate instance of service "MyMockService" in every in stance of a component?
  8. How many times will console.log be called in the following example? import {of} from 'rxjs'; of([2,3,41).subscribe({next: n => console.log(n)})
  9. Which code sets the colspan attribute on the td element?
  10. At what lifecycle hook will ViewChild query be accessible? @ViewChild(foo', (static: false}) foo: ElementRef
  11. What is the syntax for a template reference variable?
  12. What is differential loading?
  13. What is the default value of 'ViewEncapsulation'?
  14. How can you specify an alternative class provider?

Interview questions with tech lead

  1. các rxjs operation hay dùng
  2. rxjs map vs. switchMap
  3. viewEncapsulation
  4. control value accessor
  5. tại sao data trong 1 service không bị mất khi chuyển trang
  6. directive
  7. làm thế nào để ng-content select đúng template
  8. nodejs nhiều version khác nhau thì quản lý như nào
  9. dùng gì để provide data cho một page trc khi chuyển đến
  10. dùng Promise ở browser thì có cần import thư viện gì k

1.1 QIMA

Interview questions with customer

  1. life cycle hook
  2. change detection
  3. Promise vs. Observable
  4. testing framework
  5. omit types
Pair programming
- create a simple app using mock data with interfaces

<failed>

1.2 3T Logistics

Interview questions with customer

  1. kể về project hiện tại, vai trò của bạn
  2. cách giao tiếp giữa 2 component
  3. trình bày về subject, observable
  4. bạn dùng primeNg, material chưa, version nào
  5. bạn đã dùng state management lib nào chưa
  6. dùng gì để manipulate dom
  7. bạn có câu hỏi gì cho chúng tôi


2. Produgie

Test

  1. pipe: date, currency, percent
  2. template attribute (div color)
  3. component input

1st interview (Tech member)

  1. Làm sao giải toả căng thẳng trong công việc

...

2st interview (CTO)

  1. Mô tả team đã làm trước đây: process, testing như thế nào?
  2. Code coverage có nên đạt 100%
  3. Nói thế nào với PO về TDD?
  4. So sánh multi-tenancy product (B2B) với end-user product (B2C) ở khía cạnh UI/UX
  5. Process để deploy hotfix lên production giả sử có 3 môi trường (dev, UAT, prod)
  6. Khái niệm micro-ui
  7. So sánh Angular với React? Chọn lựa cái nào?


3. FPT Da Nang

  1. Lifecycle hooks
  2. Promise vs. Observable
  3. Rxjs switchMap vs. mergeMap
  4. State management, dùng gì để qly state
  5. Performance profiling, thông số nào quan trọng
  6. Bạn đã làm ứng dụng real-time chưa?
  7. Thư viện để vẽ đồ thị (plotly)


4. Xebia

  1. Angular directive, ngIf vs ngShow
  2. Html5 vs html4
  3. JS hoisting
  4. JS prototype
  5. Describe your project architecture
  6. How a component get data from main app
<no response>


5. Nashtech

  1. mô tả task bạn khiến tự hào
  2. css architecture
  3. xử lý search input (debounceTime, switchMap)
  4. nếu gặp task khó thì xử lý như nào
  5. refresh token khi bị expire (interceptor)
  6. cắt html trang vnexpress hết bao lâu
  7. thiết kế app frontend như nào để dễ scale
  8. thiết kế lại 1 trang như cragslist để responsive mà k dùng frontend framework (e.g bootstrap)
  9. git - flow để fix 1 bug trên production
  10. Ngoài Angular thì bạn có biết React, Vue? chấm điểm mức thành thạo



6. Contemi

  1. component lớn nhất bạn đã làm
  2. angular change detection, so sánh onPush và Default
  3. làm sao angular phát hiện change của giá trị binding
  4. hàm async trong js, tại sao nói js là single thread nhưng xử lý được bất đồng bộ
  5. bạn đã làm chart, form chưa
  6. real-time app cơ chế như nào
  7. cơ chế của authentication (OAuth2, OIDC, SSO, 3-step handshake???)
  8. các issue hay gặp phải khi code angular
  9. bạn có dùng lazyload
  10. unit test dùng framework gì, code coverage bao nhiêu, có thấy hữu ích không

7. TDT Asia

  1. Tại sao JS single thread mà xử lý dc nhiều tác vụ cùng lúc
  2. nếu setTimeout = 4 rồi setTimeout = 3, thì cái nào chạy trước; với setTimeout = 0 thì sao?
  3. các form trong angular
  4. muốn gửi data theo format multi-path thì cần config như nào
  5. phân biệt Array map, filter, reduce
  6. làm sao query được item trong html theo 1 phần của id (e.g id="item-123")
  7. review code theo các tiêu chí nào
  8. phân biệt localstorage, sessionstorage, cookie
  9. pipe dùng để làm gì, có limit số pipe cho 1 variable k?
  10. làm sao để set global variable trong angular

8. Techcombank

  1. Phân biệt Array push và concat
  2. Các loại pipe, phân biệt pure và impure pipe
  3. Closure, ví dụ về trường hợp bạn đã dùng trong Angular
  4. Validator của ReactiveForm được viết như nào
  5. Các CSS position, dùng position absolute thì phải lưu ý gì?
  6. Grid của bootstrap 4 dùng kỹ thuật gì, nếu không dùng flex thì làm sao để tạo layout
  7. Responsive theo từng màn hình device như thế nào
  8. mobile first responsive
  9. phân biệt switchMap và exhaustMap, nếu có error thì có chạy tiếp k
  10. forkJoin vs. combineLatest

9. Tokenize

  1. tối ưu performance ở project bạn đã làm
  2. nếu 1 trang gallery có nhiều ảnh với các kích thước khác nhau muốn hiển thị theo chiều dọc hoặc ngang thì dùng layout như nào
  3. lazy load khi cuộn trang như nào
  4. phân biệt localstorage, session storage, cookie
  5. nếu muốn làm seo cho search engine thì cần thêm thẻ gì, ở client side thì config seo như nào
  6. toán tử ??, ||
  7. const obj = { a: "one", b: "two", a: "three" }; console.log(obj)
  8. tính chất của Observable, so sánh với mô hình pub/sub
  9. thiết kế component search call từ API với các button search, clear (mô tả rõ html, css, js)
  10. viết hàm async tính giai thừa của n (n >= 0)
  11. bộ nhớ heap và stack của browser
  12. arrow function khác gì function thường, con trỏ this dùng ở đó như nào
  13. cho biết kết quả của đoạn code sau
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}

const lydia = new Person("Lydia", "Hallie");
const sarah = Person("Sarah", "Smith");

console.log(lydia);
console.log(sarah);


Tuesday, November 23, 2021

DevOps inverviews

TEKO

Interviewer là bạn Phương Programming Manager trông còn khá trẻ (chắc chưa đến 30), bạn này đang làm ở Sing vì là nhân viên xuất sắc được sang Sing ngồi cùng sếp.

Câu hỏi pv bắt đầu như mọi cuộc pv khác, đó là giới thiệu bản thân, các công việc đã làm. Sau đó là hỏi về những khó khăn đã gặp phải trước đây, cách để giải quyết như thế nào.  

Những bài toán bạn đã từng gặp phải trước đây?

- Bài toán chia gói hàng (packages) thành các giỏ hàng (buckets)

Làm sao để tiết kiệm thời gian cho shipper? Quy trình sẽ là: từ address dùng google map api để convert ra toạ độ x, y sau đó dùng thuật toán LMS để gom các điểm gần nhau. Cần tinh chỉnh các hệ số để tối ưu nhất có thể

- Check Gitlab pipeline mongodb đã import chưa?

thường thì import data từ QA sau khi tạo mongodb, vì vậy có thể check là nếu mongodb đã create thì lưu vào 1 biến trạng thái trong một file variables.json của gitlab artifact, sau đó get biến này để check có import không

- flexible platform: làm sao các component mềm dẻo, độc lập?

tạo ra một số quy tắc về dữ liệu và styling. về dữ liệu thì dùng input/output cho từng component. quy định không dùng css position absolute, fixed

 - angular: build dynamic components, frontend dựa vào schema từ backend

xử lý với các form dynamic, dung ngx-formly để generate form từ json schema

- Issue Grafana không get dc metric từ Prometheus

Liên quan đến DB của prometheus bị đầy, solution có thể là giảm retension time đến một giá trị phù hợp.

- Cách structure project/pipeline để đáp ứng được deployment cho nhiều service, tenant khác nhau

Chia ra các project khác nhau, tổ chức call từ project chứa config đến project chứa template

Bài Coding

Sau đó là 20 phút làm 1 bài coding đơn giản. Bài toán là parsing data từ dạng csv sang mảng 2 chiều. Trường hợp đơn giản nhất là chỉ có dấu phẩy để tách cột

Nguyễn Văn A, Đinh Tiên Hoàng, Đà Lạt, Việt Nam

Sau đó nâng cao hơn là dùng dấu nháy kép (") để gộp địa chỉ

Nguyễn Văn A, "Đinh Tiên Hoàng, Đà Lạt", Việt Nam

Expect là lời giải phải đáp ứng được cả 2 trường hợp này.

Vì thời gian khá ngắn nên mình đã không giải được trọn vẹn đề bài mà mới chỉ giải quyết từng case. Với bài toán này, để đáp ứng được cả 2 trường hợp thì việc split string đơn thuần không giải quyết được, cần thêm 1 bước xử lý nữa là check dấu nháy kép. Một solution có thể là split dấu phẩy sau đó check dấu nháy kép để cộng string.

VMO

- Cần xây dựng những gì cơ bản nhất để deploy một service lên AWS

- Nếu có khoảng 10 service thì cần chia subnet như nào (dải mạng/subnet mask)

- Làm thế nào để các service trong các subnet connect được với nhau

- Monitoring như thế nào, chẳng hạn Kafka MSK

- Các metric được get như thế nào, lưu ở đâu (prometheus db)

- Nếu Kafka consumer không get message kịp với tốc độ producer thì làm sao


Cyptopie

- k8s có những loại network nào (clusterIP, NodePort, với 1 loại k nhớ)

- có những loại health check nào, phân biệt liveness, readiness, startup health check

- nếu 1 trang gặp sự cố thì xử lý như nào

- chọn EC2 instance type như thế nào, loại M với C thì khác gì nhau

- nếu file image quá lớn thì làm sao 

- nếu Kafka leader down thì xảy ra điều gì

OCG

45'


Bạn đã tự build MySQL có nhiều replica chưa

Nếu RDS MySQL load nhiều thì xử lý như nào?

Scale pod, node trong k8s như thế nào?

Làm sao scale dựa vào kafka metric

Làm sao scale được gitlab runner

Bạn có dựng DB ở nơi khác ngoài AWS để tiết kiệm chi phí chẳng hạn

Cấu trúc k8s

Các tool devops hay dùng

Làm sao deploy app lên các node nhất định

IP của pod được xác định như nào

Làm sao giới hạn access đến DB trên k8s

Bạn có vận hành EKS không

Làm sao monitor hệ thống EKS

Vận hành alert như nào


Sunday, January 24, 2021

2021 - New Year's resolutions

 2020 was a strange but happy year. Now I'm a married guy with a baby who I love so much, she's a little cute creature came to my life just in the end of 2020. It was a year full of events and changes, and my life had turned around so different. I am much happier than I was a year ago, I am more focused on my family and my work than I was before. 

I'm a father of a new born baby girl.

I'm a devops engineer working for German customer.

2021 hopefully will be a better year for me. I'm getting more experience with my carieer, and starting to invest on different assets. Not sure how this year will end, maybe I will change my work and I will be working for a different company, or I will quit the job and work remotely. If it is the first one, I want to work for a product company not an outsource company as I have been working for for many years.

Wish you all have a wonderful year 2021!

Love,

:x Thong.