One year of freelance software development: a retrospective

Reflecting on my experiences and goals

Tags: My freelancing journey


This past Saturday, Matthew Cardarelli Solutions officially turned one year old! Time has flown since I started my self-employed developer journey. When I began last year I wrote a blog post explaining the reasons I chose this path and what I hoped to gain from it. With a year under my belt, it’s as good a time as ever to review what I wrote and reflect on the past, present and future of my budding business endeavor.

Goal No. 1: Understand the system

Last year I wrote this about my first goal:

If I want to find out whether a better way to do business exists, I need to dive deeper into the system and understand how it really works. Win or lose, I’ll come out the other side better educated.

I still feel like I’m at the tip of the iceberg here, but goal number 1 is definitely well underway! I have certainly learned a lot about the inner working of the software industry. Some of that education has come from observing the tumultuous upheaval of the U.S. tech industry. Beyond that, being self-employed has more or less forced me to approach my career and the industry with a degree of detachment and nuance that I previously lacked.

As an individual contributor, my goals were to earn a steady paycheck, feel like I was having a positive impact on the world, and improve my technical skills by working on interesting problems. I never concerned myself with the business side of software. In fact, I must confess that my eyes would typically glaze over any time an all-hands meeting reached the “sales and finance” segment. Now, as a contractor working directly with startups and businesses, the need for my clients to experience a return on their investment takes center stage.

Very quickly, I realized that my ability to find and retain clients hinged on understanding their goals, and the problems they were trying to solve with software. To acquire that knowledge, I started networking with start-up founders, CTOs, venture capital investors, small-business owners, and fellow freelancer and tech workers. Some of our discussions are highly technical, but we also branch off into economics, politics, and any other field you can imagine. Apparently, the world of business functions like a massive machine composed of heavily interdependent parts.

To my surprise, this emphasis on the business side of software has not sucked the joy from my day-to-day job as a developer. On the contrary, my insistence on placing client value front and center creates new and interesting constraints and challenges for me to solve. It also, I believe, has made me a better developer. My early-career tendencies toward over-analysis and perfectionism would never be sustainable as an independent contractor. By prioritizing only the features and decisions that really matter, I am better positioned to deliver real results.

The whole experience over the last year has also filled me with some very strong opinions about where the software industry needs improvement, particularly in terms of hiring, training, and career development. That topic is worth an entire post in and of itself, so I’ll hold my tongue for now!

Goal No. 2: A seat at the table

I summarized my second goal as follows:

…am I excited to comb through lengthy contracts, pay for my own health insurance, and manage my own taxes? Not entirely, though I admit I’m morbidly curious. Nevertheless, I am excited to find myself with a seat at the table, negotiating as an equal with some degree of real influence.

The first part of my quote was definitely accurate. I am not enjoying paying for my own health insurance. I also had some pretty sub-par experiences with lawyers while drafting my contract templates. Figuring out my taxes would have been a total pain too, if not for my awesome accountant (shoutout to Al Lanzillotti!).

Fortunately, I also feel like I’ve already achieved everything I’d hoped for with regards to this goal! In just one year, I’ve:

  • Put together my own Master Service Agreement and Statement of Work templates, which clearly define the terms of service between myself and my clients.
  • Built my own pricing algorithm, which I have used for every quote I’ve offered.
  • Set up my own general business hours and out of office policy.
  • Launched my company website and blog.
  • Established my own prospect and new client workflows, including consultations, proposal documents, and contract negotiations.
  • Conceived, designed, and launched my Fractional Developer Plan offering as a hybrid of the retainer and fee-for-value pricing models.

I attribute at least some of this success to my amazing professional network. 100% of my business so far has been through referrals, and since I intentionally curate my network with mature and reasonable people, all of the clients I’ve worked with so far have been equally reasonable and pleasant to work with. This, as I understand, is not a universal experience in the world of freelancing. I am very grateful to everyone who’s sent a lead my way!

Goal No. 3: More baskets for my eggs

Finally, I wrote this about my third goal:

From what I’ve heard, freelancing is really tough when you’re starting out. You’re constantly struggling to find new leads, win contracts, and build a portfolio that inspires trust. However, the cash flow of a successful freelancer is better hedged than a full-time employee’s. With multiple regular or recurring clients, you can rest a little easier knowing that even if one contract terminates, you still have the others. Plus, freelance contracts are more explicit about early termination, which can give you crucial buffer time and money to find more work.

Of my three goals, this one is probably the slowest to progress. I was right to assume that it would take quite a while before payouts from my business could sustain my personal expenses. There were months this year where my revenue was precisely $0. But today, as I enter quarter four, I have two clients on my Fractional plan, and I’m starting to get at least one new lead per month. Better yet, I’ve grown my network locally in San Diego and virtually through digital communities, such that I’m pretty confident that I will be able to find some sort of work to do if and when my current contracts end.

I think one caveat would be that last line in my quote. My limited experience thus far has shown that most clients would prefer to avoid binding long-term contracts without a flexible termination clause. Perhaps that will change as I gain more experience, or if I pursue clients in new sectors.

Goals for 2025 and beyond

What am I looking to accomplish over the next twelve months? It’s pretty simple:

  • Reach true financial sustainability, a.k.a. pay myself enough from my business to cover rent and expenses without dipping into savings.
  • Gather feedback from my current clients to identify areas of improvement.
  • Continue to grow my professional network.

Looking farther into the future, I want to take some of the hypotheses I’ve been developing about how to improve the software industry and put them to practice. Some ideas bouncing around my head include launching some sort of contract-to-hire service, taking on an apprentice, or launching a financially sustainable open-source SaaS application. I’ll also be closely following the evolution of AI so that I do not fall behind the tech landscape of the future.

Of course, even the best plans are destined to evolve drastically over time. I certainly can’t predict the future, but for now, I’m excited to keep this train chugging!


Have questions or comments about this blog post? You can share your thoughts with me via email at blog@matthewcardarelli.com , or you can join the conversation on LinkedIn .