How I Accidentally Became a Developer
I thought my head was going to explode. I’d been working on our new app, Codex, for almost an entire year and it was one brick wall after another. I was in disbelief when the day finally came to release it to the world — the road from finance guy to developer had certainly been long and difficult.
Entering the App Arena
My co-founder Joey Cofone and I launched Baron Fig about 3 years earlier in 2014. Initially we started off on Kickstarter with the Confidant hardcover notebook. We hit our goal of $15,000 in the first 24 hours and went on to raise over $168,000 — eleven times our goal. It was hard to believe, but apparently people still want physical analog products, even in this high-tech world of iPhones and iPads.
Back then I was working in finance full time, and I had to make the hard decision to leave a relatively comfortable life to help start a paper notebook company. I thought long and hard about it, and eventually made the decision to go ahead and take the leap.
Shortly after coming out with our hardcover and softcover notebooks we had a number of app ideas. Although I studied computer engineering in college, I hadn’t coded in several years and didn’t know anything about app development. It turns out what they teach you in college and what you need to actually apply it in the real world leaves a bit of a gap (at least for me).
So we took the easiest route and hired an outside developer. The first app’s concept was taking photos of your notebook, which ironically is similar to what I eventually worked on. We found a freelance developer through a friend. The guy seemed smart enough and we agreed on the features and contract. Over the course of the next two months we started designing, meeting, and building the app. All seemed to be progressing reasonably well until he came in one day and abruptly told us he was quitting the project because he didn’t like coding for iOS. The project was dead in the water.
Since we had the time, Joey and I regrouped to think about the app. What if, instead of having an app that only worked with our notebooks, we could make something where the user could take notes directly in it? At the time, this seemed like a great idea. So we did the exact same thing as last app attempt. We came up with a design (Joey is a talented designer and came up with beautiful mockups). Once again shook the grape vine and found another iOS developer through a friend.
Again over the course of 2–3 months we slowly iterated this new app, titled Mosaic. Our developer did a great job and, in just a few months, we found ourselves releasing version 1.0 to the masses in May 2015.
Taking Control of Our Fate
Maybe it was strange that a notebook company wanted to make an app, maybe the offer wasn’t right. Either way, we didn’t have any luck hiring an iOS developer. That left us with one reasonable option: we had to do it ourselves. Since Joey is the designer, it’s the natural fit that I would be the programmer. Over the last few months of 2015 I watched loads of videos and tutorials. I struggled and struggled, and over the course of four months managed to produce the super simple app Spark.
It felt great to release something, anything. But it was too much of a struggle, with every new concept taking weeks of work. The slapped-together seat-of-my-pants approach wasn’t the right way of learning iOS development if we really wanted to do it.
Joey and I finally decided we had to make a huge investment if we wanted to be recognized as an analog and technology company: I had to become a true developer. We came to the inevitable conclusion that a full time bootcamp would be worth the investment. In January 2016 I searched all over for the best iOS bootcamps — I wanted to stay in NYC where our studio is, and narrowed it down to three schools here in the city.
I knew that I wanted to focus on learning the newer Swift language instead of primarily on Objective C (I know it’s important to still learn both, which I did). Plus, I had still had responsibilities for Baron Fig. I was largely involved at that point in our physical notebook production, logistics, and finances, as well as working on new strategy and ideas with Joey. Most of the bootcamps were completely full time, but I couldn’t do that. I ended up going to TurnToTech, which was project-based. You do your homework at school and primarily work through projects at your own pace instead of attending scheduled classes. For a person who still had to run a business, this was fantastic.
Starting Code School
In February 2016 the four month program began. It was immediately brutal. The course matter was relatively difficult, plus I had a lot on my mind with our normal operations — I was still going to the studio on Mondays for our weekly meeting. I’d spend all day Tuesdays and Wednesdays at code school. Thursday mornings Joey and I taught Startup 101 at the School of Visual Arts in NYC, teaching graphic design and advertising students how to create a product and launch a Kickstarter campaign. Then I had Thursday afternoons and Fridays at code school. In total I spend about 3.5 days a week at code school.
During school I was insanely focused. I had to be. It was the only way I could reasonably complete a 4 month full time program in approximately 4 months doing it 3.5 days a week. The school opened at 10am, but I couldn’t contain myself. Every day I’d start work around the corner at Starbucks at 8 or 8:30am, and work there until they finally opened the school doors. The months were agonizing juggling real work and code school work simultaneously, but step by step I made my way through. I knew I was there for a good reason and had to continue to focus.
After many bumps, emotional ups and downs, I finished school in 4.5 months. Not too bad considering I could only be there 70% of the time. In the end I learned a ton. The instructors, Oren, Kaushik, and Patrick, were amazing. So many of the foreign topics I had during my Spark days were now incredibly clear. On top of that, having to teach myself most of the material would be great practice for making our new app.
Getting to Work
After I graduated in the middle of June 2016 I went to work on Codex. I was singularly focused on getting this app done. All of our current products work together — you can buy a notebook, a pen, a leather notebook case, and use them together — and we wanted our new app to do the same.
It was a hectic time around Studio Fig. We had a lot of physical manufacturing and logistics issues to work through. Since I used to be the main person handling them, I had the most knowledge about them. But at the same time, I was the only one who could program this new app. It created a lot of tension within myself and in the company trying to figuring out all these issues at once.
I liken it to building a house, one little brick at a time. It was significantly frustrating having to learn so many new technical issues, even after going to code school. Code school was great, but they can only teach you so much in 4 months. You learn the basics, but for each individual app there are specific technologies to work through. I had to learn about using the camera, image quality, finding the edges of a page in an image, syncing data to iCloud, syncing data between iOS devices, and polishing the app to make it look and feel good.
It was an intensely frustrating 6 months. Days would go by with me pounding my head against the wall trying to solve issues and not having anyone to ask for help. I became better at meeting other senior developers at meetups here in New York City. Times would come when I’d hit roadblocks and really need advice or input, it was and is useful having someone to talk about it with. I especially thank Orta and Ash for organizing the Saturday morning CocoaPods Peer Lab at Artsy.
Making It My Own
A trick I learned was to get out of our studio to work. I found programming to be significantly different from the business tasks I was used to doing. Instead of being able to switch between tasks frequently, with programming I needed large blocks of time to focus and get into a topic. One of Joey’s friends, Chris, had just started Spacious, a new type of co-working space. (It’s a great idea, they take high end restaurants in NYC and convert them into to co-working spaces during the day; only $95/month for a clean, quiet environment and free coffee.) Most weeks I’d work there Tuesday, Wednesday, and Friday mornings and then head into the studio. Unless it was urgent, I asked everyone to save their questions for when I showed up. I made a significant amount of progress this way.
There was still a huge benefit to working at the studio, too. One of the beautiful things about working directly next to my partner and our app designer, Joey, is frequent iteration. The feedback loop was slow when we tried outsourcing things. Finding out if features were technically possible or how they would look and function took weeks. Now Joey and I turn to each other all the time for feedback. Sometimes he’ll have new designs he wants me to look at. Sometimes they look fine, other times they need changes that will make them significantly easier to program. Frequently I have new features or parts of the program I want feedback on. I can get feedback instantly and keep moving forward. Joey is great at giving feedback, except I always tell him which parts of the screen work and which don’t — though he can’t help himself but to always hit the buttons I tell him don’t work yet. Eventually he’ll learn.
After six months of grinding away on the app, feeling like there was no light at the end of the tunnel, the app started to take final form. At the end of December 2016 we submitted the first version to the App Store, 2.5 weeks in advance of our official launch. I remember being at my parents house for winter break, my brother and his family were visiting as well. My first two orders of business were saying hi to them and then telling them to download the app from the App Store to make sure it worked on their phones. There was so much complexity in Codex, I wanted to work out any kinks well before we started emailing all of our customers and telling the world.
Over the next two weeks I made a number of changes and updates to get it just right. Then, finally, almost a year after starting code school, we released the app on January 10, 2017. It was quite an exhausting and emotional ride getting there, but it felt great getting it out. I have to admit I was nervous on launch day, even with all the testing I wanted things to go smoothly. In the end, there were a few tiny issues but for the most part it went well.
The next week Joey and I were working hard on updates. I went into the App Store to check something and couldn’t believe my eyes — we were featured first on the App Store homepage under New Apps We Love. I grabbed Joey’s phone to make sure it wasn’t just on mine for some reason. I remember telling Joey very calmly “I have good news and bad news. Good news is we’re featured on the App Store, bad news is I don’t think we’re ready for it yet.” While the app still had some rough edges, it did bring us exposure and a lot of downloads. Being featured by Apple felt like a true validation of my efforts.
Suggestions for Potential Developers
As much of an adventure it was in becoming an iOS developer, building and launching Codex — it’s just the beginning. Joey and I have a lot of features and advancements planned. If you’re considering making the switch to developer, here are a few things to think about.
- Bootcamp. If you’re relatively new to coding, it helps enormously. Bootcamp gives you the discipline and structure to learn and succeed.
- Hard work and tenacity. These are likely your most important ingredients. Learning to program takes a ton of hard work and persistence. There’s a lot of time between that initial excitement and finally delivering something. It took me almost a year of nearly full time dedicated work to go from knowing a little bit about iOS programming to finally delivering a 1.0 product to the App Store. You need to structure your life so you have the time and energy to learn and build something.
- Mentorship and senior developers. Although you have to do 99% of the heavy lifting yourself, sometimes you just get stuck. After reading through everything on Stack Overflow and trying what seems like everything, it becomes useful to talk to someone. Ten minutes of discussing the problem with someone who’s been there before can do wonders. I’ve had a number of conversations with Ash that either solved my problems or gave me a different perspective on how to tackle them.
- Reading online. You have to be curious and read tutorials, guides, documentation — everything. There’s an enormous amount of material online to consume, it’s up to you to turn it into practice. Sometimes just being curious about a topic and independently doing an example on Ray Wenderlich’s site will open your eyes to a world of new possibilities to use in your app.
- Design. I would recommend every programmer have a partner or collaborator who’s a designer. As much as I can program the app, Joey is the source of the majority of the design and inspiration for the functionality. He downloads tons of apps and devours everything about them. I think a lot of programmers believe that since they can make the app then they don’t need anyone else. Having a designer will take the quality of the visual appearance and functionality of the app to a whole different level. All of the serious apps in the App Store spend a significant amount of time on design and user experience.
- Marketing. We have an advantage when launching our apps. We’ve been around for over 3 years now selling physical products. In this time we’ve been lucky to develop some brand reputation, an email address list, connections to bloggers, and a social media following. When launching something new it has helped a lot in getting the word out.
For us the adventure is really just starting. If you want to become a developer it’s certainly possible — work hard, be patient, and you will succeed. If you’d like to check out Codex feel free to send feedback our way. We’re always looking to improve.