fbpx
Home Blog Page 1442

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: ‘U.S. Women’s Soccer Team Sues U.S. Soccer for Gender Discrimination’

0
Learning With: ‘U.S. Women’s Soccer Team Sues U.S. Soccer for Gender Discrimination’

4. According to the article, the team has been “a leading force in women’s sports for more than a generation.” What evidence does the author give to support this claim? How have the team’s activism and outspokenness inspired other women’s teams around the world?

5. How does the pay between players on the men’s and women’s national soccer teams differ? Why are direct comparisons in compensation complicated?

6. The article concludes with a quotation by Neena Chaudhry, the general counsel of the National Women’s Law Center in Washington:

These are the same kinds of arguments and claims that we still see at every level of education for women and girls, from K through 12 to college. It’s unfortunately a sad continuation of the way that women and girls in sports are treated in the U.S.

Do you agree? Do you think the United States soccer team’s case is part of a larger system of inequity?

Finally, tell us more about what you think:

— What is your reaction to the lawsuit? Do you think the team will win its case and why?

— Why does this lawsuit matter? Is this case just about soccer or is it bigger? Why should nonsports fans care? How will it make a difference to you?

— Should professional female athletes be paid the same as men? Does it matter if the ticket sales or television ratings in a given sport are higher for men than for women?

— Do people have a responsibility to watch and attend more women’s sporting events if they want women’s athletics to thrive? What suggestions do you have to make sure that female athletes get the respect they deserve in our society? Will you watch the United States women’s soccer team compete this summer in the World Cup?

— In a related article, “8 Times Women in Sports Fought for Equality,” Sarah Mervosh and Christina Caron profile other examples of women fighting for equality in sports. Look through the article and select one historical example you find most interesting or significant. Compare this example to the current efforts by the United States women’s soccer team. How are they similar and different? What lessons can we learn from these female athletes’ struggles?

— What are girls’ and boys’ athletics like at your school? Do female athletes receive equal treatment? What recommendations do you have to improve female athletic programs at your school?

Related Resources:

In Fight for Equality, U.S. Women’s Soccer Team Leads the Way

Pay Disparity in U.S. Soccer? It’s Complicated

Women’s History Month

0
Women’s History Month

March is Women’s History Month and March 8 was International Women’s Day. What do these celebrations mean to you? How do you think we should observe them?

Do you think it’s meaningful to recognize and honor women with a special history month? Why or why not?

Tell us in the comments, then read the related satirical essay from Opinion to see what one writer has to say.

Or, find more ideas in our collection on Teaching and Learning About Women’s History With The New York Times

Word + Quiz: calumny

0
Word + Quiz: calumny

1. a false accusation of an offense or a malicious misrepresentation of someone’s words or actions

2. an abusive attack on a person’s character or reputation

_________

The word calumny has appeared in 16 articles on NYTimes.com in the past year, including on Nov. 12 in the Sports of the Times column “Does Calgary Really Want the Winter Olympics? Does Anyone?” by Michael Powell:

I attended the 2016 Summer Games in Rio de Janeiro and wrote of the corruption and violence that had fallen on the poorest in the beautiful city, and the schools and hospitals starved for funds as the government spent grandly on its Olympic Taj Mahal.

Rio’s mayor at the time, Eduardo Paes, wrote a letter complaining of my calumnies and took offense at talk of corruption. Another year passed, and Brazilian prosecutors found Olympic corruption everywhere. An executive from a big construction firm testified that he had given $5 million in bribes to Paes. The former mayor denies those charges.

_________

How Much Do You Know About Belgium?

0
How Much Do You Know About Belgium?

Can you find Belgium on a map? What else do you know about this nation in Western Europe with about 11.6 million people?

Learning With: ‘Anne Frank’s Stepsister Meets Teenagers From Swastika Photo’

0
Learning With: ‘Anne Frank’s Stepsister Meets Teenagers From Swastika Photo’

Before reading the article:

Watch the video “‘I Was Shocked’: Holocaust Survivor Meets With Teenagers” (above). What does Eva Schloss give as her reason for meeting the teenagers who were shown in a video making Nazi salutes at a party? What does she say she learned? What advice does she give? What hope does she express at the end of the video?

Now, read the article, “Anne Frank’s Stepsister Meets Teenagers From Swastika Photo,” and answer the following questions:

1. Who is Anne Frank? What did she become famous for writing? What message contained in her diary does the article quote? How is Eva Schloss related to Anne Frank?

2. What does Ms. Schloss believe the incident revealed about Holocaust education at Newport Harbor High School?

3. Who is Sean Boulton? How does he explain the students’ actions that were photographed at the party? What statistics seem to back his point about hateful speech having become “normalized”?

4. Who is Paul Nussbaum? Where does he place the blame for incidents like those described in the article? What is his advice for teaching young people about the Holocaust?

5. What happened to Ms. Schloss when she was 16? How does she describe the realization that came next?

Finally, tell us more about what you think:

The article outlines what happened, in addition to the visit from Ms. Schloss, as a result of the incident at the party attended by Newport Harbor High School students: a statement from the mayor of one of the two cities served by the school; students wearing blue in solidarity with the Jewish community; a community meeting featuring students, a rabbi and the spokeswoman for a local Jewish organization; and an upcoming private tour of the Los Angeles Museum of the Holocaust, during which students and their parents will meet with a Holocaust survivor and someone whose parents died in the Holocaust.

What do you think is the intended purpose of each of these actions? How well do they meet Mr. Nussbaum’s recommendation that the focus is kept on the personal? Which do you think has the most potential to help students understand what happened during the Holocaust?

Have you learned about the Holocaust? If so, where did you learn about it? Do you think that education is a viable solution for preventing hateful speech, symbols and actions? Why or why not? Do you have additional suggestions for dealing with the issue?

How to switch on and make a start

0
How to switch on and make a start

So you’ve been staring deep into a blank document. The cursor is blinking, awaiting your words of wisdom, but you’ve got nothing.

It’s okay, this happens to the best of us. Getting started can be the hardest part of any task – especially when it’s new and unfamiliar territory. But when assignment deadlines are looming, it’s important to find a way to switch yourself on, even if you’re not feeling it.

To help you settle into the study term, we’ve got some handy tips to prepare you (both body and mind) to start researching, writing, and actually relishing the journey. It’s not too late to make a start!

Prep that bod

We know you’ve heard it before, but it’s for good reason – how you feel physically has such a profound effect on your mental performance. Before you settle down to study, we recommend that you:

A) Get some light exercise. It gets the blood pumping and the brain ticking. Try a 15 minute walk, a bit of yoga, or a few household chores. Don’t wear yourself out with high intensity exercise, aim to gently invigorate your system.

B) Have a snack. Don’t launch into study hungry, or too full. Ever feel particularly tired post-lunch? It’s your body directing all your energy into digestion, so keep your meals lighter, and more frequent to compensate.

Pro tip: Have a long-lasting hot drink (caffeine, if you so desire) that will carry you seamlessly from snack time into study time. You may not even notice the transition when you’re sipping on a hot cup of liquid happiness.

Start in the shallow end

University learning materials can be dense – it’s a good thing in the long run, as it will amp up your mental stamina. But in the initial stages of study, the complexity of the material can pose a real hurdle.

Our
advice? Begin by doing a Google search for some user-friendly resources, which
can help you understand the subject you’re studying at large. Seek out a format
that feels effortless to you – perhaps find an overview video of your subject on
YouTube, that allows you to sit back, and let the information flow through you.
Wikipedia is also great for a topic overview. Any jargon you may not understand
usually takes the form of a clickable link, so you can instantly define
anything you get stuck on. Beginning with information that is easily understood
is a great way to transition into more difficult material.

Get yourself a tad uncomfortable

Putting a bit of pressure on yourself can work wonders for productivity, whether that pressure be physical or mental, conscious or subconscious. For example, try studying in a café – the travel to get there, the money spent on food, and the expectation to free up your table to another customer, will put pressure on you to make the most of your time. Another method is to work in a standing position. If you set out to be productive while standing, the sooner you do so, the sooner you can slump back down into your chair.

Know where you’re heading

When you’re desperate to get started, the tendency is to start writing words to feel productive, then getting caught up polishing those words prematurely. You may later cut out those sections, having wasted long stretches of time.

The
best tactic improve your productivity, and lessen your resistance to the task,
is to set up a skeleton for your writing or research, which you can flesh out
later. That way, you know where you’re going, what questions to ask yourself,
and what to spend your time on. Start with a simple framework – an introduction
to the topic and a brief history, moving through to the current situation, and ending
with future plans and predictions. Modelling your framework on a conventional
story arc, with a beginning, middle and end, can really get the ball rolling.
You’re free to (and likely to) change your structure later, but a simple linear
framework is a good strategy to get you started.


Tackling the unfamiliar is difficult for everyone, but once you push through that initial barrier, you grow. You’re not always going to feel switched on, but when study can’t wait, try some of our techniques to kick yourself into gear.

If you ever need help, don’t hesitate to contact your university tutors, or a friendly OUA student advisor.

Preparing For What’s Next in Business According to IBM’s CEO

0
Preparing For What’s Next in Business According to IBM’s CEO

From its early days of punch-card machines and calculators, IBM continuously evolves and innovates to develop essential business tools like personal computers, storage media, programming languages, artificial intelligence (AI), and cloud computing.  

So, when IBM CEO Ginny Rommetty talks about “what’s next” in tech, the world’s business leaders sit up and listen. Her 2019 Consumer Electronics Show (CES) keynote address paints a vivid picture of how the future of business is changing, and provides powerful examples of leadership that keeps organizations ahead of the curve.  

While Rommetty’s keynote covers wide-range of topics, in contains two clear takeaways for aspiring business leaders. First, the MBAs of the future need to be more innovative than ever. They must apply creativity to adapt new technologies to previously-unimagined business opportunities. Second,  to succeed in the long term, CEOs need to keep the social impacts of their products and their hiring practices top of mind.

Here are four big, future-focused trends highlighted by Rommetty that tomorrow’s MBAs should think about.

Deep Data: “Big Data” is old news; instead, Rommetty highlights the potential of “deep data” that brings together disparate datasets to generate new analytic insights. For example, IBM is working with its subsidiary The Weather Channel to improve weather forecasting resolution by 200%, in part by utilizing barometer readings from a network of millions of smartphone users that opt-in.

Broad AI: According to Rommetty, even if AI doesn’t replace all jobs, “100 percent of jobs will be different” in the AI era. That’s because the technology is rapidly evolving beyond today’s “narrow” AI (which learns tasks in a single domain) towards “broad AI” that works across many domains.

Blockchain: While the most famous application of blockchain is cryptocurrencies like Bitcoin, Rommetty and Charles Redfield of Walmart discussed how IBM’s blockchain-enabled Food Trust initiative is helping increase food safety while reducing waste.

Ethics and Inclusivity: Rommetty also emphasized the importance of ethics in the development of technologies like AI, where it’s vital for products to be bias-free as well as “explainable, fair, secure, and with lineage.” She also stressed that companies must ensure that “new collar” (not white- or blue-collar) tech industry opportunities are accessible to people from all walks of life.  IBM is pursuing this goal through public-private education partnerships.

Rommetty’s vision of “what’s next” for business leaders is full of exciting new opportunities, but it also pushes the limits of the traditional MBA education. With emerging technologies and new social concerns transforming the means and ends of business, tomorrow’s leaders need to be more innovative, adaptable, and conscientious than ever before.  

With its new Global MBA degree, Macquarie University has stepped up to this challenge with education that’s every bit as innovative as today’s business world demands. In place of the usual program structure and course requirements of a traditional MBA, Macquarie has designed the Global MBA curriculum around six future-focused capabilities that cover analytical skills, creative thinking, and the “soft skills” needed by modern business leaders.

  • Leading: Great CEOs like Rommetty know how to leverage talent as well as technology to transform the way business gets done. Forward-thinking leadership skills are explored by courses like Know Your People, Adapt Your Leadership, and Become a Meaning Maker.
  • Strategising: In the midst of today’s fast-changing challenges and opportunities, leaders need to adapt and respond quickly. Students learn to develop future-focused workplace strategies with courses like Be Global, Be Sustainable, and Be Disruptive.
  • Analysing: Data is more central than ever to business success, and the skills needed to analyse information and generate insights are developed through courses like Know Your Numbers and Know Your Customers.
  • Influencing: Leaders need to be adept at using power and politics to shape the decision-making process and bring about change. Global MBA students hone these crucial “soft skills” with courses like Communicate With Impact and Negotiate and Resolve Conflict.
  • Adapting: Changes to technology and culture (such as those discussed by Rommetty) are transforming the meaning of work. Courses such as Build Personal Resilience and Become a Global Citizen help students navigate this landscape with confidence and purpose.
  • Problem Solving: In this capstone Specialisation, Global MBA students apply their problem-solving skills to real-world projects with guidance from Macquarie’s faculty and industry experts.  

In addition to the future-focused capabilities  curriculum, the Global MBA fits Rommetty’s vision in another, extremely important way: it provides unprecedented access to a world-class MBA. Based in Sydney, Australia, Macquarie University is one of the Asia-Pacific region’s top business schools and is highly-ranked internationally, providing a global perspective and a diverse student body from all over the world. By offering an affordable, online, and highly interactive business degree, the Global MBA is making the Macquarie experience more accessible than ever.

Careers Only You Can Dream Of

0
Careers Only You Can Dream Of

The UK tech sector is growing more than two and half times faster than the overall economy, while in the US more than 190,000 new tech jobs were added in the last year alone. With rising demand for talent to fill these new vacancies we look at just some of the roles that may be available to graduates from the new BSc in Computer Science.

From app developers to drone operators, the tech sector offers unparalleled opportunities for the next generation of technologists.

The first session of the new BSc in Computer Science, launched by the University of London, in partnership with member institution Goldsmiths and online learning platform Coursera, will start in Aprilthis year.

The new degree has been designed to give students not only the fundamentals of computer science but also skills in a number of specialisms that will be in high demand among employers. Industry experts predict that artificial intelligence, machine learning and virtual and augmented reality will be some of the biggest technology trends to take off in the coming years – all of which are specialisms on offer to students choosing the University of London degree.

“Because tech is always advancing – and the technology we use today will be improved again tomorrow – no matter what industry you go into there are endless opportunities.”

Tobias Cieslik, Director at Xult Group, has been working in tech recruitment for more than five years. He said, “Some of the big trends we’re seeing are in augmented and virtual reality, which have become hot topics within the sector. Other areas like autonomous and electric vehicles are developing year on year, while cyber security remains a priority for almost all industries. Because tech is always advancing – and the technology we use today will be improved again tomorrow – no matter what industry you go into there are endless opportunities.”

Sarah Trevelion, Talent Manager at consulting and technology company Techmodal, agrees. She said, “My role allows me to meet some really interesting people who have worked in IT for a number of years but have now moved into subsectors like sales, intellectual property rights and legal advice. Once you have a good grounding in tech there are so many other branches of work you could choose, and the breadth of roles is very exciting.”

“Once you have a good grounding in tech there are so many other branches of work you could choose, and the breadth of roles is very exciting.”

While many companies offer on-the-job training and development opportunities, industry experts agree that a degree in computer science will continue to be rated highly by recruiters.

Sarah Trevelion commented, “At Techmodal a lot of our recruits come in at a junior level and we offer training within the business. For me a good candidate doesn’t just have the basic skills but also has an aptitude for continuous learning. So having a degree not only demonstrates a certain level of ability and exposure, but it also tells me you’re at the right academic level to keep learning.”

“You will be expected to know a lot about a lot. Completing a degree gives you a mindset that’s ready to learn, adapt and deal with challenges.”

Rob O’Brien, Senior Technical Manager (International and Labels) at ITV Studios, knows the importance of a solid academic grounding. He said, “Whatever industry you work in, they are always going to want to use the latest trends and you will be expected to know a lot about a lot. Completing a degree gives you a mindset that’s ready to learn, adapt and deal with challenges.”

For those with a passion for computing, working with the most current tech offers its own rewards, but for others the incentives are more personal.

Phil Peters began his career three years ago and was quickly promoted to Senior Software Engineer at Ordnance Survey. He said, “I love being at the forefront of technology. As an engineer I’m given access to new programmes and new software at least six months before users. But what’s really rewarding is to think that the software and data I’m working on is being used by the police and the ambulance service to be able to find your house faster so they can help you. My work is genuinely benefiting people’s lives.”

Perhaps the most exciting thing about a future career in computer science is that many students beginning their degree now will be doing jobs that haven’t even been created yet. According to McKinsey Global Institute, a third of new jobs created in the US in the past 25 years were roles that did not exist before. From app developers to drone operators and from user experience designers to vloggers, the tech sector offers unparalleled opportunities for the next generation of technologists to create their own career path.

Find out more about the BSc Computer Science degree.

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.