The prosecution had previously rejected any kind of a plea deal. So what happened next was that rare thing: a dramatic courtroom reversal. In a closing statement, the prosecutor cited the outpouring of support the case had received across Kazakhstan. She requested that the judge allow Sauytbay to serve out a period of probation at her husband’s house. “I ask you not to apply deportation,” she said. “I ask you to set her free in the courtroom.” Sauytbay’s eyes went wide. Her lawyer, who seemed stunned, agreed. A few moments later, sounds of cheering rang out on the courthouse steps.
… Once the judge issued the expected ruling — prosecutors and judges in Kazakhstan rarely disagree — Sauytbay was ushered from the courthouse to the top of the steps, where she embraced her son and thanked President Nazarbayev for his beneficence. A poet took the stage to extemporize a victory verse in Kazakh …
Should the United States follow New Zealand’s example and ban all military-style semiautomatic weapons in an attempt to prevent future mass shootings? Or would such a ban be unconstitutional or impractical here?
CHRISTCHURCH, New Zealand — Prime Minister Jacinda Ardern of New Zealand on Thursday announced a national ban on all military-style semiautomatic weapons, all high-capacity ammunition magazines and all parts that allow weapons to be modified into the kinds of guns used to kill 50 people at two mosques in Christchurch last week.
“What we’re banning today are the things used in last Friday’s attack,” she said, adding: “It’s about all of us, it’s in the national interest and it’s about safety.”
Ms. Ardern is expected to encounter little resistance to the weapons ban in Parliament; the largest opposition party quickly said it supported the measures.
Ms. Ardern said her goal was to eliminate from New Zealand the weapons that the killer used in Christchurch. She emphasized that it would require a buyback of banned weapons in circulation now, plus regulation around firearms and ammunition.
“The guns used in these terrorist attacks had important distinguishing features,” she said at a news conference at Parliament in Wellington, the capital. “First, big capacity, and also their delivery. They had the power to shoot continuously, but they also had large capacity magazines.”
Ms. Ardern’s plan for immediate gun policy changes, announced six days after a mass shooting, stands in stark contrast to the stalemate and resistance to change that has stymied similar calls for restrictions on firearms in the United States.
Many Americans can buy a gun in less than an hour. In New Zealand, the process can take weeks or months.
Ms. Ardern’s handling of the massacre and its aftermath have resonated around the world and thrust her into the spotlight as a force on the issue of guns.
The shooting in New Zealand comes after the United States has experienced an alarming number of mass shootings in recent years, including the Sandy Hook, Conn., school shooting that took 27 lives in 2012; the Orlando nightclub shooting in 2016, which killed 49; the Las Vegas concert shooting in 2017 that left 58 dead; and the Parkland, Fla., school shooting, which killed 17 people in 2018.
Ms. Ardern’s overhauls have been inspired in part by neighboring Australia’s response after a mass shooting in 1996. The article continues:
Mr. Alpers said the challenge for New Zealand would mainly be getting the ammunition and guns that already exist out of circulation. Half of Australia’s states had some kind of gun registration plan in place before the 1996 reforms, making it easier for the authorities to know what weapons were out there and what needed to be brought in.
New Zealand only registers 4 percent of its weapons. According to the police, about 250,000 people in the country own an estimated 1.2 million to 1.5 million firearms. It is unclear how many of them would be affected by the ban.
“New Zealand is at a considerable disadvantage to countries that have had registries, because there’s no way of tracing the firearms because they don’t know who’s got them,” Mr. Alpers said. “We’re relying entirely on the honesty of the gun owner to turn it in.”
Ms. Ardern said that fair compensation would be paid to all those who participate.
Students, read the entire article, then tell us:
— What is your reaction to Prime Minister Ardern’s decision to ban semiautomatic weapons and high-capacity ammunition magazines? Should the United States do the same? If not, how should our country address the issue of guns and mass shootings?
When a terrorist massacred 50 people at two New Zealand mosques last week, Prime Minister Jacinda Ardern immediately grasped the nettle. “I can tell you one thing right now,” she told a news conference. “Our gun laws will change.”
That’s what effective leadership looks like. New Zealand’s cabinet has now agreed in principle to overhaul those laws, experts are reviewing ways to make the country safer from firearms and, Ardern promised, “within 10 days of this horrific act of terrorism, we will have announced reforms.”
Contrast that with the United States, where just since 1970, more Americans have died from guns (1.45 million, including murders, suicides and accidents) than died in all the wars in American history (1.4 million). More Americans die from guns every 10 weeks than died in the entire Afghanistan and Iraq wars combined, yet we still don’t have gun safety rules as rigorous as New Zealand’s even before the mosques were attacked.
Do you agree with Mr. Kristof? Has America lacked leadership on the issue of gun violence? How would you assess the quality of leadership by elected officials in the United States?
— New Zealand has a population of 4.6 million and an estimated 1.2 million to 1.5 million firearms. The United States has a population of 327 million people and over 300 million guns. In what ways do you think New Zealand’s weapons ban is relevant to the situation in the United States? Do you think the ban represents a realistic model of legislation that could happen here? Or are there too many obstacles or logistical issues that would make such a ban more difficult to enact?
— Additionally, the United States has an explicit amendment protecting gun rights that New Zealand does not. The Second Amendment to the Constitution reads:
A well regulated Militia, being necessary to the security of a free State, the right of the people to keep and bear Arms, shall not be infringed.
However, the Library of Congress writes, “The meaning of this sentence is not self-evident, and has given rise to much commentary but relatively few Supreme Court decisions.” What do you think these words mean? What relevance should they have for the debate about guns? Do you think a ban on military-style semiautomatic weapons would be constitutional?
— In her announcement on Thursday, Ms. Ardern said, “It’s about all of us, it’s in the national interest and it’s about safety.” Do you think it is possible for the government to find a healthy balance between protecting people’s right to own a gun and public safety? Do you believe the government is currently striking the right balance? Why or why not?
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.
What do you know about the relations between the Dutch settlers and Indigenous people in the 17th century?
Where did you learn this information? In schools? Museums? Textbooks? Pop culture? Family and friends?
How accurate do you think your knowledge and understanding is?
Next, look closely at the photographs of this diorama (from before the exhibit was altered) from the American Museum of Natural History in New York depicting Dutch settlers and an Indigenous tribe.
• What do you notice?
• What do you wonder?
• What story does the diorama tell?
Share your findings with a partner and discuss:
• How historically accurate is the diorama?
• What is missing from it?
• What biases do you detect in its representation of the past?
1. In the opening paragraph, Ana Fota, the author, writes that the diorama was “intended to show a diplomatic negotiation between the two groups, but the portrayal tells a different story.” What does the author mean by this?
2. What year was the diorama created? Bradley Pecore, a visual historian, says the diorama is “filled with historical inaccuracies and clichés of Native representation.” Why does he believe that makes a difference so many years later?
3. Faced with the problem of inaccuracies, what solutions did the museum consider? How did it ultimately address the problem?
4. The article details many historical inaccuracies in the original diorama. Give three examples. Which do you find most egregious or significant?
5. Why was it important to Mr. Pecore that the revised diorama and updated exhibit address the question of present-day Indigenous people? What stereotypes does he believe are still prevalent in museums across the country?
6. What prompted the museum to reassess the issues of representation in the decades-old diorama?
7. Lisa Gugenheim, a senior vice president at the museum, said:
We’re revealing the making of the cake and not just the end of the process. We’re inviting visitors to imagine themselves, why did we feel the need to update it? And of course that applies to teachers and kids, too.
What has been the reaction of visitors to the revised diorama? How does it meet Ms. Gugenheim’s goal of creating an opportunity for dialogue?
Finally, tell us more about what you think:
— What do you think of the American Museum of Natural History’s choice to keep the original diorama intact and add 10 labels with new information rather than revising or completely removing the exhibit? Should all museums follow suit and amend their exhibits of Indigenous people if they are determined to be inaccurate?
— Return to your observations and analysis of the diorama from the top. How has your understanding of the diorama changed? Does the article change how you understand early American history — specifically between European and Native American populations?
— Critics of the original diorama said it depicted “cultural hierarchy, not a cultural exchange.” Why do you think the issue of cultural representation matters? What connections do you see between the diorama and the ongoing Confederate statue controversy? How might the museum’s remedy be applicable to that issue?
— Ms. Fota writes, “The solution offers a lesson in the changing nature of history itself. And it’s written on the glass.” Do you agree? What does this story of this exhibit reveal about the nature of history? Who writes history for whom and why? Can there ever be an objective or true history? Or is all history written from a particular viewpoint, and therefore biased and incomplete?
— How accurate are the depictions of Indigenous people in museums where you live? How in-depth and accurate has the study of Indigenous people been in your schooling? How can we have a more accurate representation of Indigenous people, past and present?
Only when top colleges swap their race-based affirmative action policies for socioeconomic ones will the unfair advantages of the wealthy be nullified, and only then will their student bodies be truly diverse.
Are we really that surprised? In a culture that persistently propagates the idea that elite college admissions are the only key to success, in a culture that ascribes immense status to traditional centers of academic achievement, in a culture that has always supported the wealthy attending selective schools, no, we shouldn’t be surprised.
Ivy League acceptance rates were once well over 50%, and with numbers now approaching less than one tenth of that previous mark, it is apparent that something must have changed … In decades past it was only the wealthy who were able to send their children to the elite private high schools that nearly guaranteed admittance to Ivy League caliber institutions. It should come as no surprise that this same mentality is now in conflict with modern holistic admissions.
However, these ideas about status and education are not just the result of rich parents who want the best for their children; their actions are motivated by a culture that irrationally overvalues specific schools. Consider the Supreme Court, on which every single justice has attended at some point either Harvard Law or Yale Law (or both).
Even as the rich are getting richer, and their privilege skyrockets, 50 SAT/ACT prep coaches, parents, and test administrators felt the need to ensure their child’s spot in Ivy League schools such as Harvard and Yale. Imagine the mediocrity: rich, mostly white, most likely christian students with all of the privileges they need to be successful needing to cheat to get into a good college.
We are fed lies that affirmative action takes away the right of hard working Americans to get into college, that financial aid and other such programs that help the poor and disadvantaged people of our country are taking away that right from Americans to get into college. However, as it has almost always been, the rich are feeding these lies to the poor to keep them poor, while the rich prosper, the rich get into good colleges, and the rich live lives full of advantages.
When was the last time a new college was made that I was made aware of? My parents always tell me, “Apply for UC’s” or basically go to colleges that are already established. I’m not sure if new credible colleges are being made, but I definitely think that if it could happen it could lower competition, and in the end lower situations like this. No one will have to reach such desperate or cheap measures to get their kid into college.
When it comes to postgraduate study, there’s no singular reason to get started, nor is there one specific type of ‘capable’ person. It’s something that you, whoever you are, can benefit immensely from – whether it’s for the betterment of your career, or simply for the love of learning.
It’s no small decision – there’s time, money and effort to consider, not to mention the fear of failure, to which nobody is immune. But before you make your next move, here’s a few solid reasons why a postgrad course is not only a great decision, but is easier to accomplish than you may think.
But first, how does it work?
Postgraduate study available through Open Universities Australia (OUA) comes in 3 qualification types, in order of achievement level:
Graduate Certificate
Graduate Diploma
Master’s Degree
In most cases, these 3 qualifications are nested into a particular program. Say you’re studying a postgraduate writing program (we offer one through Swinburne University) – in a typical scenario, you can reach a graduate certificate after passing 4 subjects, a graduate diploma after 8 subjects, and a master’s after 12 subjects.
Having the ability to exit after 4, 8 or 12 subjects means that you’ll still be awarded a recognised qualification, which is higher than an undergraduate degree.
Your work experience could get you in the door
Some things you just can’t learn from books. If you have over 5 years of work experience, you may be eligible to start at graduate certificate level, rather than beginning with an undergraduate degree. You can also apply for credit for past study. Not only does undertaking a graduate certificate allow you to specialise in the areas that most interest you, it gives you an opportunity to strengthen your existing skills and apply them directly in your job at the same time.
Try before you commit
Did you know you can study a postgraduate single subject? These subjects form part of a postgraduate qualification, but you can also study them in isolation. This is a great way to acquire a new skill for a lower cost than a full-length course. If you find that you like it and want more, you’re bound to have more confidence to pursue the full-length course than you would have initially.
Build your own course
If you’ve got specific learning goals that a standard course structure can’t cater for, you’ve got the ability to pick elective subjects across OUA’s 15 partner universities, in study areas outside your major focus area. The world needs diverse thinkers, doers and creators, so you don’t have to follow a prescriptive or traditional path to get your postgraduate degree. Consult the webpage of your desired course for further guidelines on this unique opportunity.
Manage the cost, and reap the financial rewards
When it comes to fees, OUA offers access to government loans such as HECS-HELP and FEE-HELP. And the flip side is that once you complete your postgraduate qualification, you’ll make a higher salary. The median salary for all postgraduates in 2018 was $83,300 – compared to $61,000 for bachelor degree graduates. So it pays to invest in your career.
Future-proof your career
Further study increases your chances of landing your dream career. It’s competitive out there, so anything that can give you an edge is worth exploring. The full-time employment rate for postgraduate graduates in 2018 was 86.9 per cent compared to 72.9 per cent for undergraduates.
Postgrad study can not only help you become employed, but can help you stay vital in your industry as technology advances. Choosing to refresh your skills through postgrad study will ensure that you stay ahead of the pack and feel confident at work.
How do I get started?
We make it simple. If there’s a course, or a single subject that you’re interested in, you’ll only need to apply once through OUA’s standard enrolment process.
Eligibility criteria can vary based on course, but where there’s a will there’s a way. Contact an OUA student advisor, or fill out the form on this page, to have a conversation about your options for entering postgraduate study.
For a while now learners have been asking for a way to pay to access more of our courses. We’re happy to say you now can – with Unlimited– a new flexible way for you to study on FutureLearn. For £209, you will get access to hundreds of FutureLearn short courses for a year and the opportunity to complete them at your own pace. If you gain a digital Certificate of Achievement on any of your courses, you will keep the course’s content beyond the year you’ve paid for.
It’s Unlimited by name and unlimited by nature. Unlimited has countless benefits, but we’ve narrowed it down to the top five so you can get stuck into learning sooner.
1. Get unlimited access to short courses
As an Unlimited learner, you get access to all of FutureLearn’s short courses that offer a Certificate of Achievement (excluding premium courses) for a year. You can join as many courses as you like – perfect if you struggle to pick and choose a topic. Don’t know what archaeology course you’ll dig the most? Are you a bookworm with an appetite for literature? Whatever your interests you can pursue them easily with hundreds of courses in almost as many topics.
2. Learn at your own pace
In October 2018, a survey of over 3,000 FutureLearners revealed more than 30% of people valued the ability to be able to complete their courses at their own pace. With Unlimited, you have an entire year to complete your courses. Whether daytime, evening or waiting in the car while the kids finish football training, you can choose when you study.
3. Prove your achievements
When you achieve something great, it’s fun to shout it from the rooftops. Scared of heights? No worries – Unlimited offers digital Certificates of Achievement on all your courses (once you’re eligible) so you can show off your hard work the easy way. A certificate shows your initiative and passion for learning and is the perfect way to set yourself apart from the competition in your field. Our research shows that one of the top five considerations for employers when hiring is proof of continuous learning.
4. Keep your course content
The mind is fickle: you might find it easy to remember song lyrics but always forget the important things, like your anniversary or Newton’s first law. With Unlimited, there’s no need to cram: you can keep the content of all the courses you’ve gained a certificate on. Access the articles, videos and quizzes of your course whenever you need to revise, like before a job interview, exam or hotly-contested pub quiz.
5. Save time and money
At £209 for a year, Unlimited offers better value for money when compared to upgrading individual courses. One simple payment means less time at the checkout and more time learning. Fancy building your skills across one particular field, like business or teaching? Pitch Unlimited to your employer and ask them to invest in your self-development. You’re worth it.
Take a look at the URL bar in your browser. Does something look a little different? That’s right, Class Central no longer has a hyphenated domain name. Last week we went from www.class-central.com to www.classcentral.com, all one word.
Losing a hyphen may seem like a small thing, but make no mistake, switching to a Forever Domain Name is a rite of passage for a startup. It’s like when Facebook famously stopped being “thefacebook”, or when Dropbox dropped “getdropbox.com”. Our domain name and the name of our company are now one and the same, with no punctuation to stand in the way of our progress.
For users, this change should be almost imperceptible (though you may need to log into the site again — sorry about that!). Any links you have bookmarked should still be functional. Everything on the site should work the same as always. Of course, if you notice any problems, please let us know by emailing contact at classcentral dot com. (Doesn’t it feel good not to type a hyphen?)
Yes, we know that people will still mix up our name. We’ll still be referred to as MOOC Central, Course Central, and “What’s that website where you can find online courses?”
Today, we are simply proud to be ClassCentral.com. #nohyphen #alloneword.
P.S. By the way, we also have a new About Page. Come meet our team! 🙂
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:
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:
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: