Starting your own startup is a radical process, many times undertaken by people who have never done it before. It can be painful, certainly stressful, but also very exciting and motivating. My experience was no different, with extraordinary highs and dragging lows, and I hope sharing about it helps dissipate any apprehension in going after your own.
The next big thing
Last year, I began a company with the goal in mind of simplifying photo sharing. I saw a gaping hole in the industry, where we have plenty of tools for editing photos, and plenty for publicly displaying a photo, but few to support giving photos to an individual or group. And those that do exist can be challenging for the technically inept.
Enter Ellaphoto, an online service to create albums privately shared amongst a group, where everyone can contribute photos and have access to them indefinitely. Rather than scaling the quality of images, I’d keep them in full resolution and allow for custom tagging and organizing. Users could upload photos on the website, or directly from his or her phone. So instead of everyone in your group taking the same picture of the Lincoln Memorial, you can have one person with the best camera snap it and share it.
How many people have asked for pictures from friends or family at an event and only seen them on Facebook or Instagram? Probably just as many people who do not download them from Facebook when they do see them. And if the “poster” deactivates Facebook or deletes the album, those photos will never be seen again.
So, I put my nose to the grindstone. I was excited, truly energized, to solve this problem. I worked nights, weekends, whenever I had the time. This was alongside my full-time job that actually paid the bills and typically took more than 40 hours a week. But my enthusiasm and certainty that I wanted this software to exist for my own benefit kept me going. Of course I couldn’t have done it without the encouragement from my wife, family, and close friends with whom I shared the idea. Especially when working alone, you must look for some source of motivation and encouragement for the certain times of exhaustion.
Utilizing tools to focus that energy
My mind was racing. Starting your own company like this, you will be overwhelmed with ideas, and will likely forget several good ideas along the way. I highly recommend taking the effort to jot them down, “back of the envelope” as it may be, so you can reference it later. I’m not above writing on my hand. There were a few tools which really helped with organization.
I took to drawing mind maps to explore anything and everything about the idea. Should people be able to share photos to Twitter or Facebook? How may people interact with an album? This helped solidify core features and lower priority features which I’d want to provide.
I’ve used multiple ticketing and task tracking tools, but Trello really helps simplify organizing tasks. It utilizes a column structure with cards in each column to represent an idea. I built columns to track the state of ideas, such as Doing, On Deck, and Unformulated Ideas, and created cards for features.
I used a free account on Atlassian’s BitBucket service as my git repo and for tracking any bugs. Super easy to setup, and provides some nice features. A must have for any developer looking for a private repo. (More stable than using Dropbox as a git repo)
Architecting and planning
To begin an endeavor like this without a plan is a recipe for failure. Spending an hour planning can save you eight hours of unnecessary work. A couple late nights in a rabbit hole gives you hard knock lessons you don’t soon forget. For software, I recommend referring to those user stories while constructing the data modeling. I had a schema long before I had a project in git.
Once I did start coding, I flew. I’d write code all weekend, an hour or two before work, six hours after. The idea infiltrated my dreams, and I’d wake up to images of diagrams and UI variants. A good idea consumes you. You see affirmation everywhere that you are going the right direction. Look at all those people taking the same picture. Selfies at the Oscars. Building the application was more of a game than work.
For the more technically interested, I used Apache Cassandra for my database, a Java Dropwizard web server (shoutout to Datastax for their Cassandra driver), and took the opportunity to learn AngularJS for the UI. I wouldn’t recommend learning a new technology when pursuing something like this, it takes a lot longer and you risk building a poorly designed product. I never said I didn’t make mistakes along this journey.
“Anyone who has never made a mistake has never tried anything new.”
― Albert Einstein
It took me several months to get to this point, but I recommend outlining an MVP (Minimal Viable Product) and setting a date to work towards. It helps you keep your focus so you don’t spend two days drawing an icon in GIMP. I wrote the list of features I considered ideal for an MVP, then refined it with a more critical attitude. Do users really need to know their total storage usage at this time? Is deleting photos needed yet? Start cutting wherever you can yet still be successful.
Create that product, and test test test. Unit test everything you can, and run those tests often. I didn’t bother using a continuous integration server, but if you have a team you should do so.
Creating a startup really helps you identify the elements of distraction. You become more bold, and willing to say, “This isn’t worth my time. That isn’t worth the effort.” I stopped watching certain shows, stopped reading certain websites. I started building a mobile application for iOS without any experience writing Swift. After a few days of learning, I discarded the effort. The unpolished product I’d have after a couple months would not be worth the opportunity cost of a stronger website.
You learn discipline and self-sacrifice. It would be easier to watch a movie or play a video game than try to vertically align a block of text, or refactor a controller-service interaction. You learn to remind yourself of your goals, where you want to be in a months time, in three months time, and that you won’t just stumble into completing them.
So you’ve spent a few months building the next Twitter. You think you’ve got the answer to the “Great Photo Problem of the 21st Century.” How will you keep the lights on after your personal savings account runs dry? You don’t have to outline how you will become a millionaire, but you must have some strategy for how the product will create revenue. (Caveat: some companies don’t even need revenue, let alone profit, to make a billion dollars)
Working in a world of marketing, I made estimates of ad revenue. I also looked at a tiered pricing model against the cost of storage in Amazon’s Cloud Services. It’s a difficult problem for a computer scientist, but maybe easier for people with other backgrounds. I found a reasonable answer to how my accounting could remain in the black, with a realistic understanding that it likely wouldn’t. Big data is expensive.
Reflecting on the experience
So where am I now? As much as you create a startup, it also creates changes in you. I’ve learned a great deal from it, and respect those who also participate in the daring adventure. I built a system from scratch, including login security and photo protection, capable of storing massive amounts of data. I reached a pinnacle moment of risk, where opening the flood gates would tap me out swiftly. Starting a company is pioneering into an unknown, and I’m still moving forward in that unknown and learning.
But it’s addictive. Get a taste and you won’t soon forget. So try something new! You’ll only be disappointed if you’re looking for success through the wrong lens. For me, success was the construction of this product, solving problems I’ve never attempted before, and accepting the challenges.