Just some thoughts and feels.
There's a common theme in recent days: speaking or remaining calm and quiet? Taking a stand or letting things happen? A concious decision doesn't make this easier. In the past I'd have made up my mind. I wouldn't think twice about saying something because I generally trusted that it was the right thing to do. These days I'm too cautious. --- Where've I been? I'll recap in chronological order.
02 October 2015My previous boss, the main guy I respected at the company I quit a few months ago, approached me with a job offer: equity for now; a good business idea. I'd do mobile development. I'd have to put Write.as on the backburner. I tell him I need the weekend to think about it.
05 October 2015I accept the offer. I start working on a new Android app.
October, NovemberI start making hour (roundtrip) commutes each day. It's nice working with people again.
December 2015Things slow down. I'm working remotely again. I pick up some contracting work to stretch my savings.
February 2016I'm out of savings in a month. Mild sense of
March 2016I start draining my mutual funds. I file my taxes. Making 50% of what I was supposed to make last year, it turns out, comes out to 2 months of living expenses.
June 2016My boss puts me on the payroll. I keep my equity. Oh, and I launched a big Write.as update (growth jumps up 52% that month). --- Now I have two "jobs" and I kind of like it. I get a breadth of knowledge (with little overlap) and have a chance to grow in new areas [it's minimal in the area of software development]. --- I have more thoughts, but I'll save them for the daylight.
I think I've acclimated to my new daily routine (if you could call it one). More accurately, I've acclimated to my new mindset. I feel like I'm finally using all of my brain again. Despite my disregard for the day of the week, I'm no longer waiting for the days to go by. I'm not relieved when I realize it's 4pm -- really, I don't feel any time-based relief anymore. LESSON 2: WORK SUSTAINABLY, NOT JUST "HARD" It took me around a month and a half to start working more than 4 hours a day on my new venture. A few factors contributed: - Spending time with previous colleagues and someone new - Contract work still occupying mental space - Vague thoughts from the past several months about my new project that I hadn't sat down to put together - Wanting to do some of the daytime things I hadn't done in a while because I was stuck in an office: * Riding my bike to nowhere in particular * Sitting at a coffee shop in the middle of the day * Taking a spontaneous roadtrip * Reading a book when I felt like it * Watching a documentary or movie when I felt like it * Creating new music * Finding a picturesque spot in the city and writing something down Then one day I looked up from my computer and realized I'd been knocking shit out for 6 hours straight. I didn't really think anything of it until I later quantified it with someone. While getting to that point has taken longer than I planned or hoped, it's let me naturally fall into the exact work habits I need. I found late nights worked best for me sometimes, and early mornings other times. When my work days grew longer, my normal days grew longer, and seemed to repeat on two-day cycles: wake around 8am, sleep around 4am, wake around 12pm, sleep around 12am. Repeat. Since then, I've felt more comfortable with my leisure time. I've felt more invigorated despite putting in longer days. I take most opportunities to grab lunch with a friend or take a day off to do something outside. But those times are now the exception. Every night when tiredness or an odd hour sets in, I still want to do more. But I go to bed knowing I have a list of exciting things to tackle in the morning, and another period of the sun rising and setting, moreso than the hands of a clock turning.
It's August again. Last year, this time, I was finishing a week-long hike in the California woods, still marveling at the world around me. In a week I'd be without my companion and girlfriend of 2 1/2 years. In another month, I'd be kissing a new one. In two months, I'd be planning a trip to see a friend. A month after that, I'd be on my first flight out of the country to see him. But I wouldn't board that plane until I first flew to Virginia for my grandmother's funeral. I'd drink heavily after her wake -- my first time being cognizant of an inanimate human laying in what might otherwise be a comfortable wood-lined bed. I would return from Ireland with a new worldview that altered my perception in the same way the thousand year-old trees and standing on the edge of a 2,000 foot drop did just a few months earlier. I would start fundamentally changing without even realizing it. I would visit my dad in Wisconsin, and sleep in an airport when I got back, because it's cleaner than the Greyhound station in Orlando. I would drive to Virginia for Christmas. As the new year approached, I would start formulating a new plan for my life, even while I remained distracted. I would be happy driving 45 minutes to see my girlfriend in the next town and getting drunk at a smoky bar downtown. I, too, would smoke a cigarette or three after enough drinks. I would be happy as a tradition of "drinks at 5pm every Tuesday" began with my coworkers. They would usually continue all night, as we talked about our corporate leaders with questionable decision-making abilities. I would find a community of fellow developers online as I learned a new programming language and registered a new domain name. I would build something for fun and get a hugely positive reaction to it online. Seven months later, a month ago, it would become the final push I needed to quit my job. *** There are times in life, like today, when I realize how many days have passed me by. I look at my travel-size Moleskine notebook and realize its first page was written almost three years ago -- yet no more than a quarter of it is filled. To realize this on any day you have things to do might bring on some kind of crippling existential crisis; I'm fortunate enough (now) to have unlimited time for such crises. LESSON 1: THE MONEY ISN'T WORTH IT. There is incredible freedom in not working for a paycheck. When someone says "Jump!" you say, "Okay, I can have the 'Jump' functionality finished in 2 hours, but I'll have to prioritize it after this other critical bug that we shouldn't go to production with." You do this because you've agreed to an open-ended arrangement where you accept a fixed amount of paper in exchange for [8,24) hours of your day. Where does it work conversely? Perhaps in an all-you-can-eat buffet. But when you wake up without an alarm clock -- any clock at all -- and wander downstairs to cook some scrambled eggs and bacon, you settle into your table that looks into your backyard where tomatoes are growing in your garden. The sky is gray and your glass of milk is cold. Your eggs were a little over-cooked this time, but fuck, that's as bad as it gets. You recall last night's events, and how the dog is sitting there begging for some table scraps. You give him a piece of bacon. You might realize now that it's 11 o'clock -- you might realize that it's 8:45. It doesn't matter, because no one is paying you to be at a designated location to do something they designated. You finish eating, sated at last. You even do the dishes right now, because fuck, you have nothing telling you there's not enough time. Your mind drifts to that cool thing you're building, and how you really need to figure out some other ways to launch this product. But there's cat hair on the floor, so you pull out the vacuum; that old site is still taking up resources on one of your production servers -- you add that to your mental list. You settle down at one of the few computers on one of any flat surfaces in your living room. Check the downloads, check reviews; check Twitter, check email. Start the day with a clear head. There's no one to tell you what you need to do, so you can do anything.
Today I slept in after another night out. Friends tell me you have to take at least a week off after you quit a job -- I'm opting to take a week's worth of nights off instead. After getting lunch at a great BBQ place down the road, I got to work on Write.as. I lost SSH access to my Phabricator server, so James, our new iOS developer, couldn't clone the app repos. After messing around with AWS, I finally regained access, and pushed up all my Android code. I also got my more portable laptop/development machine set up to push there. At this point I'm finishing up the next Android release (1.6), the first since the end of May. Even in small, more simplistic apps like this one, I can feel the software getting heavier -- like the app I was working on before -- with technical debt. Those nights I felt too lazy to abstract away some common functionality are catching up with me, as I realize I copy and pasted some crucial code. Luckily, unlike at my previous job, I'm making a point to fix bugs I find before carrying on to the new functionality. And that is making me infinitely happier and more confident that the app is solid.
Today I began my first day at my new "job." It's just after noon on a Sunday and I just knocked out a major bug that was plaguing the Android app. Before that, I cleaned my house -- something I hadn't gotten around to in weeks. I've already done more with my day than I would've at the job I left on Friday. I think I'll go eat a Klondike bar. --- That was delicious. I realized one factor that has been contributing to the malaise I've experienced in the past 38 months of writing software for money. Especially at my most recent job, there was never a moment I wasn't at someone's beck and call. I could expect an email from our CEO-cum-project manager at any hour of any day. And while I never risked losing my job by not responding within 24 hours, on Monday there was always a general air of me not looking like I'm competent because I decided not to think about work over the weekend. The job is just an example, though -- it's really everything I do digitally. By any standard, I'm a "bad" texter because it is used by most people as an instant messaging platform (except there's no "available" or "busy" status). Conversations that would take 1 minute in person take 5 over texts, even when I'm attentive. So unless I'm waiting at the doctor's office, I don't respond for a long time. My phone always has something new it thinks deserves my attention. These are the things I accept because it is what is required to operate professionally in the world now -- I have to be available and on the same page with everyone else. In fact, these little alerts are so important that I need another screen on my wrist to save me 4 seconds of drawing my phone from my pocket! (Though if I'm to accept this reality, I do love my Moto 360 for this exact reason). --- I've yet to decide what to do about always being available to someone somewhere. I'm eschewing a single person who can determine whether I'm "responsive" enough or not, but I'm now taking on many people who might want to talk and won't be paying me by default. It helps that I love what I'm working on now, but doesn't do anything about how distracting interruptions can be. I'm considering turning off email notifications if I can still get truly important alerts from another channel. But that might not happen this week. --- It is incredibly liberating to be the sole person responsible for what I get out of the next few months. I now have the bewildering freedom to push myself further than I've ever had to, or sit on my ass watching movies. To travel and party away all the savings I've accumulated in two years or sit around missing my consistent paycheck and endless crap I can buy compulsively. There's a lot at stake now, but it's no more than there was before. Where now the worst-case scenario is declaring bankruptcy and losing a house, it's infinitely better than wasting my very finite life. I'm excited to see what comes of this.
Today I was hit with my first bout of panic directly from my new venture. I spent the weekend taking a 40-mile bike ride up the coast with a new friend. The weather was beautiful, and it was so easy to take in everything along the way, even though I'd driven that route 100 times. We had no plans for where we would stay after the fireworks, but we wandered around like bums and finally crashed on nothing but a sheet under the moonlight. It was incredible. The next morning, Sunday, we awoke to a few sparse beach-goers, brushed our teeth the sound of crashing waves, washed off the previous day's dirt in the public showers, and biked back. Six hours later we had made it back, went swimming, and stretched and talked for another couple hours. So today I was faced with my last Monday at my day job, but started remembering all the unanswered emails, tweets, and messages I had waiting for me. I had had a lot of great conversations about marketing and generating revenue over the weekend. I had a few articles left from last week to read. I wondered if I'd be able to get paying customers. I thought about how long the next Android app release has been in progress when it fixes some critical issues. I had a meeting this evening, library books to return, not to mention work I was still getting a salary to do. But tonight I tackled all the things that had accumulated over the weekend. No one held the delay against me. I made progress on the Android app. I added a majorly useful feature suggested by a user. I posted about a short interview I did for an email newsletter about Write.as. It's way too late, but I'm back on track. Not only that, but I'm feeling so positive about everything again.
Yesterday — 2 years after starting, 3 months after trying to quit once — I resigned from my comfy development job. I haven't felt like myself for the past 6 months, year — I don't really know. But this year, 3 years into my working life after college, I've never felt more strongly that I needed to do something about it. I started 2015 feeling optimistic about a new project, a new programming language, a new mission. But I got derailed after I built myself up enough to throw away a developer's salary for some great unknown, excited for this future, only to acquiesce and resign to monotony in the name of a learning experience. The past 3 months have been 90 days of Groundhog Day, no single one really distinguishable from the next. Then I talked to someone I've known and loved for years, and with a simple explanation of what the past few months have brought she knew exactly what would stand me back up. I've acted lost, I've been lost, but I've known what I really wanted all along — so why hadn't I just chased it? That night I wrote an email to my boss. I told myself I'd see how I felt in the morning. There wasn't any real urgency, after all, besides the continual daily crushing of my soul. But a lot of people older than me have said That's normal. It's just part of life. When I woke I re-read my email, and suddenly I could only think of all the wonderful things that could come from this. I smiled. I walked out into the Florida sun and hopped on my bike, downtown-bound. I paused along one of the last residential streets and pressed Send. *** I can't remember the last time I've felt this free or happy. I know there are great jobs out there with great people to work for. But there's something about being in direct control of my life, after riding the cloud of someone else's checkbook, that is extremely exciting to me. I'm optimistic in the way a rock climber is — if you think about falling, you probably will. But if you focus on climbing, you'll severely increase your odds of getting higher (to say the least). I've planned for failure in the way you might wear a parachute, but I'm aiming for the highest point. I can't wait to see what happens.
I just ran a script for generating static HTML pages, which outputs them to a www subdirectory (after deleting its contents) -- except I ran this from my home directory, which conveniently contained a symlink to /var/www. I hadn't experienced the severe panic of catastrophic data loss in a while -- I'm glad I do occasional backups, and probably haven't really touched anything there since my last one. Lessions learned: - Back up more often: automate this - Make sure my scripts have absolute paths, especially when they're
rm -rf-ing - Do more error checking in my scripts
I recently added where, a tool that shows where in the world everyone on ~town is. I initially took a lot of steps to make the data "fuzzy," but there are, of course, still many privacy implications when you take data known only to the community (IP addresses) and share it with the wider internet. So I settled on an opt-in model, which offers optional anonymity, and I think it works perfectly — thanks ~endorphant for brainstorming on this with me. I'm going to be "out of town" for a bit while I turn my focus back to other projects. But I'll be back soon enough, especially to tackle more things on my todo list. Auf Wiedersehen, town.
Three things I want: - The freedom to live every day by the seat of my pants, especially in regard to geographical location. - To see old friends - To do things that help other people.
It's been a busy week and a half. I've turned all my attention to write.as, and it's been fruitful. I built a simple HTTP server for command line piping goodness. Then Sunday night I launched the Android app — probably the first one built from scratch that I'm really proud of. Around town, I added some file/directory color coding to the code page. I'm also working on a user list page similar to the one on ^C.club to show who's edited their home page.
I feel like I'm over the initial difficulty hump of learning Go with some of the work I've done this week. Two days ago, I launched the telnet version of write.as, which uses flat files to store posts. I'm not sure of the security issues yet, so I put it on a separate machine, where it has to copy files to another server to make them publicly available. Still, it works pretty well. Tonight I finished the initial pass of adding stats to the !tilde scoreboard, and with a little help from ~karlen, ended up getting a lot of interesting data pulled in straight from the IRC logs. I'm excited to continue building it.
Navigating tildes: when you stumble on a new page, you have a wealth of info in front of you. Maybe a library someone created that you could use on your own page. Maybe an article about how to do something you've never done (but would like to). It's the infamous rabbit hole of the internet: links in every direction, each leading deeper. This weekend I've been following the infinite rabbit holes of the tildeverse. And I got a feeling I'm not used to on the internet: I was seeing all these cool things people have made, but I wasn't able to interact by "liking" or directly commenting on something. Perhaps my brain has been conditioned by years of Facebook use, but I felt like something was missing until I jumped on IRC and watched the conversations flow around me. It's an odd feeling. Tilde pages are kind of like this art gallery where, upon future visits, the paintings are sometimes altered slightly. And the rest of the social media world is like a graffitied wall where you expect to learn pertinent information about the world around you. And you're constantly expecting to see "I <3 ~bear" tagged by someone new every time you walk past it. And somehow that feels normal. Weird. On another note, I've decided to create an
telnetSSH interface for write.as before I create a web-based one. The product actually lends itself to this perfectly—this is going to be really fun.
Realized ctrl-c.club has Go installed, so I decided to make that my remote sandbox. Today I cloned my tildes repo there and added a new tool, inspired by ~audy: a page listing all users with a Code directory. Making this, I realized a few things: - I should continue getting comfortable with the language before I make a production app - This could easily be re-purposed for any other shared folder structure.
This is next on my list.This is done. Tildes where I've used this so far: tilde.town ctrl-c.club totallynuclear.club tilde.red
I wanted to try postgres out since it avoid table-locking on column changes. But in the name of getting the datastore up quicking I've decided to go with MySQL for now. Luckily, it seems there's a common DB interface in Go that will let me swap in postgres if I choose to later on. I need an easy way to initialize the site, i.e. set up databases and environment configuration. I haven't found any pre-baked solutions for this yet. Biggest conceptual challenge right now is how to easily reclaim tokens for users.
Today I read about a guy taking a "6 month startup challenge," trying to make $100,000 in revenue during that time. He seemed optimistic, and it encouraged me to actually set a goal for myself in my current pursuits. Tonight I'm starting serious progress on write.as, my newest project. It's going to be the first time I use Go (or anything, for that matter) instead of PHP for a web app. I'll also be trying out PostgreSQL and maybe React.js. On another note, I was inpired by a thread on /r/Ubuntu to soup up the welcome message in my terminal. Taking a lot of inspiration from there, I came up with this script, which (after printing a cool ASCII banner) looks like this:
I learned a lot about Go from making the tildelog generator. I always enjoy the very early stages of learning a new programming language, where you have around 30 browser tabs open for each Googled function you need to perform. It's hard to get frustrated like you might later on, when you expect a certain mastery level for yourself. Right now, you barely know a thing.
There's something extremely satisfying about yard work, especially on your own yard. Today is a Saturday, a free day where I have time to work on one of my various side software projects. But most days (including during the week), I don't want to get on the computer first thing in the morning. I'd rather enjoy the sun on this 50-degree day. I'd rather enjoy any kind of day if it means being outside. So I woke and fed and walked my dog, and by 9am I was outside raking the yard and putting down topsoil and tilling and planting grass seed for another barren section of my yard. I did it without even trying to decide what to do with my day—I did it on blind impulse. Once I was done, I soaked the ground, looking at the section of grass I'd planted three weeks ago, thinking that this dampening patch of dirt would soon yield the same life. I smiled, content that my body was fully utilized today, not just eyes, fingers and wrists.
I wanted to write some simple programs for automating tildeverse-related tasks. This tildelog is the first of those.