I know! I haven’t written anything in a while.
I’ve been living the freelance life and it hasn’t been all sunshine and rainbows, at least not yet. I’ve been working on a couple of different projects over the past few months that have really opened me up to newer technologies that I simply never would have gotten to use before, like React, and technologies that I’ve wanted to build things in, like Elixir, which is all really cool!
I’ve been doing a lot of React stuff lately and I was really lucky that I have clients who see how fast I can pick up something new and be productive with it. While working on other projects for them, they just reached out to me with a, “Hey, what do you know about React? Would you be willing to look at it over the next few weeks so I can put you on a React project in about a month?”
The technology part of my new freelance life has been fun and easy and I really love the freedom it comes with. The business part of it though, that’s a bit harder for me, especially because I’m not as business-oriented.
I struggled with finances and accounting of it, understanding what business expenses are, and how those factor into taxes at the end of the year. What should my business be structured as, technically? If I buy a thing I will use to learn a new thing that will bring about a high value contract, but I won’t be at that stage until next year, is that a business expense? Helpfully, a lot of these questions were answered by just sitting down with an accountant and getting these questions answered.
But then there are things that my accountant can’t help as much with, that just come with being self employed, like pricing myself correctly and finding health insurance.
When I first started freelancing earlier this year, I knew I was just entering the market and I didn’t really understand what I was worth, so I just threw out a number that was higher than my full time job was paying, but probably still too low. I was conflicted because I know I’m a hard worker and a valuable team member; I know I have a good range of experience and that I pick up unfamiliar things quickly. But, I also knew that I didn’t really have contacts outside of the University and my portfolio of work there was valuable, but it wasn’t very visible. To top it off, I live in a city with a lower cost of living than tech giants like San Francisco or Portland, so I can afford to be a bit cheaper and hopefully be the more appealing candidate. Tucson also doesn’t really value it’s programmers or people in my industry, so the pay difference is much more than just the difference in the cost of living. That philosophy is more hurtful than helpful, I’ve come to realize. One of my goals is to move to Portland and there is no way I can do that with my current rate. Furthermore, once I can move, I can’t keep the same rate because then I can no longer afford my living expenses.
Also, my quality of work is just worth a lot more than I thought it was when I started six months ago. It’s as simple as that.
Health insurance is something I have struggled with a lot over the past few months and there seems to be no end. For those of you who don’t know, I have a chronic, autoimmune medical condition that means I can’t just have any health insurance with a low premium and minimum coverage. Without medical insurance, my monthly prescription costs alone are over $2,000. So, when open enrollment starts, like tomorrow, I will spend hours researching the plan options available to me and cross examining them in a couple of different dimensions. I have to find the one that at least covers at least my medications (without paying a high deductible of $1,200 or so) and has a reasonable premium that I can afford. The insurance I have now (that I may even have to stick with next year) doesn’t actually cover any of my doctor’s visits. Health insurance was hardly a concern when I had a full time job, even with my condition.
However, despite these struggles, I’m really enjoying being a freelancer. I get to work with interesting people on interesting projects. I can work when it’s convenient for me. I have time to work on myself, personally and professionally. It doesn’t feel like a “grind” I go to from Monday to Friday, 8am to 5pm. I can explore less related technical sectors that interest me, and those books and resources can just be a business expense.
The thing I’ve been exploring lately that I’m most excited about is cryptocurrency and Distributed Applications (DApps) over a blockchain protocol, like the Ethereum network. Since I’ve had time to work on fun pet projects, I’ve tried a couple of things:
- I worked on an automatic trading bot until I realized I don’t have the economics knowledge to really understand whether a trade was “good” or “bad” with the number of layers in cryptocurrency trading.
- I turned a raspberry pi into a currency staking device.
- I built a mining rig out of some graphics cards running ethOS.
- I built an auto-updating ethOS dashboard to help me learn React: http://ethos.awochna.com
- I started, but haven’t made a lot of progress yet, on a web application for a cryptocurrency faucet. The existing open-source ones are dated and using old (and potentially dangerous) versions of languages and libraries, and they don’t have a clear upgrade path.
- I’ve deployed a simple token contract onto the Ethereum testnet and I’m well into my second book about DApps and Ethereum.
And, I have some more ideas that I hope to get to soon:
- To get familiar with React Native, I hoped to rebuild, and improve upon, Tucson’s bus schedule phone application.
- To get more familiar with Ethereum and Solidity, I want to build a betting application in Solidity where two users make up some terms and “deposit” equal amounts of Ethereum which goes to the agreed-upon winner.
- Since I started on my trading bot, I’ve learned a lot more about trading and economics, so I think I could go back to that.
- There are open source mining pools for cryptocurrencies that use a Proof-of-Work algorithm (like Ethereum), but these mining pools are locked to Node.js 0.10 because of a dependent package that is extremely difficult (or impossible) to compile on more recent versions of Node.js. These pools use a really interesting TCP-based technology to communicate with miners quickly with low overhead that I would like to explore using Elixir, so maybe I’ll make one of those!
I’ll be writing more frequently now, so leave a comment below and check back soon!