Hi there! I'm a polyglot Software Engineer at Facebook and frequent public speaker. Previously, I was an Engineering Manager at Netflix. I'm the🏄🏻♀️ webmaster of this little website. I started my career in tech as a UI designer, but the allure of learning to bring my designs to life was too enticing. I write about leadership, JavaScript, TypeScript, Elixir, Rust, and more. Welcome!




This time is different. "Clean slate. Solid foundations. This time I will build things the right way."
Read more

I'm heading for a new adventure!
Read more

This blog post is to share a TypeScript tip I've picked up while creating a new programming language: type narrowing. Type narrowing gives TypeScript more information about the type being narrowed, and allows the TypeScript compiler to be more helpful to you. When used responsibly, narrowing types can make your code easier to understand.
Read more

Here is today's 1:1 topic -- finding success in software engineering interviews. The person I spoke to is new to tech and has been feeling frustrated understanding how to maximize their chances of success. This is largely because they haven't received much feedback on what to improve on post-interview. There is much that isn't right about the tech interview process, but I'll save that post for another time. This guide is for maximizing success in that interview that's coming up for you next week.
Read more

I recently moved my blog from Medium to a self-managed blog built with Gatsby, then deployed on Netlify. After a few weeks of fiddling around, I feel like I've landed on something I'm mostly happy with. I've also automated a bunch of things like performance testing with lighthouse which have made the experience quite great.
Read more

I recently tweeted that I was starting an experiment. 26 people applied to try this out! Over the next couple of weeks, I'll be speaking to as many of them as I can in one-on-one (1:1) meetings over Google Hangouts. With their permission, I hope to be able to share some of the advice I've given them with you. Here is today's topic - growing as an engineer in the context of becoming a tech lead.
Read more

The “Strongly Typed Graph” is something I’ve been thinking about lately. I believe it could significantly improve developer productivity in…
Read more

Commitment can be terrifying. Broken promises are the surest way down the waterslide of low morale.
Read more

It’s far too easy to be misunderstood. Trying to get your idea or point across to someone can often feel frustrating and difficult.
Read more

Skeleton screen loading (also known as placeholder loading) is a technique that enhances the perception of loading in your application…
Read more

Learn to welcome fear. Learn from fear. No one learns and develops skills in a bubble.
Read more

Much has been said about the Elixir language and the Phoenix framework —Phoenix’s performance without compromise makes it a compelling…
Read more

The Dependency Injection (DI) pattern is a subset of Inversion of Control, and is a useful technique for decoupling the creation of a…
Read more

The past month or so, I’ve been working on an Elixir and Phoenix API for a client. I am blown away by how nice it is working with Elixir…
Read more

Previously, I mentioned that Ember’s new Helper implementation landed in 1.13. In my opinion, helpers are one of the most useful, yet least…
Read more

In my previous post, I wrote about moving singleton state in Controllers into Services that back components. This means being able to…
Read more

In the world of software releases, programmers call a significant change in existing behavior a breaking change. Typically, this means that…
Read more

At EmberConf 2015, Yehuda Katz and Tom Dale announced the arrival of certain changes to Ember 2. Most notably, the routable components RFC…
Read more

My awesome colleagues have written about patterns and best practices we use at DockYard, covering everything from the Ember Object model…
Read more

At DockYard, most (if not all) Ember apps we build for our clients require analytics in some form or other. For many of these apps…
Read more

Breadcrumb navigation isn’t a new concept, in fact, it’s usefulness has been endlessly debated about by UX designers all over. Today, I…
Read more

I wrote a post last year about how I made an Ember Mixin that would let Ember Components or Views know if their DOM element had entered or…
Read more

We’re in the middle of a digital renaissance that has software eating the world. Like the industrial revolution, the digital revolution…
Read more

Reactive Programming (or RP for short) is a programming paradigm that gets thrown around a lot, but its clear that there is much confusion…
Read more

I’ll remember this year as the year I was challenged and grew the most — both personally, and professionally as a UI designer and front end…
Read more

You might have an Ember TextArea in your app somewhere, perhaps as a comment form or some other input, for submitting multi-line strings…
Read more

If you’re like me, every time you embed a video iframe into your app you feel a little bit dirty for having to load an entire html document…
Read more

One of Jakob Nielsen’s 10 heuristics for user interface design is Visibility of System Status, or in other words, keeping users informed…
Read more

Detecting whether or not an element is visible is very useful when it comes to triggering animations or events. Before you drop in another…
Read more

Every now and then, you want to let your users quickly search for records that you’ve already loaded into your store. We can easily…
Read more

If you haven’t used Slack already, it’s an awesome chat app for teams that’s similar to IRC. I’ve been using it for a while now, and I’ve…
Read more

Highcharts is one of the better supported and developed front end charting libraries out there, and it makes creating standard charts a…
Read more

It’s fairly trivial to add a ‘drag and drop’ interface to Ember.js with html5, without the need for external libraries, although…
Read more