Looking at the historical US Laffer Curve, a modern and global Laffer, and offering a critique of the theory

Over this past week, I reread Jordan Ellenberg’s How Not to Be Wrong, which looks at simple-to-understand yet profound results from mathematics. One section of this book is devoted to the Laffer curve, named after the American economist Arthur Laffer.

Ellenberg’s explanation of the curve includes the graphic below and reads, “The horizontal axis here is the level of taxation, and the vertical axis represents the amount of revenue the government takes in from taxpayers. On the left edge of the graph, the tax rate is 0% [which means] the government gets no tax revenue. On the right, the tax rate is 100% [which means] whatever income you have …. goes straight into Uncle Sam’s bag. Which is empty. Because if the government vacuums up every cent of the wage you’re paid … why bother doing it? Over on the right edge of the graph, people don’t work at all. Or, if they work, they do so in informal economic niches where the tax collectors hand can’t reach. The government’s revenue is 0 once again.” …

How many words does it take to know a word?

Suppose we wanted to play a supped up version of Scrabble where we still get points based on the complexity of a word but with a different metric. Rather than the letters used, we’ll score words based on how difficult they are to understand.

And here’s how we measure that difficulty. We’ll grab a copy of the Meriam-Webster dictionary and we look up that word. To learn a word in English, I read the definition. At this point, I have learned the meaning of the original word. However, to fully understand a word, I need to know the meaning of every word in its definition. And I need to do this for every definition. …

An Introduction to Path Search Algorithms

I took my first class in Artificial Intelligence in my junior year. I walked in bright-eyed and bushy-tailed. I was expecting all the buzz words — neural networks, support vector machines, Bayesian networks, and more. And the first lecture was the most disappointing 75 minutes of my Duke experience. Instead of cool-sound buzz words, I got depth-first search and recursion.

It ended up being one of my favorite classes and my professor knew exactly what he was doing. We had to learn the basics before we could take on the big stuff. We didn’t stand a fighting chance against deep learning if we didn’t know the fundamentals inside and out. Mr. Miyagi was teaching us to wax cars. …

An intro to preference learning and pairing algorithms using techniques from linear algebra, statistics, and machine learning

I recently had a friend text me and say, “Andrew, I’ve been getting a ton of matches on Tinder, but I still haven’t been able to find the one. I think it’s because I’m not using enough linear algebra. Can you help me out?”

And I replied, “Wow, that’s a weirdly specific question. This sounds like a fake situation. But yes, of course, I’ll see what I can do.” In this article, we’ll set out to help my friend find the one. But how?

We’re going to break this question up into a few parts. In part 1, we’ll take a look at building vector representations for human characteristics and calculating alignment between two vectors. In part 2, we’ll use a preference learning algorithm to weight categories and return the most relevant matches. …

An NLP investigation into how aggregated sentiment from Reddit can predict approval ratings for the President of the United States

Over this past semester, I worked with 5 other Duke undergrads to extract information from various subreddits to predict and determine the approval rating of the President. On Reddit, some praise the President, some detest the President. Our team quantified the sentiment, calculated averages, and produced some interesting results. Our analysis focused solely on Presidential approval ratings but our methods readily generalize to calculating the approval of any person, policy, or product. As a note, we focused on President Barack Obama for this project as there was the most data available during his presidency.

The Team

As mentioned, this problem was tackled by 6 Duke undergraduate students — Milan Bhat, a sophomore studying Electrical and Computer Engineering, Andrew Cuffe, a senior studying Economics and Computer Science, Catherine Dana, a junior studying Computer Science, Melanie Farfel, a senior studying Economics and Computer Science, Adam Snowden, a junior studying Biology and Computer Science, and myself, a senior studying Mathematics and Computer Science. …

An Introduction to Automatic Summarization using NLP, Markov Chains, Adjacency Matrices, and Machine Learning

If there is one consistent assignment across 10ᵗʰ grade English classes, it is writing a summary of The Great Gatsby (TGG). TGG is an engaging and exciting work of literature. It has central themes that weave themselves throughout the novel — themes of society and class, wealth and status, the current and the past. A cogent and concise summary is no easy task for a 10ᵗʰ grader.

In this article, we’re going to summarize TGG using some methods from Natural Language Processing (NLP). NLP is a subfield of Artifical Intelligence and Machine Learning that analyzes how computers process and understand organic methods of communication (e.g. written language).

Image for post
Image for post

Over this past school year, I became all too familiar with the technical recruiting process. In the fall semester, I opted for a breadth-first search approach and applied to about 30 software companies. In the spring semester, I helped run a technical recruiting class for undergraduate students in their first and second year. Based on my experience and the experiences of the students in the class, I learned two key things about software interviews.

  1. The Pareto Principle of Software Interviews: 80% of the questions asked are the same 20% of questions. This list of 13 covers that 20%.
  2. There’s only one question in an interview — “Why should we hire you?”. Sure, they may ask it in a roundabout way. But that is the only question they’ll ask. We’ll talk more about this towards the end. …

Image for post
Image for post

If you’ve just stumbled onto this series, make sure to check out the introduction here.

Question 1: What is your favorite programming language?


  • On your resume, it says you wrote a piece of code in Python/Java/C/etc., why did you choose this language?
  • If I want to build an app with features X, Y, and Z, which language should I use?

What They’re Actually Asking

  • Do you know the differences and tradeoffs between programming languages?
  • When writing code, are you intentional in the selection of your tools? Do you have a thoughtful development process?
  • Do you have experience with multiple programming languages? …

Image for post
Image for post

If you’ve just stumbled onto this series, make sure to check out the introduction here.

Question 1: Generate a list of all prime numbers less than or equal to some integer n.


  • Generate a list of all prime numbers between two integers a and b, including a and b.
  • For a given integer n, let π(n) equal the number of primes that are less than n. Write a method that determines π(n).

What They’re Actually Asking

  • When it’s time to put cursor to IDE, can you write clean code that runs?
  • Many solutions to this problem require multiple methods. It can be helpful to organize your approach into methods before developing. Do you plan your code before you begin writing? …

Image for post
Image for post

If you’ve just stumbled onto this series, make sure to check out the introduction here.

Question 1: What is a Stack?


  • Explain the concept of a Stack as an abstract data type and as a component of computer memory.
  • How would you implement a Stack? What methods would you need to implement?
  • What is a Stack Overflow error?

What They’re Actually Asking

  • Does your data structures knowledge extend beyond arrays?
  • Do you know about real-world applications (e.g. stack memory) of data structure (e.g. a stack)?
  • Do you understand how to implement abstract concepts? Do you understand the tradeoffs of different implementations?

Tools for the Answer

  • A Stack is an abstract data type that stores objects in a last in, first out (LIFO) order. …


Andrew Oliver

Undergrad | Software Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store