Tag Archives: 2weeks

Two weeks notice: unfinished work

Three weeks ago I had about a dozen open Jira tickets. Today, my last day with the company, most of those are still open. I was able to update some documentation and do minor maintenance work, but a bigger change I had hoped to deploy turned out to be impossible because of a missing internal API.

It’s unsatisfying to leave unfinished work. There’s only so much that can be done in a limited time, though, and as we all know software (especially a web app) is rarely ever completely finished.

Bittersweet, moving on after so many years. The folks I’ve worked with have been really great. I’m going to enjoy keeping an eye on what they ship long after my GitHub access has been revoked.

This morning, my (now) former boss and good friend Willie Abrams linked in the company chat room to some of the photos that he had taken over the last 14 years. Brought back a lot of good memories, from brainstorming app features in a conference room to wandering around San Francisco before WWDC.

I think I’m going to let this be the final post to wrap up the “two weeks notice” series. I’ve accomplished a lot but there is still plenty left, especially shipping new products. It’s been good to force myself to write every day, so I’ll keep that going with the usual full posts and microblog posts.

You can find all 14 posts under the tag “2weeks”. Thanks for reading.

Two weeks notice: Core Int 192

Continuing from last week’s Core Intuition, today Daniel and I talk more about how things are going with the final days of my job winding down. We then take the second half of the show to catch up on recent news around Twitter’s leadership.

From the show notes:

“Daniel and Manton acknowledge celebration as a survival tactic, discuss the urgency of making ends meet as an indie, and examine changes underway at Twitter with interim CEO Jack Dorsey.”

You can listen or subscribe at the Core Intuition web site. Special thanks to returning sponsor CocoaConf. They’ve got conferences coming up in Boston and San Jose, and then Yosemite National Park next year.

Two weeks notice: health insurance

I mentioned in my first post in this series that I need to figure out healthcare for my family now that we’ll no longer be covered under the company’s plan. We spent some time digging into this recently, and basically came away with these points:

  • We are going to be paying significantly more per month than we used to. That is obvious and expected.
  • Buying through the health insurance marketplace is not much different than buying direct through BlueCross BlueShield. Comparing a few plans, the prices seem about the same. Hopefully we’ll get a tax credit discount based on our family size and the fact that I’ll probably be making less money this year.
  • We will need to stay in a PPO to keep the same doctors. This is non-negotiable for me, even though it will mean higher premiums.
  • Deductibles will be much higher than what we’ve had so far. The budget will be tight and we can’t justify the crazy-high premium that would be required to lower the deductible and out-of-pocket max. We’re leaning toward some medium-level plan.
  • It’s too expensive to continue my existing health coverage through COBRA for very long. Switching to a new policy soon makes the most sense. It should be fine to do COBRA for a month or so since we’ve already met our deductible and have a couple doctor visits coming up.
  • One of the main differences between some of the plans is whether there’s a copay for doctor visits. We are going to prefer plans with a copay and flat prescription drug charge.

We’re still learning details about this process every day, so some of the above may not end up representing our best options. Just yesterday we realized that there’s some flexibility in what we continue with under COBRA. For example, sticking with existing dental and vision but choosing something else for primary healthcare.

Since it’s already nearly August, I’m trying not to worry too much about these decisions. If we choose poorly, we’ll be stuck with mediocre insurance for a couple months (until my wife starts a new job in the fall and we can consider her group options) or until the end of the year (when the enrollment period for the Affordable Care Act resets).

Related, from 2009: Matt Haughey on the entrepreneurial case for national healthcare. And, more recently: Paul Krugman on the triumph of Obamacare. With everything else to worry about as an indie, at least it appears I won’t have to watch the progress we’ve made on healthcare start to unravel.

Two weeks notice: accounting

Bookkeepers, accountants, lawyers… I should get one of those at some point. Instead I seem to waste time moving from one accounting app to another — Xero, QuickBooks Online, Less Accounting — hoping that the next one will solve everything. Then I go back to tweaking monthly revenue summaries in Numbers because it turns out that spreadsheets are still pretty useful for this sort of thing.

This year I did sign up for what has turned out to be a game-changing app for my business: Baremetrics. I dragged my feet subscribing because it starts at $79/month, but it’s worth it. The way it breaks down which of your web subscriptions — in my case Searchpath, Watermark, and Tweet Marker — is the most profitable or has the highest customer churn or best average lifetime value… It was just eye-opening to me and led to finally taking some action to invest in the products that are doing well.

I still have a lot to figure out with this. The one thing I am doing right, on the advice of several folks over the years, is paying myself the same amount once a month from my business checking account, as if it was a normal salary. This helps in forecasting how much income I need in the near-term to keep enough padding in the bank to cover the slow months. It also makes sure I don’t spend everything too quickly.

We haven’t traditionally had the most strict budget. It’s easy to get lazy with finances at a regular job where you seemingly have a never-ending paycheck supply. The freelance or indie software world is quite different. I’m learning quickly.

Two weeks notice: press reviews

I need to set aside some time to contact folks in the press about my new project. I can tell just explaining the app to my friends that it’s confusing to understand on first glance. It’s different enough from existing social networks that it requires a high-level explanation for why I designed the architecture this way.

The short answer is that I wanted to build something open and extensible. Something that embraced the open web. By necessity that makes the concept a little more geeky than what has come before it. Having reviews of the product out in the wild even before the app is fully released may help get people thinking about what to expect.

Two weeks notice: final pull request

With just 5 days left at my regular job, it’s time to get serious about wrapping up my work. I have a small change mostly ready and tested locally, but need to push it up to GitHub and finish testing on the dev server. I have a couple open Jira tickets to look at after that.

Over the weekend I spent a lot of time with the Stripe API, trying to improve how I manage user subscriptions. Stripe has some new features since I first started using it. For example, options for sales tax and a quantity field. The latter is convenient if you have something like the ability to pay for multiple hosted web sites in a subscription, rather than deal with adding custom line items on an invoice.

Deadlines are an excellent way to push yourself to actually finish something. So this deadline of Friday is good, in a way, but unlike most of my other deadlines, I can’t miss it and keep working for another week. That finality is a little daunting right now, as I look at the week ahead and everything I want to get done.

Two weeks notice: moving too fast

For the first time in weeks, we had nothing going on this morning and could sleep in. After a late breakfast I worked on implementing a better trial for my new product, letting the business model advice I mentioned yesterday sink in.

Ryan Irelan, who founded Mijingo to create books and video courses for developers, wrote today:

“One of my biggest mistakes in my first several months of running Mijingo full-time is that I was going too fast.”

I probably needed to hear that. I’m increasingly worried about launching this new project either half-baked or too late, so I’ve been trying to ramp up the hours I dedicate to it each week. But I’m scrambling to quickly change fairly major aspects of it. It may be better to slow down to make sure I still have the bigger picture correct.

We’ll be traveling some in August, so that rules out releasing anything brand new before the trip. I’m thinking my focus leading up to that is to send this to the subscribers of my beta announce list first. Both the free parts and paid plans will be open as if it was a finished product, but it will just be limited to an invite-only group. Based on that feedback I’ll know how close it really is to shipping for everyone.

Two weeks notice: Core Int 191

We just published Core Intuition 191, the first episode recorded since I resigned from my regular job. In a way, it feels like this episode was 7 years in the making. Although I clearly wasn’t about to go indie that long ago, the topics that we’ve chosen to discuss on the podcast over the years have always followed that basic narrative: what can we do to improve our apps and business.

And as I hinted about earlier this week, this episode also features the return of our sponsor Twitter to promote their Fabric suite of tools for developers, including Crashlytics and Answers. Great to have them back.

From the show notes:

“Manton and Daniel discuss Manton’s big decision to quit his job and go full-time indie. They also discuss the challenges of freeing up one’s mind to focus on work, the freedom of indie development, and the psychological benefits of a dedicated workplace.”

This is a milestone episode for me. I hope you enjoy it.

Two weeks notice: your business model is wrong

How is it Friday already? I have just one week left at my regular job. In addition to looking at documentation, I talked on a video call with the lead engineer who will take over a couple of my projects. We went over my current bug list (exactly 13 lucky tickets in Jira) and reviewed a few of the trickier outstanding issues.

Nothing like walking through old code, even at a high level, to discover so much outdated cruft that could be redesigned or cleared out. There’s always a little bit of regret: if only I had fixed this one last problem before leaving, or smoothed over this one confusing part of the web UI. But that’s a slippery slope that could go on indefinitely. Web software in particular is evolving and never fully complete.

Meanwhile, I continue to get great feedback on my new Riverfold project from the very early beta testers. Bug reports, new ideas, and sometimes a series of questions that basically ends up as: you’re charging the wrong users, what if you tried this completely different way to make money instead?

While I don’t think there’s any direct competition for what I’m building, there are a lot of related services. I’d count even parts of Tumblr and WordPress among the services that are both complementary and in a similar theme to what I want to do. Tumblr makes money primarily through ads. WordPress has ads but (I expect) makes more money through their upgrades: paid custom domains, VaultPress backup, and premium themes.

When choosing a business model for my app, I’ve also been inspired by GitHub’s simplicity. Free for open source projects, which allows you to get a feel for how the entire system works as long as you don’t need private repositories. Paid for organizations, scaling up based on how many projects you have. The success of my project will hang on whether I can mix some of all these models without confusing potential new customers.

Two weeks notice: it just works out

John Saddington, who develops the Mac blog editor Desk, pointed to one of my recent posts and wrote:

“It does make me ponder, once again, what I’m doing with my so-called ‘career’ and if it’s the ‘right’ one. Although, every single time I think about that I know that I won’t like the answer… yet it always just works. I can’t tell you why or how I found or discovered this cadence, but, to each his own.”

Which in turn makes me reflect on my own career. I’ve been extremely lucky. The right jobs just seemed to have presented themselves to me when I needed them. I hope that luck hasn’t led to overconfidence as I take these next steps to become more independent. It would be a glorious failure if my luck runs out just when I need it most.

So I’ll have to work harder. I’ll have to better manage my finances, better plan and execute on new products, and better support each app so they’ll form a sustainable business. As I type this, I’m actually a little nervous for the first time since I put in my notice. Lots to do.

Tonight’s challenge: finish integrating CodeMirror into my new app, to provide Markdown syntax highlighting. I had never heard of this JavaScript library before this week. It seems very capable — a big jump forward on a feature I didn’t even think I could provide for 1.0.

Two weeks notice: new products

Tonight I worked on some bug fixes to one of the new apps I hope to ship for Riverfold Software. I have just a handful of beta users, but got some good feedback and bug reports last week, things I want to address before opening it up to more users.

When I think of the in-progress apps that I can ship soon to help increase revenue, there are really only 2:

  • Clipstart 2.0, which will be renamed Sunlit for Mac, to complement the iPhone version.
  • Unannounced microblogging-related web app, which may also come with iPhone and Mac apps.

The problem with Sunlit for Mac is that I’m requiring 10.11 El Capitan. So no matter how much progress I make on it, I can’t ship it until Apple releases their next version of Mac OS X. I want to chip away at the new features, but I can’t spend all of my time on it yet. I need to focus attention on projects that have a chance of bringing in additional revenue in the very near future, not by the end of the year.

So the microblogging app — the one I worked on tonight — keeps coming to the front. Since it’s mostly a web app, it has the least number of external API and App Store dependencies that would hold it up. I can ship the core functionality whenever it’s ready. The sooner I get it out the door, the sooner I’ll know if it’s something I can count on as business income.

Two weeks notice: writing documentation

Boy Scouts have a saying: leave no trace. One of its basic principles is that when you pack up your camp site, make sure you clean up all the trash. The place should look even better than when you found it.

It’s not a bad principle to keep in mind when leaving a job, either. Projects should be in a good state. I’ve fallen short in one key aspect of this — a conspicuous lack of unit tests in my web apps — but I’ve been more successful in other areas, like up to date versions of Rails and pretty comprehensive documentation.

Documentation is also an easy thing to improve at the last minute. Today I’m reviewing some API docs from top to bottom again, making sure that the confusing edge cases for how an app works are well covered. For my job at VitalSource, this means editing in Confluence.

The apps in Atlassian’s main suite that I’m familiar with — Confluence, Jira, and HipChat — have improved in small increments over the years. I makes sense that they would move fairly slowly; the apps are heavily used in larger companies, so a major redesign or feature change would not be well-received by many of their customers. Of those 3 apps, HipChat seems easily the best designed, and I expect having Slack as a competitor will keep them focused and driven to improve the app.

This post isn’t meant as a rant against Confluence, but as I use it’s default markup language or WYSIWYG editor I’m reminded of just how much I enjoy writing in Markdown instead. For my own apps, I’ve experimented with writing documentation in Markdown hosted on GitHub, which gives me easy publishing and version history. Tweet Marker, for example, pulls a Markdown file from GitHub directly and formats it inside its own web interface for Twitter app developers.

As usual, open formats like simple text files are a great choice for any writing that you want to last. For my new microblogging project, I need to repurpose a lot of writing I’ve done on this blog and move it into more formal documentation. I’ll probably use Markdown and GitHub for that as well.

Two weeks notice: podcast revenue

In my first post I framed the situation as pinning my indie hopes on two things: my own apps and client work. But as Daniel points out, I’ve actually lucked into several distinct revenue sources. And one of the most promising continues to be our Core Intuition podcast sponsorships and the companion jobs site.

The podcast got some good news over the weekend as we’re adding another long-term sponsor. We’ve had this company as sponsors in the past, and I’m looking forward to having them back and talking about how I use their products.

Like software, revenue from Core Intuition comes in waves. Sometimes we’ll be booked up for months, other times there will be a drought of sponsors, so we’ll focus on pitching the jobs site instead. Sometimes we’ll get new job listings every day, other times a week will go by with nothing. Since we’re not actively marketing it as if it was a full-time business, we can’t count on any kind of consistency from it.

It’s funny how the podcast worked out, though. We started it just because we thought it would be neat — because we thought we had something to share with the community, back in 2008 when there were very few developer podcasts. We added sponsorships to help justify the time and keep us to a weekly schedule. And now, ironically, the podcast that was about running an indie business will actually help me do just that.

I’m so grateful to listeners new and old who have supported us. I received a bunch of nice “congrats!” emails and mentions on our Slack channels yesterday. We’re approaching 200 episodes now, over 7 years, and I hope we can continue to keep the podcast interesting for some time to come.

Two weeks notice: the first weekend

I have some big news to share, so obviously I’m going to write a bunch of blog posts about it. This is the first one.

For a while now I’ve been juggling working on my own projects, with my indie company Riverfold Software, and having a regular job at the education e-book software company VitalSource, where I’ve been for over 14 years. As much as I felt like this balance mostly worked, lately it has become clear that the “nights and weekends” approach to Riverfold just isn’t going to be enough time going forward. Last week I resigned from my job at VitalSource to focus on growing Riverfold and shipping new apps this year, some of the most ambitious products I’ve ever tackled.

I thought it would be fun to do a series of blog posts about the early part of this transition. For the next couple weeks, as I wind down one set of projects and ramp up new ones, I’m going to post here with the slightly-catchy title prefix “Two weeks notice”. It will be me thinking out loud about the transition, kind of in the informal spirit of Brent’s syncing diary, or like a more serialized version of the classic indie posts from Gus Mueller and Paul Kafasis.

But unlike the authors of those posts, I can’t claim to have found success yet. If you take Scotty’s definition from the iDeveloper podcast, in fact, I’m not “indie” at all; I expect some percentage of my time will have to be reserved for client projects to help pay the bills. While I used to find that idea distasteful — why give up a consistent salary if you’re not even going to call the shots? — I’ve come to realize that client work can be pretty interesting. The cycle of starting new projects and shipping them is a good way to learn new APIs and iterate on how to build an app from scratch.

While reading all these 2005-era indie blog posts, I was surprised to rediscover that Daniel Jalkut also mentioned mixing in consulting work:

“Consulting makes an excellent back-up plan. You’ve always got a job if you need it, and your destiny is very much in your own hands.”

Of course he wanted more than that: to build a great company based around his own apps. I’m sure Daniel and I will be talking about this on Core Intuition later this week.

So it is a little in the vein of “leap and the net will appear” that I’m moving on from a stable job, where I worked with great developers and friends, to something new that is a lot less certain. I thought that would make for a stressful week, but so far, everything seems okay.

There’s paperwork to do and code to write. There’s health insurance to figure out. But there are also some things that have already been wrapped up. My projects at work are in a good place, hopefully not needing constant maintenance. We just refinanced our house, so that’s a monthly savings, and something that I’m told is difficult without a “real” job.

Friday night I started catching up on some late business taxes (whoops). Saturday I finished editing the podcast (which we recorded over a week ago). The rest of the weekend I tried to relax with family (but I worked anyway). It’s Monday now and there’s a busy week ahead. Let’s see how this goes.