Peter's Thoughts

Reflections on machine learning, optimization, startups, and the lessons along the way—shared with the aim of contributing value to others.

Good Sleep

Sleep should be a priority for everyone. Without good sleep, everything else in your daily life will shift out of balance. Think about it, the start of everyday depends on good sleep and each day ends...

LeetCoding

In a similar vein to competitive programming, LeetCoding is like a muscle that can be trained. Here are what I have learned from LeetCoding:

Practice Topics
A lot of people...

End to End Encryption

Recently, I listened to an episode of the "Security. Cryptography. Whatever." podcast (which you should definitely check out). In that episode, they talked about the inadequate and hilarious security ...

Competitive Programming

Competitive programming is a great way to sharpen your skill in data structures and algorithms. Overall, it's a fun and gamified way of improving at coding. At the same time, it's not a skill that can...

Lattice Problems

Cryptography relies on certain problems that we assume to be hard for computers to solve. These are the problems that we base encryption schemes on. For example, the factoring problem (restated generi...

Startups are hard

It's definitely not easy to build a company. For the last 5 years I've been trying to launch companies full-time and on the side. Here are some lessons I've learned throughout that process.

How to Over Engineer a Website

Building a web application requires two (sometimes one) components: a frontend and a backend, and a lot of infra-engineering. But ultimately, creating a full stack application can be outlined in a few...