Startup 9: What are you wearing today?

Like many people, I am a student. I attend over a dozen classes at two different colleges. I also attend regular social events and networking meetups. I often wonder as I am dressing, is this the same thing I wore last time I went to the place I’m heading now?

It sounds silly, but it’s something I always ask myself because I want to make the right impression. This is further complicated by the fact that I am something of a minimalist, so I keep less than ten shirts at any given time and only a few pair of pants/ shorts.

I was talking one day to my mom about this anxiety I feel, and she emphatically agreed.

I decided to make a simple app to keep track of what I wear each day so that I can look back and see what I wore last time I was at a particular class or event and know not to wear the same thing again. It’s schmuck insurance.

Wearing.Today is the result!


The minimum viable product version of this app is not social; each user’s profile is private. Users can post pictures from a simple single-page app which also lets them edit each post’s blurb, or delete their posts.

Paradigm Shift

This app is written completely in the functional paradigm. I wrote it as a single page html/js application which is built to be hosted on S3 and take advantage of Lambda for the functions.

I did not actually deploy it there because I Don’t already have accounts with those services, and they don’t support my primary language, PHP. The point was not to actually do those things, but to rapidly write a simple, complete app in that paradigm and get a sense of the workflow and how to construct the API.

Startup 8: Stardate.Today

For years, I have calendared prolifically. (Is that a word?) I track all the granular details: my to-do list is on one calendar; all my classes and homework; my social life; gym, yoga and exercise; and previously my jobs at Tech 2u and Starbucks. Each of these topics is on its own color-coded calendar within Google Calendar. You can take a look at what my weeks look like at

There is a problem though. Sometimes I wonder what I accomplished on a particular day off or with my free time after work. I go back in my calendar to check, and there is nothing there; just a blank spot where I neglected to note the day’s events. It’s hard to quantify how well I use free time or time at work when I don’t have any record of what I accomplished. What if I could make like Janeway and just shout at the wall like it’s my journal?

Journaling always sounded interesting, but there’s no way I am going to lug around paper and a pen to write in it, and even if I did, it wouldn’t be searchable.

Enter Stardate.Today. This simple tool lets me type out my stream of consciousness into private posts, and then adds them to a timeline for me to search back through. They are also added to my calendar so I can see when each thing happened.

It takes just seconds to get started. Simply log in with google and you will be given a link which you can enter into your phone or any calendar tool. On the homepage, you are presented with a simple box to type in and a list of your past posts. When you enter a post, it is automatically added to your calendar.

Simple as that.

Startup 7: Top Story Review

This is part of a series on Building 12 Startups in 12 Months.

This is number seven:!

Black-Box News is Bad

If you look at the news on Google or Facebook , you will see a few stories which some mysterious algorithm has selected for you. Are these an accurate reflection of current events? No. These stories are often selected to confirm your biases based on your activity and search history. You are seeing the echo-chamber your digital context has created for you, because that is how these companies maximize for your attention in order capture your attention.

Facebook and Google use black-box algorithms to pick what you see. This means that not only is there no explanation of how or why your stories were picked, but there is no way even for the engineers to reverse-engineer the algorithm and see how or why it picked the stories it did.

It is very common to see stories featured as trending on Facebook which are false, or shared through other services. This effect has led to people doing horrible things based on false information presented as news by algorithms, like shooting up a pizza place or threatening and harassing the families of murdered children.

This is a problem for democracy and a problem for all of humanity. There has been much speculation that this has been a major contributing factor in the recent rise of populism in America and the results of the recent presidential election. Everyone should have access to concise, accurate snapshots of current events. My frustration with the lack of quality and lack of transparency in news aggregation services today led me to create an open-source alternative which omits biases and individual context.

But How?

This project expands on an experiment I started in high-school. I was trying to aggregate various high quality news sources and then determine what major themes were trending, and present that information in a useful way.

Back then, I started with fetching the “Top-Stories” or “Breaking News” RSS feeds from a few dozen newspapers around the US, and combining them all into a MySQL table and then doing word counts to determine which words stood out, and classifying those in order to build a list of general topics, then I displayed the most recent or most reputable source’s story for each of the topics.

There are several big innovations I have come up with over the years which I can now incorporate into this idea in order to maximize value.

The final product will be simple homepages for lots of topics with a few bullet-points, imparting a concise and accurate representation of the current state of events.

My Open Algorithm

  1. Pull in thousands of rss feeds from an open list of high-quality news sources all over the world.
  2. Analyze the stories to find trending topics using my open condensr algorithm.
  3. Get all the stories relating to each topic.
  4. Condense all of the stories on each topic down to just one sentence.

Step 4 expands on the work of groups like SMMRY and Reddit’s autotldr bot. My new Condense algorithm can summarize thousands of pages of text into just a sentence or two. This is obviously not perfect, but it is surprisingly good, and there is always room to improve later.


The basic structure of the site will be a home page which combines all topics, and then lots of individual pages for each category. The home page and each topic page has a bullet-point list of a few trending stories with one sentence summaries. These bullet-point summaries will eventually link to a story page with a longer summary along with links to recent reporting from various sources.

The algorithm runs every hour, and maintains an archive of all the pages, so you can also look back at what was happening at any certain time.

In effect, I am building a massive pipeline that takes in much of the world’s reporting and produces high quality condensed content which is much easier to absorb.

Making Money

There will be an enormous amount of content created hourly, and that means lots of organic traffic. SEO and social integration will be critical. I will eventually include ads to monetize the content.

Startup 6: Exotic Weapons

Today, there are many fascinating examples of people using successful techniques to create passive income online.

Those of us who grew up coding and then took that perspective to business have a unique advantage. You might call it a super power.

We, the digital priesthood conjure passive income from the ether with the aid of new information technologies.

In this new blog, we will explore the ways in which engineers are the new pioneers and magicians, drawing the first maps of the digital frontiers we create and using esoteric knowledge to pluck money out of thin air.

All of the examples we discuss on Exotic Weapons will come with enough information to do it yourself. (And without the sales pitch.)

Startup 5: Condensr

This is a free tool based on several other tools I have seen online. It accepts long-form text and condenses it to the length you specify.

The code is very simple, and very powerful. I was shocked at how easy this was to build. Check it out on Github, or head over to the site and start condensing!

Next Steps

I have started initial development of an API, and I want to add a feed of things people have Condensed as well as a bookmarlet tool for condensing news articles.

Startup 4: CronPUT

This is part of a series on Building 12 Startups in 12 Months.

This is product number three: CronPUT!

CronPUT is a fairly self-explanatory name. Users log in with Google to sign up for an account and enter a list of webhook URLs, specifying an interval for each. At the specified time, a PUT request is sent to the URL. You can even see the result header code.

I maintain a dozen or so Linux servers. Keeping track of cron jobs for that many high-entropy webhooks is insane when they are all in different places and may or may not be working.

This product solves this problem by putting all your cron webhooks in one place.

Startup 3: Draupnr

This is part of a series on Building 12 Startups in 12 Months.

This is product number three: Draupnr!

Serving a folder full of html files will always be orders of magnitude faster than any dynamic, scripted site. It also requires orders of magnitude less in resources and thereby cost. Also, this paradigm allows better integration with serverless deployment and better integration with functional paradigm compute services especially. This will come up again in later projects.

But, it is hard to modify content on large sites with hundreds of pages, when the pages are all static. Nonetheless, we go to incredible lengths to simulate the speed of static pages through elaborate caching schemes. There are entire industries built on the idea of serving static versions of dynamic sites.

I have been experimenting recently with the ability to automatically, periodically fetch some data sources and then insert things into templates and generate static html files based on the data. The performance boost versus a dynamic PHP site is enormous, and the important parts can still be dynamic using JavaScript, ajax, or even PHP (ie. Facebook integration, etc.).

The Name

There is an old Norse story about a gold ring owned by Odin. Every ninth day, draupnir dripped eight copies of itself. When I was thinking about what I want this project to do, the ring from this story jumped out as the perfect name for this project.

How It Works

Periodically, the system tries to fetch various data sources and perform some work on them, then it injects the results into a series of templates and outputs that as a series of static html files.

This happens automatically on a set schedule, or whenever the admin wants to make a change to the site. This means the site is effectively just a set of static files but with all the benefits of a dynamic application.

Obviously this does not work for every type of application. But it is perfect as a cms for a blog or some other type of data-driven content which updates infrequently enough as to gain the benefits of this approach. This idea was inspired in large part on my previous work on and by Ev Bogue’s work on metalsmith.

The product is available for free on Github and there is a live example at which automatically creates a static html page each day with a random design quote fetched from a public API.

Startup 2: RSI Alert

This is part of a series on Building 12 Startups in 12 Months.

This is product number two:!

What Inspired This Project?

I follow a few dozen stocks and do some day trading in my spare time. Working on a previous project Securities.Science, I did some research into strategies using RSI to decide when to buy and sell stocks. I got some feedback from the first users of that project about how they would like to be able to receive email alerts at certain indicator points.

For example, one simulation on Securities.Science explored trading based on the RSI-14, or the RSI for the previous 14 trading days. Whenever the RSI-14 of a stock is below 30, the simulation buys, and then sells at close on the same day. Run against the previous year’s data, this simulation indicated a 136% return. This number could easily be improved upon by selling at a better point than close, but that’s another story.

Initially, I explored trying to add email alerts to queries inside Securities.Science, but it really isn’t set up to work that way. Users construct arbitrary datasets which would be difficult to integrate into a mail trigger system, and there is obviously potential risk of abuse with automated outbound emails. I decided to build a new product which focuses on only this one type of automated email.

This product is very simple compared to the other ones I am considering for this challenge. It just shows a list of a few high-return securities and their RSI-14 as of the previous close. Users can sign up to receive email alerts each day letting them know when the RSI-14 of any of the securities is below 30.

What Exactly is RSI?

From Investopedia:

“The relative strength index (RSI) is a momentum indicator developed by noted technical analyst Welles Wilder, that compares the magnitude of recent gains and losses over a specified time period to measure speed and change of price movements of a security. It is primarily used to attempt to identify overbought or oversold conditions in the trading of an asset…

The RSI provides a relative evaluation of the strength of a security’s recent price performance, thus making it a momentum indicator. RSI values range from 0 to 100. The default time frame for comparing up periods to down periods is 14, as in 14 trading days…

Traditional interpretation and usage of the RSI is that RSI values of 70 or above indicate that a security is becoming overbought or overvalued, and therefore may be primed for a trend reversal or corrective pullback in price. On the other side of RSI values, an RSI reading of 30 or below is commonly interpreted as indicating an oversold or undervalued condition that may signal a trend change or corrective price reversal to the upside.”

Straightforward Monetization

Monetization will be very straightforward; ads on the site and maybe in emails. This project also has the potential to expand into other verticals for various other things people may want automated emails about.

Lack of Similar Products
Means Competitive Advantage

As far as I am aware, there is no other product which does what this does, or I would be using that myself rather than building this.

A few companies have put together similar models for other topics, like Medium which offers a daily email containing some stories they have picked for you to read.

I was also partially inspired by IFTTT which allows you to set up automated emails for lots of different things, but it all requires domain expertise and setting it up involves some degree of technical complexity. This product and any future expansion is designed to be idiot-proof, with a broad market in mind.

Future Features

One obvious next step would be to integrate this with my upcoming current-events project; automatically including relevant news content related to these data would be valuable data for users to analyze along with the RSI-14 data.

Startup 1: Securities Science

This is part of a series on Building 12 Startups in 12 Months.

This is number one: Securities.Science!

What Inspired This Project?

My first startup in the series is Securities.Science. It lets users run queries against historic stock trading data in order to test theories and strategies. All data is public and everyone can see the work that others are doing.

This started with my coworker Luke Leggio and I trying to collaborate on developing strategies for trading leveraged commodity ETFs on RobinHood. I was very frustrated with the few tools and communities that exist for this purpose.

I had tried Openfolio which has since pivoted to a totally different kind of product. At the time, they let you share your trading activity and results with others and compare to how their strategies worked out for them. The problem was that it was terribly buggy and often reported things incorrectly. I wrote to their support people several times, even offering to do the work of fixing their products for them because the problems were so obvious. (Numbers being negative instead of positive when pulled from certain APIs, etc.) Some features like search and viewing the top performers didn’t work at all. They had no interest in making their product work, so I decided to make my own as an alternative.

Securities.Science automatically pulls data from various public APIs and allow users to write SQL queries that implement securities trading strategies. Their queries will pair with simple visualization tools in order to show how each strategy works over time.

First Steps

The site is now live, and the source code is all available on Github. Anyone can sign up for free and start running queries against historic datasets.

I have included lots of different tickers including all of the leveraged commodity ETFs which I follow, along with all the top stocks millennials like according to Business Insider. Adding more is trivially easy, but I didn’t want to just add thousands of tickers because of the maintenance overhead. And because most of them are not particularly interesting.

I wrote this as a plugin for Astria, a simple web application framework I have been developing for almost a decade. The code is very simple and hopefully distilled to the minimum necessary to explain the content. Check it out!

Next Steps

There are a few next steps that jump out at me if this finds adoption.

Expanded Datasets

The page describing available data encourages the user to reach out to me if they want to see any additional data sources. Eventually, users should be able to add data sources for whatever they want with simple tools.

Content Development

Scraping and collating data is one thing, but presenting it in a format which brings in organic traffic is a separate art. Other news and data sources relating to each stock could be integrated so that users can focus on particular industries, commodities, or ETFs and get more information than just trading data.

Execution Integration

There are lots of great APIs which would allow integration with stock brokerages so that users can set up triggers for buying and selling based on their models in the app. It would be fun to add that later.

Machine Learning and Other Advanced Analytics

The first version of the product only features SQL queries for strategy development. This enables lots of interesting and basic strategies to be implemented and tested, but adding machine learning and other advanced analytics features would be another order of magnitude in capability for users.


The Levels Challenge

Pieter Levels has been a very inspirational figure for me. I have been thinking a lot about his series of blog posts, “Building 12 Startups in 12 Months.”

I really enjoyed reading these, and I really liked his definition of what a startup is. In this context, a minimum-viable-product which is publicly available for people to use online. That definition is a huge accomplishment. Creating something is the most important and valuable thing we can do. In fact, there are whole ideological identities based on this idea. Another Peter, Peter Thiel, calls this Zero To One, the title of his book; the act of creating something that has never existed before. He calls it the miracle that we will need to accomplish over and over in order if we want the future to be better than today.

Like many of us, I am often overcome by choice-paralysis over all the options I have, and end up doing nothing because I am overwhelmed by all the ideas I come up with.

Obviously there is a lot more to building a company then the MVP, but this wasn’t about building some global zaibatsu like Facebook or Google in his spare time, it was about starting something. Pieter’s 12 startups may turn into successful and self-sustaining businesses, but that wasn’t necessarily his goal. It was about shipping multiple products quickly.

Like most engineers I know, I have a long list of “someday” projects and ideas. I decided to take a long look at that list and distill it down to a few of the best, easiest to start projects in order to challenge myself to stop adding things to the list and start checking things off the list.

Looking at the startup products Pieter built during his 12 month challenge, a lot of them do not seem very complicated or likely to become revenue-producing, but the point is that he built them. AND that at least some of them have some chance of making money, and one or two of them stand a good chance of making a lot of money. He often comments that he makes over $10k/month from some of these projects and that that is so simple and easy an accomplishment that literally anyone ought to be able to do it.