Aug 31, 2024

Timeline of getting a green card(EB1-3) after L-1A

My case took 1 year and 6 months. It could take 1 year if I skipped PERM preparation at the beginning and I submitted I-485 in Jan. 2024. I postponed the submittion because of the abroad travel between Jan. and Feb. 2024.


Aug. 28 2022 Arrived in US.

Sep. 01 2022 Transfer to US office.

Mar. 08 2023 Requested to start green card application.

Mar. 15 2023 Approved by the company.

Jun. 2023 Started PERM.

Jun. - Jul. 2023 Prepared required documents.

Aug. 11 2023 Submitted PERM.

Oct. 2 2023 Noticed that L-1A can skip PERM.

Oct. 16 2023 Started I-140

Nov. 1 2023 Submitted I-140 with premium 

Nov. 14 2023 Approval of I-140

Nov. 30 2023 Started I-485

Mar. 2 2024 Submitted I-485

Aug. 27 2024 Approval of I-485 and recived the green card.


Jul 26, 2024

liquibase.exception.LockException

Unlock with the following SQL


UPDATE DATABASECHANGELOGLOCK SET LOCKED=0, LOCKGRANTED=null, LOCKEDBY=null where ID=1;

Jun 21, 2024

TestNG unable to find valid certification path to requested target

I have the following error when I run a test.

org.testng.TestNGException: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at org.testng.TestNG.parseSuite(TestNG.java:327)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:348)
at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:39)
at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:105)
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)

The reason is Java keystore does not have testNG certificate. You need to add it.
Here is how to.

1. Download testng.org certificate.
    Visit https://testng.org/ and click filter icon on the address bar.


Click "Connection is secure"



Click "Certificate is valid"


Click "Details" tab







Click Export button.

Download "testng.org.crt" file.


2. Run the following command.
"C:\Program Files\Zulu\zulu-11\bin\keytool.exe" -importcert -file C:\dev\testng.org.crt -trustcacerts -keystore "C:\Program Files\Zulu\zulu-11\lib\security\cacerts"
   You will be asked to input password. The default password is "changeit". And input yes to trust testng certificate.


Now your test will pass or fail. Good luck!

May 15, 2024

2024 resolutions: Read 10 favorite books for software engineers

Alex shared his favorite 10 books. I plan to read 10 books in 2024.

https://x.com/alexxubyte/status/1788232858198556762


 General Advice

1 - The Pragmatic Programmer by Andrew Hunt and David Thomas
Done 15 years ago? 2 - Code Complete by Steve McConnell: Often considered a bible for software developers, this comprehensive book covers all aspects of software development, from design and coding to testing and maintenance. Coding 1 - Clean Code by Robert C. Martin 2 - Refactoring by Martin Fowler Software Architecture 1 - Designing Data-Intensive Applications by Martin Kleppmann 2 - System Design Interview (our own book :)) Design Patterns 1 - Design Patterns by Eric Gamma and Others 2 - Domain-Driven Design by Eric Evans Data Structures and Algorithms 1 - Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein 2 - Cracking the Coding Interview by Gayle Laakmann McDowell

If I completed above books early, I will try the following books.

The Pragmatic Programmer by David Thomas and Andrew Hunt.

Clean Code by Uncle Bob Martin.
Head First Design Patterns by Eric Freeman.
Refactoring by Martin Fowler.

Grokking Algorithms by Aditya Bhargava.
Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

Learning SQL by Alan Beaulieu (Free E-book).

Growing OO Software by Tests by Steve Freeman.
The Art of Unit Testing by Roy Osherove.
TDD by Example by Kent Beck.


Nov 10, 2023

[git] Delete all branches except master in windows

 Powershell command:

,@(git branch | Select-String -Pattern "[^(*?)\s? master]") | ForEach-Object{$_.Line.Trim()} | %{git branch -D $_}

Jul 14, 2023

How to measure the productivity of an engineering team

Fellow suggests the following 10 measures for engineering metrics. I agree some of them. Let me add my opinon in line. My opinion is based on current company situation that it releases every three months.

Lead time: Yes. It means from the time of customer request to the time of deployment in production.

Cycle time: Yes. It means from the time of staring of the developmnet to the time of deployment in production. However I would like to mearsure to the time of master branch merge.

Number of story points: Yes. I prefer to measure number of stories. Because story points are decided by engineers and it's not correct until the team gets stable. It takes about 1 or 2 years. The problem is after 1 or 2 years, engineers are not in the team.

Mean time to restore in production: No. Dev and Ops are separated. 

Days worked: Yes, but no. The formula of the productivity is output / input. We can use this as input. The challenge is engineers are in several countries. It's little bit hard to calculate work days with holidays of each country.

Context switching: No. There is no way to measure it objectively.

Deploy frequency: No. It should be YES, however current my company has fixed release cycle.

Change failure rate: Yes. I use this measure like defect count / total count of story and defect.

Rework ratio: No. There is no way to measure it objectively.

WIP balance: No. I don't want to measure the process. I prefer to measure the result.

https://fellow.app/blog/productivity/engineering-metrics-what-they-are-ways-to-measure-them/

Apr 29, 2023

Memo: Build sub module in the parent directory.

I had moved to the sub module directory and run the following Gradle command.

gradle build

 

Now I build it in the paraten directory.

gradle :sub-module:build