Saturday, May 7, 2016

Random stuff about working at Google, or A Delphi guy walks into Google...

Working with C++ hasn't really been a huge barrier; if you don't mind the painfully long build times. The Chromium developer builds are structured to be more incremental and allow for small, localized changes to build relatively fast. However, many times doing a rebase/update on the local git repository will almost always require a full rebuild. Even on my 24 core, 48 thread machine, builds can take about 1-2 hours. Building on a top-end Surface Book is easily 2.5x that.

There is a rather large effort in Google to move all the various Chrome builds for the different platforms to CLANG/LLVM. Apparently, it is faster at building than VC++. I guess "fast" is relative. To me, "fast" is the Delphi compiler. Clearly, I'm spoiled.

I still use Delphi to poke at the Windows APIs. The latest is trying to figure out strange issues with DwmGetWindowAttribute using the DWMWA_CAPTION_BUTTON_BOUNDS vs. WM_GETTITLEBARINFOEX. Depending on the Windows version, and after converting the coordinates, the left extent is different by some number of pixels. There seems to be no system metric to account for this difference.

Under Windows 8.x and 10, WM_GETTITLEBARINFOEX will return wild and crazy values if the screen is magnified by the Microsoft magnifier app. To see this in action, just run the latest Chrome (50.x.x.x), launch the magnifier (WinKey-+), then resize the browser window. Notice how the "identity/avatar" button next to the minimize button flies around the caption bar. I say Windows bug.

Nearly everything you see in Google Chrome (on Windows at least) is rendered by Chrome. About the only thing that Windows gets to render, are the minimize/maximize/close buttons and the top-level frame. That may change in the future.

Shortly after I joined Google, one of my daughters was able to land an internship in Google's culinary program. She has a degree in culinary arts and this opportunity has been great. Part of that is that we carpool to work and will often get to have lunch together. She even has access to nearly all the same facilities as I do. So she can just use her access card and show up at my office. There is a high probability that this will turn into a full-time gig. Google is renowned for the quality and variety of food at the various cafes. As a father, it would be cool to see her name listed as the sous-chef or even head chef at one of the Google cafes.

As open as Google is, it still tightly controls a lot of internal information. With the employees, they're extremely open about what is going on in the company. More so than I ever remember with Borland or Embarcadero. Yes, they have leaks at times, and they do actively seek out the sources of those leaks. Yes, people have been fired for leaking confidential company information.

After more than two months as a Noogler (apparently I'll be a Noogler for about a year), things seem to be going well. It's certainly challenging and demanding, yet at the same time I've been allowed to proceed to figure out my "place" at my own pace.