Skip to main content

Noogler became n00b became Tweep!

Friday will be the 14th anniversary of my first tweet. Umm... it hasn't aged well. The Internet was stunned by the revelation that I was reading my email.

In more contemporary news, this week I joined Twitter as a Principal Engineer in Engineering Effectiveness.

I'll try to build things that help engineers inside Twitter have a lovely, productive time creating the cool things that they make every day. Delighting developers is something that I've continued to be passionate about across Oracle, Google, and Facebook. I'm really excited to make the jump from being a long time user of Twitter to being part of the Twitter team. It's pretty cool that I get to continue to work on stuff that I enjoy so much. Onboarding remotely is a... weird... experience, but so far I'm having a whale of a time (geddit? gurgle).

I do leave Facebook with a great amount of sadness and fond remembrance. Whatever you may think about it (or any of the tech companies, frankly) from a societal and moral perspective, the experience of being an engineer at these companies is truly awe inspiring, humbling, and transformative (and frankly, fun). I was lucky to learn and grow with an exceptional set of talented and passionate people. I got to work on some challenging and fascinating projects. Most of all, I experienced a tremendous amount of support and care from people I worked with at every level as we went through the tummult and disconnection of working from home and adjusting to how that impacted just about everything in strange and unexpected ways.

This is only the fourth company I've worked for in (a quite shocking and hard to believe) 23 years in the software industry, 16 of those years living in Silicon Valley. Seeing huge change in the perception of the tech industry, watching cozy little startups transform into big hulking tech, and noticing the general perception of the Bay Area as a whole shift significantly, I still feel a sense of delighted disbelief about where I am. This wee man from a working class family in Leith somehow made it to be the first person in the family to finish six years of secondary school, make it to university, and then crazily make it all the way to this lucky life in a distant country doing what I'm passionate about for a living for most of my adult life. I've worked hard, but I think I've also been very very lucky, and it's part of my fiber that I will always do whatever I can to help others who need a bit of that luck too, whatever background they're from.

So pumped and ready to get started on chapter 4 :)

Comments

Post a Comment

Popular posts from this blog

Java Blooper #2: Must be a Better Way...

The post you're reading is ancient, and yet slightly inexplicably popular :) I've recently started blogging again in 2020 with some fresh content. Check out some of the new topics about blogging again , dynamic method invocation , and aapt2 . It's Monday, which means it's time for another blooper ... What's wrong with this code? boolean hasThing( List things, Thing thing ) { for ( int i=0; i < things.size(); i++ ) { if ( thing.equals( things.get( i ) ) ) { return true; } } return false; } Update: Minor edit to add missing parenthesis from if statement that got "lost in translation" en-route to the blog :)

Configuring Mac OS X Terminal

The post you're reading is ancient, and yet slightly inexplicably popular :) I've recently started blogging again in 2020 with some fresh content. Check out some of the new topics about blogging again , dynamic method invocation , and aapt2 . I recently installed Leopard (Mac OSX 10.5) on a new mac. There are a few factory settings I usually change on a new installation, although by far fewer than I do typically with Windows. One of them is the default keyboard configuration for Ctrl+Left Arrow, Ctrl+Right Arrow, Page Up, Page Down, Home, and End in Terminal. The default settings drive me a bit potty since I'm used to using Linux and emacs every day at work. Changing them is easy, fortunately. Just visit Keyboard under Settings in Terminal->Preferences , and modify the following keys, so that their action matches the value shown. You can edit the keystroke for an item by double clicking on it, selecting "send string to shell", and typing the indicated ke

Java Blooper #1: Ternary Insanity

The post you're reading is ancient, and yet slightly inexplicably popular :) I've recently started blogging again in 2020 with some fresh content. Check out some of the new topics about blogging again , dynamic method invocation , and aapt2 . From time to time, we all write code that could be clearer. Sometimes in the rush of solving a problem, we don't pay attention to the micro details of the code flowing from our fingertips. Other times, we refactor some existing code, and don't necessarily take the opportunity to clean up as much as we could. I find it useful sometimes when reading code to think about whether it could be rewritten in a more straightforward way, and if so whether any lessons can be learned about writing tight and expressive, and most importantly, readable code. Over the next few weeks, I'm going to blog weekly examples of some Java code bloopers that I've seen. All the examples are real and have been observed "in the wild".