fbpx
Home Blog Page 1331

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.

Ask a Software Engineer: Airbnb Edition 🏡

0
Ask a Software Engineer: Airbnb Edition 🏡
A Day in the Life of a Software Engineer (via Life of Luba)

With Airbnb came a revolution of sorts in the world of vacation travel and culture. We sat down with Luba Yudasina, a YouTuber, an opera singer, and a Software Engineer on the Airbnb’s Homes Platform team, to discuss software engineering and her programming journey—from Codecademy to Airbnb!


Hey Luba, let’s start with the basics! What does a Software Engineer on the Platform team do at Airbnb?

Homes Platform’s mission is to create the building blocks to power all Homes categories. Any project undertaken by our team should be reusable and extensible in some way. This means that as a backend engineer, I have a lot of opportunities to work on impactful technical projects that create systems and services to support Homes, as well as collaborate across teams to come up with the best architectural decisions and designs.

Recently, our team wrote a blog post on classifying Room Types into categories using Machine Learning and computer vision. The room-type classification problem largely resembles the ImageNet classification problem, except our team’s model outcomes are customized room-types.

After a few experiments with various models, the team chose ResNet50 due to its good balance between model performance and computation time. To make it compatible with our use case, we added two extra fully connected layers and a Softmax activation in the end.

Categorizing listing photos into room types (via the Airbnb Engineering & Data Science blog)

What languages/frameworks do you use at Airbnb?

At Airbnb we use Ruby, Java, Kotlin, JavaScript, Swift, Ruby on Rails, React for frontend, iOS and Android for native development.

Let’s rewind a little bit. Coming from a chemical engineering background in college, how did you make the switch into programming?

I went to the University of Waterloo in Canada—a university with the biggest co-op program in the world. Co-op means that to obtain a bachelor’s degree you must complete a certain number of internships. If you are in Engineering at Waterloo, you must complete 5 internships to graduate.

In my first and second years, I interned at chemical engineering companies and afterwards I couldn’t see myself working in the field full-time. That’s why I’m particularly grateful that I studied at Waterloo: if not for co-op, I probably would not have realized I didn’t want to work in chemical engineering until getting a full-time job after graduation.

I happened to have a lot of friends in Computer Science and Software Engineering right when I realized Chem Eng wasn’t for me. They really encouraged me to try coding, and when I decided to follow their lead I never looked back! My first online programming course was Web Development on Codecademy 🙂

“It’s a really cool time to be a software engineer and even cooler to be a female software engineer, because this is the time when women start to embrace their own unique identities and be ok with not being ‘one of the dudes.'”
-Luba Yudasina

How did you land an internship at Yelp?

When I decided I wanted to learn computer science on my own, my goal was to get an internship in the field because working as a software engineer at a tech company would be the best test to really know if it was for me.

I happened to be in Munich, Germany on academic exchange for a whole year when I was learning how to code, so I hustled as much as I could while being there to get experience to learn quicker and have something to put down on my tech resume.

Almost immediately after arriving in Germany, I got a part time job as a developer at a game publishing company. I had a good friend in Computer Science at my German university: her and I ended up working on an Android app as a side project, etc. When I was ready, I started preparing for technical interviews. I then leveraged my network to refer me to companies and do mock technical interviews with me.

Yelp was really random though—a Yelp recruiter looked at my LinkedIn profile and didn’t even message me, but I messaged them anyway asking about internship opportunities, and that’s how I got my interview there!

1_EHELVEIPNp19gv_RsIU-Ng

Airbnb HQ in San Franciso

What is an essential app/item in your day-to-day?

Code searching! A lot of software engineering is problem solving and a lot of it is understanding other people’s code and the reasoning behind writing it a certain way. Searching through the codebases is almost essential to my day to day. Whenever I build something new or build on top of already existing tech, I need to understand how it works and is written, and code search is vital to this.

At Airbnb we use Google’s Codesearch for these purposes, but developers (myself included) also frequently use their IDEs to search for relevant code. I mostly use RubyMine or IntelliJ (depending on the codebase I’m working with).

In your videos, you’ve mentioned the intersection of gender and technology. Can you speak a bit more about that?

It’s a really cool time to be a software engineer and even cooler to be a female software engineer, because this is the time when women start to embrace their own unique identities and be ok with not being “one of the dudes.”

I think it’s particularly important to redefine the stereotypes, and I hope that with my own example I can show young girls and women interested in the field that you don’t have to give up your feminine side to be a software engineer and still be into fashion, or makeup, or art (I personally sing opera) and have other interests outside of coding and be successful in the field.

Before we wrap up, do you have anything else you would like to say to our learners?

Don’t be discouraged, learn and absorb as much as you can! If you don’t understand a concept or can’t build a project right away, know that with practice, perseverance and concentration you will get there!

Take advantage of such amazing tools as Codecademy that are there for you to take and learn. Learning anything new can be frustrating, but knowing that you can do it, staying curious, asking questions and not losing your motivation is the key to success.


Huge shoutout to Luba for this insightful interview. It’s always incredibly moving to see a Codecademy learner go on to do bigger things. Go subscribe to her YouTube channel, Life of Luba.

And thank you to the whole Homes Platform/Engineering team at Airbnb for the support. Check out their wonderful open source projects on airbnb.io.

Does Online Public Shaming Prevent Us From Being Able to Grow and Change?

0
Does Online Public Shaming Prevent Us From Being Able to Grow and Change?

What do you think about the practice of online public shaming? Do you think we are too quick to condemn people and organizations on the internet? Or is engaging in criticism an essential part of digital citizenship today?

Have you ever participated in a social media pile on or been the subject of one? If so, what was it like and how did it make you feel?

In “Esquire’s Cover Boy and Our Culture of Shame,” Robyn Kanner writes about the practice of digital shaming. In 2004, as a teenager growing up in a small town in Maine, she campaigned for George W. Bush. Fifteen years later, Ms. Kanner — “a trans woman living in Brooklyn, with ‘Infinite Jest’ on my nightstand and ‘This Is America’ on repeat” — says her views have changed drastically:

I voted for Barack Obama in 2008 and 2012, and for Hillary Clinton in 2016. I believe that every person in America deserves health care. I don’t think we’re paying enough attention to the destructive damages of addiction. I’m terrified of climate change and believe we should end the use of fossil fuels. All my friends are gay.

Still, I harbor an intense fear that part of my past will be used to invalidate the person I am now. I’m afraid of what my friends would think of my campaigning for Mr. Bush. Would I lose their trust? Would they fear that I secretly support war or xenophobic views? Would they believe me if I told them that campaigning for Mr. Bush was one impolitic moment on a long journey of understanding who I am?

Things are far worse for Americans younger than me — those who don’t know a world without the internet.

The one on my mind this week is Ryan Morgan, a 17-year-old from West Bend, Wis. He’s the cover boy of the latest issue of Esquire — the subject of a story called “An American Boy” by Jennifer Percy. Morgan is a white, middle-class teenager growing up in a conservative home with parents who support President Trump. He’s a sneakerhead who loves video games and the Green Bay Packers. He hates how politics are dividing his friendships. “Last year was really bad.” he tells Esquire. “I couldn’t say anything without pissing someone off.”

In Wisconsin, white people account for 87.3 percent of the population. In the 2016 election, President Trump took all of the state’s 10 electoral votes. Ryan Morgan may not be the American boy some want, but he is the American boy who is.

Still, his presence in Esquire sparked rage online. Zara Rahim, a spokeswoman for Clinton’s 2016 campaign, called out Esquire for running the story during Black History Month. “Imagine this same ‘American Boy’ headline with someone who looks like Trayvon talking about what it’s like to have your mother sit you down to tell you how to stay alive,” she wrote on Twitter. Others echoed the complaint.

One can debate whether the article should have run a month earlier or later, or whether Esquire runs enough stories about teenage boys of color. But few if any of those criticisms actually engaged with the story itself: Was the portrait wrong? Did it add value to our understanding of America in this moment?

While many in the press attacked Esquire, others went for Ryan Morgan. Some suggested he needed to be punched. Some suggested sending him hate mail. Others just swore.

If in 2020, he chooses to go to college, the Esquire story and the reaction to it will come up during his interview. If in 2025 he finds himself online dating, it will be right there, on Google, for any potential dates to find. People change, pictures don’t.

She concludes:

Like myself at 17, the teenager on Esquire’s cover clearly doesn’t have strong political values or ideas; he seems to have adopted those of the people around him, maybe simply because he wants to fit in. Indeed, he talks about softening his positions to avoid being ostracized: “It’s better to be a moderate, because then you don’t get heat.” He is currently being shamed for being uninformed, for being a normal teenager.

Digital shaming is arguably the only punishment that does not have a statute of limitations. Do we really want to live in a culture like this? Where no one has the room to grow or change or become a new version of him or herself? I’d like to think that the differences between me in 2019 and me in 2004 is a sign that we all can. The question is whether we can give one another the generosity to do so.

Students, read the entire article, then tell us:

— Do you believe people can change? Have your own views or beliefs about something ever changed? If so, what changed and what prompted your transformation?

— Do you think it’s fair to judge someone based on his or her thoughts or actions as a teenager? Should adolescents be held to the same standards as adults? Why or why not?

— What’s it like to be a teenager in today’s culture of online public shaming? Do you fear being ostracized for your beliefs or values by your community or society at large? Are you more thoughtful about the things you read and post online? Are you ever worried that something you say or do will end up on the internet and come back to haunt you later in life?

— What do you think about the practice of digital shaming after reading this piece? Do you agree with the author that it prevents people, especially teenagers, from being able to learn, grow and change? Or, does it help us question our beliefs and teach us to be more thoughtful about our words and actions?

— Ms. Kanner ends her piece by asking, “Do we really want to live in a culture like this?” Do you? Over all, do you think online public shaming makes our society better or worse? Why?

Students 13 and older are invited to comment. All comments are moderated by the Learning Network staff, but please keep in mind that once your comment is accepted, it will be made public.

Learning With: ‘NASA’s Mars Rover Opportunity Concludes a 15-Year Mission’

0
Learning With: ‘NASA’s Mars Rover Opportunity Concludes a 15-Year Mission’

Before reading the article:

What do you know about Mars?

Have you ever seen it through a telescope, or even with the naked eye?

Last Wednesday, NASA announced that its rover Opportunity had concluded its mission on the Martian surface. Take a look at this visual interactive showing its 15-year journey.

• What did you notice?

• What questions do you have?

Now, read the article “NASA’s Mars Rover Opportunity Concludes a 15-Year Mission” and answer the following questions:

1. While the golf cart-size Opportunity “lived” for over 14 years, how long was it originally expected to last? How long did its twin, Spirit, operate for?

2. Over the life of the mission, how many miles did Opportunity travel? How did it change the “paradigm” for the exploration of a planet?

3. Opportunity was officially declared dead on Feb. 13. How long had it been silent for? What do NASA scientists believe to be the cause of the rover’s demise?

4. What was Opportunity and Spirit’s mission? How did two previous NASA failures influence their mission?

5. NASA believes that data gathered by Opportunity helps to confirm that Mars was once habitable. What evidence does the article provide? What type of organism do scientists believe could have lived with those conditions?

6. As the last commands were sent to the Opportunity rover, scientists working on the project hugged and cried, and tweeted messages to the public featuring affectionate hashtags like #ThankYouOppy and #GoodnightOppy. Why do you think scientists became so connected to an inanimate object? Do you think you might have as well if you had been part of the NASA team?

Finally, tell us more about what you think:

— What did you learn about NASA’s missions to Mars and about the planet itself? What was the most fascinating, intriguing or surprising thing you read?

— The cost for the two rovers, Opportunity and Spirit, was about $800 million, and overall project costs reached about $500,000 a month. Do you think space exploration and research are worth the high price tag? Would you fund continued explorations of Mars? Why?

— Do you think humans will visit or live on Mars in your lifetime? Would you want to travel to the planet? Why or why not?

Further Resources:

Photos From the Opportunity Rover’s Mission on Mars

NASA’s InSight Mission Has Touched Down on Mars to Study the Red Planet’s Deep Secrets

Tech Gadgets

0
Tech Gadgets

What story could this image tell?

Use your imagination to write the opening of a short story or poem inspired by this illustration.

Post it in the comments, then read the related article to find out what this image is all about.

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

Word + Quiz: enjoin

0
Word + Quiz: enjoin

1. give instructions to or direct somebody to do something with authority

2. issue an injunction

_________

The word enjoin has appeared in 33 articles on NYTimes.com in the past year, including on Sept. 28 in “Theaters Fight Over ‘Harry Potter’ and ‘Evan Hansen’ in San Francisco” by Michael Paulson:

The biggest commercial theater presenters in San Francisco are trying to block productions of “Harry Potter and the Cursed Child” and “Dear Evan Hansen” from opening at a competing venue.

Nederlander of San Francisco, which operates that city’s Orpheum and Golden Gate theaters, this week asked a judge to prevent an ally-turned-rival, the producer Carole Shorenstein Hays, from staging the shows at the nearby Curran Theater, which she owns and has lavishly restored and ambitiously programmed.

…. The filing asks the court to “preliminarily and permanently enjoin” the Curran from staging the two shows, or, as an alternative, to award Nederlander “damages resulting from lost profits.”

_________

Get swept up in the language of yoga

0
Get swept up in the language of yoga

For Antonetta, yoga is not just an activity, but a lifestyle. She’s always looking for ways to deepen her connection to her practice – it led her to study Sanskrit, the language of yoga.

Antonetta owns her own studio, Sacred Yoga in Adelaide, where she teaches a small group of committed students. The income generated from the studio is a secondary goal, while passing on knowledge is at the core of what Antonetta does. To pay her bills, Antonetta does contract work as a production accountant for low budget film projects – the fixed-term work enables her to schedule in yoga and her latest passion project – the study of Sanskrit.

Antonetta doing yogaYoga is based upon the ancient Indian language of Sanskrit, so Antonetta decided to learn the language for herself, to become more immersed in her yoga practice. Through Open Universities Australia (OUA), Antonetta was able to study Sanskrit online as a single subject, provided by Australian National University (ANU).

Although the language is not spoken widely today, it lives on in the practice of yoga, and adds another layer of meaning for those who practice. “There’s no money in Sanskrit, but we understand that we’re studying for the joy of knowledge.”

Antonetta joins her classmates once a week for an online class, and outside of that, works on her own to complete assignments on deadline. She’s thrilled to have learned to read and write the alphabet in less than a year.

Antonetta in yoga pose

Learning is not always a means to an end – it’s a joy in itself. As they say, it’s not about the destination, but the journey. So if there’s a subject you’ve been hanging out to study, why not jump in?

OUA offers a huge range of single subjects, at both an undergraduate and postgraduate level. It’s university-level learning, but you’re free to take what you need, whether that’s new knowledge for your career, or knowledge simply for the love of it.

Antonetta standing in front of purple wall

To study Sanskrit online, or to express your interest in any of the courses on offer through OUA – fill out the form on this page, and a friendly student advisor will get in contact. Otherwise, head over to our website to browse over 270 degrees and 1600 subjects from leading Australian universities.

New Statistics with Python Specialization from the University of Michigan

0
New Statistics with Python Specialization from the University of Michigan

Statistics with Python is a newest Specialization from the University of Michigan, and enables anyone who has taken the massively popular Python for Everybody Specialization to take the next step in their data science education. This Specialization is also recommended if you’re considering the University of Michigan Master of Applied Data Science degree program.

In this 3-course Specialization you’ll learn how to use Python to understand statistical studies and reports from three experts: Dr. Brenda Gunderson, Lecturer IV and Research Fellow, Department of Statistics, Dr. Kerby Shedden, Professor, Department of Statistics, and Dr. Brady T. West, Research Associate Professor, Institute for Social Research. We spoke with the instructors to learn more about the Specialization’s unique lab-based approach and the big ideas you can use across multiple domains.

1. What is Statistics with Python?
This Specialization aims to introduce a broad audience of learners to modern statistical thinking. Not only will Statistics with Python introduce essential statistical concepts in a fun and engaging way, but it will also give you several opportunities to analyze real data using Python, and apply the concepts to real problems. We truly love teaching and emphasizing the real-world applications of statistics, and we think this blend of an applied pedagogical approach with popular software for data management and analysis makes for a very unique and exciting Specialization. We think that the three courses will appeal to people who are curious about statistics and the broadness in application is also why so many folks are interested in the discipline these days. You will leave this Specialization armed with some pretty powerful tools enabling you to gain interesting insights from data.

2. What excites you about Statistics with Python?
It may be surprising how easy it can be to manipulate data and then perform statistical analyses using Python.

You don’t have to be a programming expert to effectively use Python for statistical analysis.

People may have an immediate negative reaction when they hear “statistics” because they took a difficult class or because they only think of mathematics. To our team, statistics is a discipline that focuses on how to effectively work with real-world data and make decisions based on that data, and this Specialization takes the approach that anyone can approach data with modern statistical thinking. The detailed examples that include careful explanations of the Python code should appeal to a wide audience, and this certainly excites us about the potential of this Specialization to disseminate knowledge about statistical thinking.

3. Who should take this Specialization?
The ideal learner for this Specialization would be anyone who frequently has to deal with numbers in their everyday life, and would like to make more meaning out of those numbers. This could be an undergraduate or graduate student in any field that makes use of quantitative research who wants to expand their analytic skills: a small business owner who wishes to visualize and analyze trends in sales and clientele; an academic or clinical researcher familiar with Python (or any statistical software for that matter!) who wants to broaden their statistical knowledge; a government employee responsible for analyzing data; a market researcher who wishes to perform inferential statistical analyses using Python; the list goes on and on. Anyone who has the opportunity to work with data and is interested in broadening their computing and statistical skills would benefit tremendously from this Specialization. Anyone with even a basic curiosity about how Python can be used to analyze data (no experience required!) would really get a lot out of these three courses.

4. Why was this Specialization created?
There are several Coursera courses on Python or statistics, but no Specialization has combined these topics in the way that this Specialization does. This Specialization will walk you through a wide variety of examples of real statistical analysis using Python, and this blend of hands-on experience with top-notch instruction fills an important need in data science education.

5. After completing this Specialization, what will learners be able to take away?
After you complete this Specialization you’ll be able to demonstrate a strong working knowledge of applied statistics, including basic conceptual knowledge of study design, descriptive statistical analysis, data visualization, confidence interval construction, hypothesis testing, regression modeling, and analysis of clustered or longitudinal data. What makes this Specialization unique is that you can demonstrate that you have hands-on experience performing all of these types of analyses using Python software, which will look very attractive on a resume in today’s job market.

 

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.

Ask a Software Engineer: Airbnb Edition 🏡

0
Ask a Software Engineer: Airbnb Edition 🏡
A Day in the Life of a Software Engineer (via Life of Luba)

With Airbnb came a revolution of sorts in the world of vacation travel and culture. We sat down with Luba Yudasina, a YouTuber, an opera singer, and a Software Engineer on the Airbnb’s Homes Platform team, to discuss software engineering and her programming journey—from Codecademy to Airbnb!


Hey Luba, let’s start with the basics! What does a Software Engineer on the Platform team do at Airbnb?

Homes Platform’s mission is to create the building blocks to power all Homes categories. Any project undertaken by our team should be reusable and extensible in some way. This means that as a backend engineer, I have a lot of opportunities to work on impactful technical projects that create systems and services to support Homes, as well as collaborate across teams to come up with the best architectural decisions and designs.

Recently, our team wrote a blog post on classifying Room Types into categories using Machine Learning and computer vision. The room-type classification problem largely resembles the ImageNet classification problem, except our team’s model outcomes are customized room-types.

After a few experiments with various models, the team chose ResNet50 due to its good balance between model performance and computation time. To make it compatible with our use case, we added two extra fully connected layers and a Softmax activation in the end.

Categorizing listing photos into room types (via the Airbnb Engineering & Data Science blog)

What languages/frameworks do you use at Airbnb?

At Airbnb we use Ruby, Java, Kotlin, JavaScript, Swift, Ruby on Rails, React for frontend, iOS and Android for native development.

Let’s rewind a little bit. Coming from a chemical engineering background in college, how did you make the switch into programming?

I went to the University of Waterloo in Canada—a university with the biggest co-op program in the world. Co-op means that to obtain a bachelor’s degree you must complete a certain number of internships. If you are in Engineering at Waterloo, you must complete 5 internships to graduate.

In my first and second years, I interned at chemical engineering companies and afterwards I couldn’t see myself working in the field full-time. That’s why I’m particularly grateful that I studied at Waterloo: if not for co-op, I probably would not have realized I didn’t want to work in chemical engineering until getting a full-time job after graduation.

I happened to have a lot of friends in Computer Science and Software Engineering right when I realized Chem Eng wasn’t for me. They really encouraged me to try coding, and when I decided to follow their lead I never looked back! My first online programming course was Web Development on Codecademy 🙂

“It’s a really cool time to be a software engineer and even cooler to be a female software engineer, because this is the time when women start to embrace their own unique identities and be ok with not being ‘one of the dudes.'”
-Luba Yudasina

How did you land an internship at Yelp?

When I decided I wanted to learn computer science on my own, my goal was to get an internship in the field because working as a software engineer at a tech company would be the best test to really know if it was for me.

I happened to be in Munich, Germany on academic exchange for a whole year when I was learning how to code, so I hustled as much as I could while being there to get experience to learn quicker and have something to put down on my tech resume.

Almost immediately after arriving in Germany, I got a part time job as a developer at a game publishing company. I had a good friend in Computer Science at my German university: her and I ended up working on an Android app as a side project, etc. When I was ready, I started preparing for technical interviews. I then leveraged my network to refer me to companies and do mock technical interviews with me.

Yelp was really random though—a Yelp recruiter looked at my LinkedIn profile and didn’t even message me, but I messaged them anyway asking about internship opportunities, and that’s how I got my interview there!

1_EHELVEIPNp19gv_RsIU-Ng

Airbnb HQ in San Franciso

What is an essential app/item in your day-to-day?

Code searching! A lot of software engineering is problem solving and a lot of it is understanding other people’s code and the reasoning behind writing it a certain way. Searching through the codebases is almost essential to my day to day. Whenever I build something new or build on top of already existing tech, I need to understand how it works and is written, and code search is vital to this.

At Airbnb we use Google’s Codesearch for these purposes, but developers (myself included) also frequently use their IDEs to search for relevant code. I mostly use RubyMine or IntelliJ (depending on the codebase I’m working with).

In your videos, you’ve mentioned the intersection of gender and technology. Can you speak a bit more about that?

It’s a really cool time to be a software engineer and even cooler to be a female software engineer, because this is the time when women start to embrace their own unique identities and be ok with not being “one of the dudes.”

I think it’s particularly important to redefine the stereotypes, and I hope that with my own example I can show young girls and women interested in the field that you don’t have to give up your feminine side to be a software engineer and still be into fashion, or makeup, or art (I personally sing opera) and have other interests outside of coding and be successful in the field.

Before we wrap up, do you have anything else you would like to say to our learners?

Don’t be discouraged, learn and absorb as much as you can! If you don’t understand a concept or can’t build a project right away, know that with practice, perseverance and concentration you will get there!

Take advantage of such amazing tools as Codecademy that are there for you to take and learn. Learning anything new can be frustrating, but knowing that you can do it, staying curious, asking questions and not losing your motivation is the key to success.


Huge shoutout to Luba for this insightful interview. It’s always incredibly moving to see a Codecademy learner go on to do bigger things. Go subscribe to her YouTube channel, Life of Luba.

And thank you to the whole Homes Platform/Engineering team at Airbnb for the support. Check out their wonderful open source projects on airbnb.io.