fbpx
Home Blog Page 1318

Ask a Data Engineer: Warby Parker Edition 👓

0
Ask a Data Engineer: Warby Parker Edition 👓

wp-header

Codecademy’s very own Nick Duckwiler (left) and Ryan Tuck from Warby Parker (right) in our office. (📷: Mitch Boyer)

Last month, Codecademy and Warby Parker came together to work on a special Learn SQL from Scratch Capstone Project. It was during this time when I met Ryan Tuck, a Data Engineer at Warby, who played a major part in this partnership. So when he decided to drop by our office for the final QA round, I had to break out my notebook and ask some questions. Enjoy.


Hey Ryan, let’s start off with a question I’ve had for a while — what is a Data Engineer? (Is it similar to a Data Analyst or a Software Engineer?)

At Warby Parker, data engineers are responsible for creating and maintaining the plumbing required to support the data and reporting needs of the business. We use software engineering practices to automate the work of data cleaning, normalizing, and model building so that data is always ready to be consumed by data analysts in every department.

What languages/frameworks do you use at Warby?

On data engineering, we use Python as our general purpose programming language, as do most of the other teams in our Technology department. When it comes to databases, we use PostgreSQL for the majority of our SQL needs, and are beginning to use Amazon Athena and Google BigQuery for some of our larger datasets. We use Looker as our exclusive business intelligence entry point to all of this data.

What are some of the projects you worked on?

I’ve had the privilege of working with a lot of of smart people in every department at our company to help them solve their varied data needs, from reconciling financial data with the Accounting team to automating and modeling standardized performance metrics for our team of over 200 customer experience advisors.

As part of a team of five supporting the data needs of a rapidly growing company, I’ve tried where possible to focus on helping our analysts solve their own problems. This includes helping people learn Python and commit to our codebase, guiding the creation of data models in SQL, and encouraging people to submit pull requests to add features in Looker, our BI tool.

Seeing dozens of otherwise “non-technical” colleagues opening up PRs on a daily basis, and consequently being part of the democratization of tech that we value at Warby Parker, is probably the most rewarding “project” I’ve been a part of.

One project finished recently during our first annual “Hackweek” is called Pipes, which allows anyone at the company to easily move large amounts of data from wherever to wherever (Looker, Google Sheets, PostgreSQL, BigQuery, etc) on a regular cadence, or manually through a simple one-line chatbot interface. The adoption has been overwhelmingly positive and we’re looking to grow this sort of tooling out even more.

“We use software engineering practices to automate the work of data cleaning, normalizing, and model building so that data is always ready to be consumed by data analysts in every department.”

What got you into the data field?

I’ve always been drawn to analytical fields like math, and became pretty proficient in Excel during some internships in college. Once I had learned to program and learned more about data science and its applications in artificial intelligence, I knew that anything I could do to immerse myself in the world of data would be a step in the right direction.

Three and a half years ago, I landed a job as a junior software engineer at Warby Parker not fully knowing what I was in for, but am so glad I got the opportunity to help build tools to support an interesting and ever-changing data-driven culture here.

Where did you learn SQL and Python?

I had a background in C++, and was exposed to Python through an Intro to Data Science course. When Warby Parker hired me onto the Data team in 2015, I had never written a SQL query in my life, but picked it up quickly and within a few months started up internal SQL training classes, which I still teach on a monthly basis.

What does your tattoo say?


The ultimate cheatsheet.

This is Bayes’ Theorem, which is an equation that describes how to update probabilities given new evidence. Two summers ago I worked on building a tool to help predict weekly fantasy football performance. Some colleagues suggested a Bayesian approach would be appropriate, since there aren’t really enough data points in an NFL season to be able to use statistical approaches that require larger datasets, and I’d want to regularly update my predictions after each player’s latest performance.

I did a deep dive into understanding the (simple) math underlying Bayes’ Theorem and came out of that experience with a whole new worldview, understanding my entire knowledge of the world as a big and intricate probabilistic model that I was continuously updating with every experience I ever have. It was pretty transformative, and I figured that was worth a tattoo.

What is a concept in SQL/Python that’s essential to your work?

Donald Knuth said, “Premature optimization is the root of all evil.” I’ve generally found this to be true, and try to live by it in my work. For example, I’ll generally prefer to keep a data model simple by rebuilding it for all time on a daily basis using a single SQL query instead of making a more complicated model that requires iteratively adding to a table, keeping track of state, updated timestamps, when something last ran, etc.

A wise man once said, “Duplicating data makes things go fast,” but databases are already impressively fast to begin with, without implementing anything to improve performance. Ultimately, I almost always approach a problem thinking about optimizing for my time over machine time, for readability over performance, and for introducing as little cognitive overhead as is required by the problem at hand. Only once performance issues or readability issues present themselves will some code be worth a rewrite.

Last question! Since you wrote Warby Parker’s internal SQL training courses, I know there gotta be some inner Curriculum Developer in you. Can you teach a SQL concept in 2 minutes?

Sure! Have you ever written a query that yields some result set and you think, “I’d love to query the stuff I just produced like it was a table?” Enter the WITH clause.

Suppose I have a mega query that gives the transaction summaries:

select
    transactions.date as transaction_date,
    sum(items.price) as total_cost,
    count(*) as number_of_items
from
    transactions
inner join
    customers
    on
    customers.id = transactions.customer_id
inner join
    transaction_items
    on
    transactions.id = transaction_items.transaction_id
inner join
    items
    on
    items.id = transaction_items.item_id

Using WITH, I can create a temporary table within my query that I can SELECT from and treat it just like a regular old table.

I will put everything from the previous query in a parentheses and use WITH to give it the name transaction_summaries.

Then I’ll apply the date and customer filtering down below for a more readable query, to separate out all the JOIN logic from the actual WHERE filters that I want to apply on that data.

with transaction_summaries as (
  select
      transactions.date as transaction_date,
      sum(items.price) as total_cost,
      count(*) as number_of_items
  from
      transactions
  inner join
      customers
      on
      customers.id = transactions.customer_id
  inner join
      transaction_items
      on
      transactions.id = transaction_items.transaction_id
  inner join
      items
      on
      items.id = transaction_items.item_id
)

select 
        * 
from 
        transaction_summaries
where 
        first_name = 'beyonce'
        and 
        transaction_date > '2018–01–01'
order by 
        total_cost desc
limit 
        5

If you’re familiar with subqueries, this does a similar thing but makes the SQL far more readable, even if your query isn’t quite as performant as it would have been. This is essentially an implementation of the mantra “Don’t Repeat Yourself” that’s common in the world of programming.

Incredible. And love the SQL styling! 😍


Huge shout out to Ryan and the whole Warby Parker team for making this partnership happen. Special hat tips for behind-the-scenes support from:

  • Lon Binder, Chief Technology Officer, Warby Parker
  • Maddie Tierney, Executive Assistant, Warby Parker
  • Kayla Robbins, Executive Assistant, Warby Parker
  • Kaki Read, Senior Communications Manager, Warby Parker
  • Isabel Seely, Senior Brand Manager, Warby Parker

It’s been an absolute pleasure. And of course, the fam at Codecademy. You know who you are. Couldn’t do it without you.

Learning With: ‘How the Trump Era Is Molding the Next Generation of Voters’

0
Learning With: ‘How the Trump Era Is Molding the Next Generation of Voters’

5. Which youth demographic populations lean left and which lean right? Why did these numbers lead Kristen Soltis Anderson, a Republican pollster, to conclude that “Republicans are in trouble”?

6. The article concludes:

Young people are not likely to forget the activism they’re learning now, said Ella Robinson, a 16-year-old in Silver Spring, Md. The Trump era has taught her and her fellow students political savvy, she said, as their spontaneous school walkouts have been replaced by organized protests, with permits and tailored messages around issues like gun control and climate change.

“People in my generation are very aware that walkouts can only go so far,” Ms. Robinson said. “Voting needs to happen.”

Do you agree with Ella? How has recent youth activism affected you and your political outlook?

Finally, tell us more about what you think:

— What did you learn from the article? What was most intriguing or surprising about the political views of your generation? How did your place on the political spectrum revealed in the quiz above compare with the views of other young people detailed in the article?

— Which of the teenagers interviewed and profiled did you most identify with and why? In what way are their lives, political views or personal journeys similar to or different from yours? What quotation or image stands out most and why?

— How important are politics to you? What issues matter to you most and why? How has growing up during the Trump presidency shaped your political outlook?

Further Research

Conduct your own surveys on the political views of young people at your school or in your neighborhood. How do your results compare with the findings in this article. What methods did you use and why?

Related Learning Network Resources

Wasted Ballots? A Lesson Exploring Why More Young People Don’t Vote, and What Students Can Do About It

When You Are Old Enough to Vote, Will You?

Should the Voting Age Be Lowered to 16?

Ask a Data Engineer: Warby Parker Edition 👓

0
Ask a Data Engineer: Warby Parker Edition 👓

wp-header

Codecademy’s very own Nick Duckwiler (left) and Ryan Tuck from Warby Parker (right) in our office. (📷: Mitch Boyer)

Last month, Codecademy and Warby Parker came together to work on a special Learn SQL from Scratch Capstone Project. It was during this time when I met Ryan Tuck, a Data Engineer at Warby, who played a major part in this partnership. So when he decided to drop by our office for the final QA round, I had to break out my notebook and ask some questions. Enjoy.


Hey Ryan, let’s start off with a question I’ve had for a while — what is a Data Engineer? (Is it similar to a Data Analyst or a Software Engineer?)

At Warby Parker, data engineers are responsible for creating and maintaining the plumbing required to support the data and reporting needs of the business. We use software engineering practices to automate the work of data cleaning, normalizing, and model building so that data is always ready to be consumed by data analysts in every department.

What languages/frameworks do you use at Warby?

On data engineering, we use Python as our general purpose programming language, as do most of the other teams in our Technology department. When it comes to databases, we use PostgreSQL for the majority of our SQL needs, and are beginning to use Amazon Athena and Google BigQuery for some of our larger datasets. We use Looker as our exclusive business intelligence entry point to all of this data.

What are some of the projects you worked on?

I’ve had the privilege of working with a lot of of smart people in every department at our company to help them solve their varied data needs, from reconciling financial data with the Accounting team to automating and modeling standardized performance metrics for our team of over 200 customer experience advisors.

As part of a team of five supporting the data needs of a rapidly growing company, I’ve tried where possible to focus on helping our analysts solve their own problems. This includes helping people learn Python and commit to our codebase, guiding the creation of data models in SQL, and encouraging people to submit pull requests to add features in Looker, our BI tool.

Seeing dozens of otherwise “non-technical” colleagues opening up PRs on a daily basis, and consequently being part of the democratization of tech that we value at Warby Parker, is probably the most rewarding “project” I’ve been a part of.

One project finished recently during our first annual “Hackweek” is called Pipes, which allows anyone at the company to easily move large amounts of data from wherever to wherever (Looker, Google Sheets, PostgreSQL, BigQuery, etc) on a regular cadence, or manually through a simple one-line chatbot interface. The adoption has been overwhelmingly positive and we’re looking to grow this sort of tooling out even more.

“We use software engineering practices to automate the work of data cleaning, normalizing, and model building so that data is always ready to be consumed by data analysts in every department.”

What got you into the data field?

I’ve always been drawn to analytical fields like math, and became pretty proficient in Excel during some internships in college. Once I had learned to program and learned more about data science and its applications in artificial intelligence, I knew that anything I could do to immerse myself in the world of data would be a step in the right direction.

Three and a half years ago, I landed a job as a junior software engineer at Warby Parker not fully knowing what I was in for, but am so glad I got the opportunity to help build tools to support an interesting and ever-changing data-driven culture here.

Where did you learn SQL and Python?

I had a background in C++, and was exposed to Python through an Intro to Data Science course. When Warby Parker hired me onto the Data team in 2015, I had never written a SQL query in my life, but picked it up quickly and within a few months started up internal SQL training classes, which I still teach on a monthly basis.

What does your tattoo say?


The ultimate cheatsheet.

This is Bayes’ Theorem, which is an equation that describes how to update probabilities given new evidence. Two summers ago I worked on building a tool to help predict weekly fantasy football performance. Some colleagues suggested a Bayesian approach would be appropriate, since there aren’t really enough data points in an NFL season to be able to use statistical approaches that require larger datasets, and I’d want to regularly update my predictions after each player’s latest performance.

I did a deep dive into understanding the (simple) math underlying Bayes’ Theorem and came out of that experience with a whole new worldview, understanding my entire knowledge of the world as a big and intricate probabilistic model that I was continuously updating with every experience I ever have. It was pretty transformative, and I figured that was worth a tattoo.

What is a concept in SQL/Python that’s essential to your work?

Donald Knuth said, “Premature optimization is the root of all evil.” I’ve generally found this to be true, and try to live by it in my work. For example, I’ll generally prefer to keep a data model simple by rebuilding it for all time on a daily basis using a single SQL query instead of making a more complicated model that requires iteratively adding to a table, keeping track of state, updated timestamps, when something last ran, etc.

A wise man once said, “Duplicating data makes things go fast,” but databases are already impressively fast to begin with, without implementing anything to improve performance. Ultimately, I almost always approach a problem thinking about optimizing for my time over machine time, for readability over performance, and for introducing as little cognitive overhead as is required by the problem at hand. Only once performance issues or readability issues present themselves will some code be worth a rewrite.

Last question! Since you wrote Warby Parker’s internal SQL training courses, I know there gotta be some inner Curriculum Developer in you. Can you teach a SQL concept in 2 minutes?

Sure! Have you ever written a query that yields some result set and you think, “I’d love to query the stuff I just produced like it was a table?” Enter the WITH clause.

Suppose I have a mega query that gives the transaction summaries:

select
    transactions.date as transaction_date,
    sum(items.price) as total_cost,
    count(*) as number_of_items
from
    transactions
inner join
    customers
    on
    customers.id = transactions.customer_id
inner join
    transaction_items
    on
    transactions.id = transaction_items.transaction_id
inner join
    items
    on
    items.id = transaction_items.item_id

Using WITH, I can create a temporary table within my query that I can SELECT from and treat it just like a regular old table.

I will put everything from the previous query in a parentheses and use WITH to give it the name transaction_summaries.

Then I’ll apply the date and customer filtering down below for a more readable query, to separate out all the JOIN logic from the actual WHERE filters that I want to apply on that data.

with transaction_summaries as (
  select
      transactions.date as transaction_date,
      sum(items.price) as total_cost,
      count(*) as number_of_items
  from
      transactions
  inner join
      customers
      on
      customers.id = transactions.customer_id
  inner join
      transaction_items
      on
      transactions.id = transaction_items.transaction_id
  inner join
      items
      on
      items.id = transaction_items.item_id
)

select 
        * 
from 
        transaction_summaries
where 
        first_name = 'beyonce'
        and 
        transaction_date > '2018–01–01'
order by 
        total_cost desc
limit 
        5

If you’re familiar with subqueries, this does a similar thing but makes the SQL far more readable, even if your query isn’t quite as performant as it would have been. This is essentially an implementation of the mantra “Don’t Repeat Yourself” that’s common in the world of programming.

Incredible. And love the SQL styling! 😍


Huge shout out to Ryan and the whole Warby Parker team for making this partnership happen. Special hat tips for behind-the-scenes support from:

  • Lon Binder, Chief Technology Officer, Warby Parker
  • Maddie Tierney, Executive Assistant, Warby Parker
  • Kayla Robbins, Executive Assistant, Warby Parker
  • Kaki Read, Senior Communications Manager, Warby Parker
  • Isabel Seely, Senior Brand Manager, Warby Parker

It’s been an absolute pleasure. And of course, the fam at Codecademy. You know who you are. Couldn’t do it without you.

Would You Want to Be Proposed to on a Jumbotron?

0
Would You Want to Be Proposed to on a Jumbotron?

Close your eyes and try to imagine your wedding proposal.

If you’re think you’re not really the marrying type, then imagine an alternative proposal — asking someone on a date or to the prom? (Did you know there was such a thing as a promposal?)

What did you see: a beautiful setting? Candles? Rose petals? Are you down on one knee? Is there a ring?

Now add 50,000 cheering people to your fantasy. Would that make the moment more special?

Does the idea of a Jumbotron proposal fill you with romantic delight or deep, cringy fear? (You can watch two examples here and here.)

In “Thinking of a Jumbotron Proposal? Some Say, Ugh. Others, Say Yes.,” Britni de la Cretaz writes:

Jumbotron proposals have become as much a part of baseball as the seventh-inning stretch — no matter that they are often considered tacky and in bad taste.

When a proposal appears on the giant screen, a large segment of sports Twitter world (mostly women) chime in about how they hope no one ever proposes to them at a sporting event. Still, hundreds of these public, grandiose gestures happen every year and many proposees walk out of the stadium happily ever after.

On March 31, 2018, Joanna Chan, who works for Netflix, proposed to her girlfriend of five years, Julie Morris, who is employed at Hulu. The moment happened during the first period of a Calgary Flames game and was shown on the giant screen at Scotiabank Saddledome — known as the Enmax Energy Board — home to the National Hockey League’s Flames.

Ms. Chan and Ms. Morris, both 36 and living in Los Angeles (since married and now both going by Chan-Morris), had just embarked on a five-year tour of all 31 N.H.L. arenas, and the Saddledome was their final stop.

Joanna Chan-Morris says that a few stops before their final one, she knew she wanted to propose in Calgary. “It’s not about the public aspect of the proposal, really,” she said. “It was really just about making that last game special.”

Even still, with that gesture, their engagement became a viral sensation, traveling beyond the area and onto the internet. Joanna paid 5,000 Canadian dollars ($3,782) for the opportunity, which she says was “worth every penny.”

The Saddledome is far from the only sports arena that gives fans the option to propose on a really big TV screen in front of thousands. Fenway Park, home of the Boston Red Sox, does 50 to 60 live, in-game proposals each season at a cost of $350 each. At Dodger Stadium, getting engaged onscreen will set you back $5,000, an event the team estimates happens two or three times a season.

The article continues:

The whole concept irks Jessica Kleinschmidt, a content producer/reporter at NBC Sports Bay Area and a self-proclaimed “hater of in-game proposals.”

“It’s as if this person needs to show these complete strangers they love this person by making a show out of it,” Ms. Kleinschmidt said. “Needing validation from complete strangers? Go on Twitter if you want to do that.”

Also, she noted, an in-game proposal “puts the woman under pressure to say yes.”

When those traditional gender dynamics are reversed, the public response can be cruel.

In 2014, a woman surprised her boyfriend by proposing to him at an N.B.A. game. At the time, she told Fox 5 DC, “I thought this would make me the best wife-to-be ever to do it in front of his favorite team.” Her fiancé seemed happy she asked. But the response online was less than kind, with the frequently misogynist sports and culture website Barstool Sports calling it “the absolute worst proposal of all time,” among other worse things. Another blogger wrote that he would “never want to be proposed to by my girlfriend, and at an N.B.A. game no less, not in a million years.”

When Jumbotron proposals go wrong, spectators take an almost perverse pleasure in the rejection. In 2017, a rejected proposal at Fenway Park resulted in the entire ballpark chanting, “She said no!” (Jasmine Guillory’s newest novel, aptly named “The Proposal,” opens with a rejected proposal at Dodger Stadium that goes viral on the internet.)

This virality is something that more and more Jumbotron proposers are experiencing now that social media is a thing and everyone in the stadium has a smartphone, or the teams broadcast feel-good content across their various platforms.

What is it about our culture’s ideas about love, romance and marriage that allowed the phenomenon to gain traction in the first place? “Romantic comedies,” Chloe Angyal wrote for Buzzfeed in 2015, “teach us that the truer a true love is, the grander and more public the public grand gesture will be.”

Students, read the entire article, then tell us:

— What do you think about Jumbotron proposals? Would you like to receive or make one yourself? Why or why not? Did the article change your views on these over-the-top proposals?

— What are the best Jumbotron or public proposals you’ve ever seen or heard of, whether live or online? Do you find them charming and delightful, or do they make you uncomfortable? Do you ever watch Jumbotron proposal fails for fun? If yes, why?

— Do you know if one of your parents proposed or not? Is there a story that went with it?

— What would be your ideal marriage proposal? Would you want to be proposed to in some elaborate way? Why or why not? What proposal ideas do you have? What dos and don’ts for success might you suggest? (You can look at some other creative proposals here.)

— If you hate the idea of a big fancy proposal, how do you feel about marriage itself? Do you ever think about it? Is a wedding proposal too old fashioned or simply too far in the future to imagine? Do you think we place too much emphasis on romantic gestures — rings, engagement parties, lavish weddings and the like?

Jungle Gym

0
Jungle Gym

What do you think this image is saying? How does it relate to or comment upon society or current events? Can you relate to it personally in anyway? What is your opinion of its message?

Tell us in the comments, then read the related Opinion piece to learn what this illustration is all about.

Find many more ways to use our Picture Prompt feature in this lesson plan.

Word + Quiz: redoubtable

0
Word + Quiz: redoubtable

1. inspiring fear

2. worthy of respect or honor

_________

The word redoubtable has appeared in 15 articles on NYTimes.com in the past year, including on Jan. 24 in the obituary “Norman Goodman, 95, Dies; Summoned Manhattanites to Jury Duty, Like It or Not” by Margalit Fox:

For generations, his name struck fear in Manhattanites’ hearts.

Year in and year out, with fatalistic regularity, envelopes bearing that name would invade the homes of the unwary, the unwilling and the unready.

On each of them, a printed signature loomed sternly over the upper-left-hand corner: “Norman Goodman,” the name appended to the borough’s jury summonses for nearly half a century.

… A lawyer, Mr. Goodman was one of the city’s longest-serving public employees, as redoubtable an institution as the Automat and even more enduring. He held the county clerk’s post, in principle a lifetime appointment, from 1969 until his retirement on Dec. 31, 2014, the day after his 91st birthday. During those years, he issued between 11 million and 12 million jury summonses.

_________

Teenagers in The Times: March 2019

0
Teenagers in The Times: March 2019

We present the March 2019 edition of Teenagers in The Times. This roundup of news and feature stories about young people that have recently appeared across sections of NYTimes.com appears on the first Thursday of each month during the school year.

For ideas about how to use Teenagers in The Times with your students, please see our lesson plan and special activity sheet, both of which can be used with this or any other edition.

_________

Education

Building Grit in Girls Through Mountain Biking

Experts say the sport encourages strength, confidence and a chance to splash in mud puddles.

Massachusetts Bill Would Ban Tackle Football Until After Seventh Grade

The measure, which is already facing headwinds, follows unsuccessful similar attempts by legislators in five other states.

Wisconsin School Bans Mock Cheerleading Awards After Harassment Accusations

Awards for “Big Booty” and ”Big Boobie” will no longer be given to high school cheerleaders after they were challenged by parents and the A.C.L.U.

Unvaccinated Student in Kentucky Sues After Being Barred From Playing Basketball

Jeremy Kunkel, 18, claims he shouldn’t be forced to be vaccinated against chickenpox. He contends that barring him from school violates his First Amendment rights.

Hello, Kevin Knox.’ A Knicks Rookie Breaks Out.

Knox, 19 and still adjusting to N.B.A. life, scored 19 points in the Knicks’ victory over the Los Angeles Lakers on Sunday.

Bianca Andreescu Completes a Stunning Run to the Indian Wells Title

The 18-year-old Canadian, ranked 60th, is the youngest player to win the tournament since Serena Williams in 1999. Dominic Thiem beat Roger Federer for the men’s title.

Nathan Chen’s Yale Juggling Act

Some undergraduates head to Daytona for spring break. Nathan Chen, a Yale freshman, is heading to the World Figure Skating Championships.

High School ‘Alien’ Production Wins Internet Raves

For just $3,500, the drama club at North Bergen High School recreated Ridley Scott’s 1979 horror thriller on stage, reaching a global audience, too.

Review: ‘Five Easy Pieces,’ an Unnerving Alliance of Children and Art

Milo Rau, called “the world’s most controversial director,” asks a cast of young people to relate the story of a notorious Belgian pedophile.

Review: In ‘Good Friday,’ an Unblinking Look at Rape Culture

A drama set in a college classroom during a campus shooting, “Good Friday,” at the Flea Theater, is meant to unsettle and provoke.

Teen Fiction and the Perils of Cancel Culture

“Readers, not a Twitter mob, should decide the fate of a book,” contends this Opinion essay writer.

Kids Searching for the Complicated Truth

On the cusp of their teenage years, the protagonists of these novels deal with death in the family, remembered childhood trauma and many varieties of parental pressure.

In Two New Novels, the Trouble Is Academic — and All Too Real

“Still in Love” and “Such Good Work” revisit the lessons and trials of the classroom.

Graphic Novels That Will Keep Kids Reading

Jerry Craft’s tale of an artistic black kid navigating a mostly white prep school, and Lincoln Peirce’s new series about a medieval girl who longs to be a knight.

Have You Ever Felt Like an Outsider?

0
Have You Ever Felt Like an Outsider?

Have you ever felt like an outsider, or as if you just didn’t fit in somewhere? Maybe it was at school, on a team, with a group of friends, in a public place or even in your own home?

If so, what was it that made you feel different? Was it your race, ethnicity, gender or sexuality? Maybe it was it your economic status, political views, religious beliefs, nationality or language? Perhaps your ability, cultural values, personality or interests? Or maybe it was something else entirely?

What was that experience like for you? In general, did you enjoy standing out, or did you find it challenging?

In “On Being an Outsider,” Christina Thompson writes about her children’s experiences of feeling like outsiders because of their mixed ethnicity:

Before I had any children of my own, I spent a decade and a half living in places where I was an outsider. While I never lost the feeling of estrangement that comes from missing basic cultural cues, for me this was a period of great liberation. I loved the freedom that being a stranger gave me. I loved the fact that people were unable to “place” me and that I was also largely free of preconceptions about them. …

When we began having children — three boys in seven years — I was excited by the idea that our kids were going to have a complex identity. It would begin simply with the way they looked. My husband is dark, I am fair, our children are a range of in-between. They all have dark eyes, dark hair, neither curly nor straight, and skin that is light in winter and goes brown quickly in the sun. Ethnically speaking, they are quite difficult to place; over the years they have been mistaken for Latino, Iranian, Turkish, Pakistani, half-Korean, half-Japanese.

I loved the idea that our children were ethnically ambiguous. I saw this as their passport to freedom and viewed our boys as citizens of the world. I wasn’t sure how long it would take them to understand it, but I was confident that the rich complexity of their ancestry would become apparent to them in time. It never crossed my mind that it could be anything other than a bonus. …

Our three sons are now grown, and it recently occurred to me to ask about their experience of being hapa. Some of what they told me came as a surprise.

One of my sons described his childhood in terms of being “culturally unmoored.” “We were like expats,” he said, which, in fact, we were for much of his early life.

But it was a feeling that stuck, even after we moved back to live with my family in Boston. He always felt that we were different from the people around us, an experience he likened to being “not quite a native speaker.”

He conceded that being different was in some ways an asset, in that people were interested in him, but also that “it makes the game harder.” When you’re different, he said, you stand out, regardless of whether you want to or not. “Not everyone is suited to it,” he observed.

This was certainly the case for another of my sons. “From the first day of school,” he told me, “I felt different from my classmates.” He described this as a “slightly bad feeling” and said he’d been bullied, something he’d never told me before. For him, difference was not an advantage, it was a burden, and his looks, which are somewhat exotic, were “a card you could play but don’t really want to.” He, too, acknowledged that this exoticism could be an asset, but it was not one he had ever wanted and the price he’d had to pay for it was steep.

My third son had an entirely different take. By the time he was in middle school, he told me, he had recognized that being unusual gave him a social advantage. “I knew it was something that was cool,” he said. He told me that he got a kick out of the fact that people couldn’t pronounce his surname (something that caused his brother endless misery) and observed that the social cred effect had only increased with age.

And in “Some College Students Choose a School Where They Don’t Fit, on Purpose,” Kyle Spencer writes about college students who purposely attend colleges where they stand out:

Amir Goldberg, an associate professor of organizational behavior at Stanford University Graduate School of Business, who studies outsiders inside the workplace, says being an outsider can cause culture shock. But that doesn’t have to be a bad thing.

“If you have support, that shock can be translated into an advantage,” he said.

That was the case for Jonah Shainberg, a fencer from Rye, N.Y., who is Jewish. When he was accepted to Notre Dame, a football-heavy Catholic university in Indiana, his mother balked at the idea.

“I’m not sending my Jewish son to Notre Dame,” Mr. Shainberg recalled her saying. He was also skeptical.

But once he was there, Mr. Shainberg, who graduated this year with a bachelor’s degree in business administration, discovered something about himself he had not totally understood before: His faith was central to his identity.

“I think Notre Dame made me more Jewish,” he said.

For Elyse Hutcheson, 21, the opposite was true. Her time at Hillsdale College, a Christian college in Hillsdale, Mich., helped her get in touch with her views on reproductive rights, immigration and social welfare programs.

When she arrived, she said, “I knew I wasn’t a conservative, but I didn’t know I was a liberal.” By her junior year, she had re-energized a defunct club for campus Democrats and realized she was agnostic.

She graduated this year with a degree in psychology and art and took a job as a research assistant at Brown University, a liberal-leaning college in Providence, R.I.

While Ms. Hutcheson admits it’s a relief to now be around like-minded thinkers, she says fitting in comes with its own pitfalls.

“I don’t want to become complacent because the ideas I have aren’t being questioned anymore,” she said.

Students, choose one of the articles to read in its entirety, then tell us:

— Have you ever felt like an outsider somewhere? What made you feel different from the people around you? What was that experience like for you? How do you feel about it now?

— Have you ever purposely put yourself in the position of being an outsider somewhere? Why did you do it? What did you learn from the experience?

— In the second article, Nikki Bruno, an admissions coach in New Jersey, says being an outsider isn’t for everyone. Students should have an “adventurous spirit” and seem particularly confident before she would suggest an environment that is outside their comfort zone. Do you have that “adventurous spirit”? Do you prefer standing out or fitting in? Do you thrive when you are around people who are more similar to you or different from you? Why do you think that is?

— If you had the chance to be an outsider somewhere — say, to live in a foreign country or attend a college with people who have very different beliefs than you — would you take it? What do you think might be gained from doing this? What do you think would be challenging about it? Over all, do you think it would be a positive or negative experience for you? Why?

Ask a Data Engineer: Warby Parker Edition 👓

0
Ask a Data Engineer: Warby Parker Edition 👓

wp-header

Codecademy’s very own Nick Duckwiler (left) and Ryan Tuck from Warby Parker (right) in our office. (📷: Mitch Boyer)

Last month, Codecademy and Warby Parker came together to work on a special Learn SQL from Scratch Capstone Project. It was during this time when I met Ryan Tuck, a Data Engineer at Warby, who played a major part in this partnership. So when he decided to drop by our office for the final QA round, I had to break out my notebook and ask some questions. Enjoy.


Hey Ryan, let’s start off with a question I’ve had for a while — what is a Data Engineer? (Is it similar to a Data Analyst or a Software Engineer?)

At Warby Parker, data engineers are responsible for creating and maintaining the plumbing required to support the data and reporting needs of the business. We use software engineering practices to automate the work of data cleaning, normalizing, and model building so that data is always ready to be consumed by data analysts in every department.

What languages/frameworks do you use at Warby?

On data engineering, we use Python as our general purpose programming language, as do most of the other teams in our Technology department. When it comes to databases, we use PostgreSQL for the majority of our SQL needs, and are beginning to use Amazon Athena and Google BigQuery for some of our larger datasets. We use Looker as our exclusive business intelligence entry point to all of this data.

What are some of the projects you worked on?

I’ve had the privilege of working with a lot of of smart people in every department at our company to help them solve their varied data needs, from reconciling financial data with the Accounting team to automating and modeling standardized performance metrics for our team of over 200 customer experience advisors.

As part of a team of five supporting the data needs of a rapidly growing company, I’ve tried where possible to focus on helping our analysts solve their own problems. This includes helping people learn Python and commit to our codebase, guiding the creation of data models in SQL, and encouraging people to submit pull requests to add features in Looker, our BI tool.

Seeing dozens of otherwise “non-technical” colleagues opening up PRs on a daily basis, and consequently being part of the democratization of tech that we value at Warby Parker, is probably the most rewarding “project” I’ve been a part of.

One project finished recently during our first annual “Hackweek” is called Pipes, which allows anyone at the company to easily move large amounts of data from wherever to wherever (Looker, Google Sheets, PostgreSQL, BigQuery, etc) on a regular cadence, or manually through a simple one-line chatbot interface. The adoption has been overwhelmingly positive and we’re looking to grow this sort of tooling out even more.

“We use software engineering practices to automate the work of data cleaning, normalizing, and model building so that data is always ready to be consumed by data analysts in every department.”

What got you into the data field?

I’ve always been drawn to analytical fields like math, and became pretty proficient in Excel during some internships in college. Once I had learned to program and learned more about data science and its applications in artificial intelligence, I knew that anything I could do to immerse myself in the world of data would be a step in the right direction.

Three and a half years ago, I landed a job as a junior software engineer at Warby Parker not fully knowing what I was in for, but am so glad I got the opportunity to help build tools to support an interesting and ever-changing data-driven culture here.

Where did you learn SQL and Python?

I had a background in C++, and was exposed to Python through an Intro to Data Science course. When Warby Parker hired me onto the Data team in 2015, I had never written a SQL query in my life, but picked it up quickly and within a few months started up internal SQL training classes, which I still teach on a monthly basis.

What does your tattoo say?


The ultimate cheatsheet.

This is Bayes’ Theorem, which is an equation that describes how to update probabilities given new evidence. Two summers ago I worked on building a tool to help predict weekly fantasy football performance. Some colleagues suggested a Bayesian approach would be appropriate, since there aren’t really enough data points in an NFL season to be able to use statistical approaches that require larger datasets, and I’d want to regularly update my predictions after each player’s latest performance.

I did a deep dive into understanding the (simple) math underlying Bayes’ Theorem and came out of that experience with a whole new worldview, understanding my entire knowledge of the world as a big and intricate probabilistic model that I was continuously updating with every experience I ever have. It was pretty transformative, and I figured that was worth a tattoo.

What is a concept in SQL/Python that’s essential to your work?

Donald Knuth said, “Premature optimization is the root of all evil.” I’ve generally found this to be true, and try to live by it in my work. For example, I’ll generally prefer to keep a data model simple by rebuilding it for all time on a daily basis using a single SQL query instead of making a more complicated model that requires iteratively adding to a table, keeping track of state, updated timestamps, when something last ran, etc.

A wise man once said, “Duplicating data makes things go fast,” but databases are already impressively fast to begin with, without implementing anything to improve performance. Ultimately, I almost always approach a problem thinking about optimizing for my time over machine time, for readability over performance, and for introducing as little cognitive overhead as is required by the problem at hand. Only once performance issues or readability issues present themselves will some code be worth a rewrite.

Last question! Since you wrote Warby Parker’s internal SQL training courses, I know there gotta be some inner Curriculum Developer in you. Can you teach a SQL concept in 2 minutes?

Sure! Have you ever written a query that yields some result set and you think, “I’d love to query the stuff I just produced like it was a table?” Enter the WITH clause.

Suppose I have a mega query that gives the transaction summaries:

select
    transactions.date as transaction_date,
    sum(items.price) as total_cost,
    count(*) as number_of_items
from
    transactions
inner join
    customers
    on
    customers.id = transactions.customer_id
inner join
    transaction_items
    on
    transactions.id = transaction_items.transaction_id
inner join
    items
    on
    items.id = transaction_items.item_id

Using WITH, I can create a temporary table within my query that I can SELECT from and treat it just like a regular old table.

I will put everything from the previous query in a parentheses and use WITH to give it the name transaction_summaries.

Then I’ll apply the date and customer filtering down below for a more readable query, to separate out all the JOIN logic from the actual WHERE filters that I want to apply on that data.

with transaction_summaries as (
  select
      transactions.date as transaction_date,
      sum(items.price) as total_cost,
      count(*) as number_of_items
  from
      transactions
  inner join
      customers
      on
      customers.id = transactions.customer_id
  inner join
      transaction_items
      on
      transactions.id = transaction_items.transaction_id
  inner join
      items
      on
      items.id = transaction_items.item_id
)

select 
        * 
from 
        transaction_summaries
where 
        first_name = 'beyonce'
        and 
        transaction_date > '2018–01–01'
order by 
        total_cost desc
limit 
        5

If you’re familiar with subqueries, this does a similar thing but makes the SQL far more readable, even if your query isn’t quite as performant as it would have been. This is essentially an implementation of the mantra “Don’t Repeat Yourself” that’s common in the world of programming.

Incredible. And love the SQL styling! 😍


Huge shout out to Ryan and the whole Warby Parker team for making this partnership happen. Special hat tips for behind-the-scenes support from:

  • Lon Binder, Chief Technology Officer, Warby Parker
  • Maddie Tierney, Executive Assistant, Warby Parker
  • Kayla Robbins, Executive Assistant, Warby Parker
  • Kaki Read, Senior Communications Manager, Warby Parker
  • Isabel Seely, Senior Brand Manager, Warby Parker

It’s been an absolute pleasure. And of course, the fam at Codecademy. You know who you are. Couldn’t do it without you.

GUEST POST: The 5-Sided Flashcard

0
GUEST POST: The 5-Sided Flashcard

Side 3: Example, Picture, or Story. Now we’re getting somewhere. On tests, teachers often ask students for a definition of a term.  Or they give students a definition and ask for the term.  But sometimes teachers ask students to provide, or recognize, examples. Students get stuck if they’ve only memorized words and can’t picture a concept, or tell a story with or about the concept.  So why not make this part of studying!  Here’s a story about humility:  A guy understands that just because he’s gotten a haircut doesn’t make him qualified to teach someone how to be a barber. Or, as I’ve written about elsewhere, just because you have had and recovered from a psychological problem like anxiety doesn’t make you qualified to treat it professionally.   

Our class discussion turned to other virtues—one of them being prudence. Here’s one of the definitions from Merriam-Webster: “caution or circumspection as to danger or risk.” One student said, “Well, that’s the same thing as humility.” The student appeared to be lumping the terms together because the language of the definitions was not sufficiently different.  He needed to play a little with the concepts to get them clear in his mind.  If we had only a 2-sided flashcard to work with, I might have repeated the definitions and students might have memorized them but still been confused.  With Side 3, however, we told additional stories about people being humble and prudent.  Here’s one that may help: Two people walk into a bar.  Herman, the humble person, says, “I’m not sure I can hold my liquor that well, so I’m only going to have one beer.”  Paula, the prudent person, says, “I’m driving and I don’t want to get into an accident, so I’m only going to have one beer, too.”  Many students have a much easier time understanding definitions when they have pictures, stories, and other applications. When confronted with an example on an exam, students can match the picture in the question to their own pictures, and see which one matches the best.  Thinking in pictures can be very effective in addition to thinking in words.