Coding with Jesse

Weekly Cadence

I have a weekly cadence with my clients. This means they expect me to make progress every week. But there's no expectations for any particular day.

I'm also careful not to over-commit. I leave myself room to breathe. If I decide to go beyond that and work extra, everyone's happy. If I don't, that's okay too.

My day is a blank canvas. I get to decide how I'll fill it. What am I most curious or excited about? What do I want to work on, if anything?

Being able to set your own hours as a freelancer doesn't mean choosing 8-4 vs 10-6. It's being free to take a day off to play with your kids or finish an exciting book. It means being able to live the cozy life you need for a healthy body and mind.

Ultimately it means my work is higher quality because I'm not rushing, I'm well rested, and I love the work I do.

A weekly cadence won't work for all clients, nor for all freelancers, but it suits me and my clients perfectly.

Published on September 4th, 2025. © Jesse Skinner

Back to School & Back to Work

The past few months, for the first time, I prioritized coziness & rest, minimizing stress and ambition and mindfully enjoying travelling with my family.

I just dropped my son off at school, and now I feel it's time to start a new season of focusing on my business again.

But I feel the need to bring that coziness back into my professional life and find ways to do bigger things while still being restful and relaxed.

It'll be a big challenge, but it's very important to me to get this right.

I don't want to hustle. I'm not desperate to be more successful. What I desire is more creativity, more freedom, more fun, following my curiosity and joy and excitement through my work. I want to help more people, particularly freelancers like myself. I want to go beyond my client work and work on projects for myself.

In the past it's been hard to juggle that stuff with my need to trade hours for money. That's where the challenge comes in, to do more but to keep it fun and cozy and stress free.

I think I've come to see how lowering expectations for myself really helps to take the pressure off. I'm hoping to thread that needle of doing more in some areas, maybe doing less in others to compensate, and being very mindful and measured in making sure I'm able to handle it all gracefully.

Published on September 2nd, 2025. © Jesse Skinner

Living a Cozy Life

Six months ago, my wife was about to give birth to our second child. Shortly after our baby was born, I took on a really big client project with a firm deadline. I also signed up for a Creative Writing class, not sure if I'd be able to juggle it all.

I barely pulled it all off thanks to my wife's support. When the project was delivered and the course ended, I desperately desired something different.

I desired rest, comfort and relaxation. I desired simplicity. I desired peace and quiet. I desired being fully present with my family.

What I really desired was a different quality of life, one that I'd only experience on holiday. I wanted to wake up with a clear and quiet mind, to hear the birds chirping and the breeze in the trees instead of worried thoughts. I wanted to move slowly, with all the time in the world.

I've always set ambitious goals for myself. I feel like I've been going as fast as I could for years. For the first time, I had a different goal: to live a cozy life.

Sure, I had major constraints: we had a new baby, an older son, and I still needed to do freelance work.

I didn't have to work on any side projects, though. I could let my blog and newsletter go quiet for a while. I could say no to filling up my calendar. I could stop making To Do lists and allow myself to do a lot less.

I had to remind myself that the bare minimum is, by definition, good enough. As long as my family was taken care of, as long as I was making enough money to cover our expenses, I was doing okay.

Within days I was daydreaming about new big projects I could start. I had ideas for courses I wanted to launch, books I wanted to write. I had to learn to say "no" to myself too.

After a week or two, I started to get really bored for the first time in a long time. I decided to limit myself to low-stakes activities, things that didn't matter if I did them or not. I was happy to read books, especially books that I started long ago but never finished. I enjoyed playing video games, and I even finished the original NES Final Fantasy I'd started 30 years ago!

I started getting excited about programming again, and I found myself watching videos and reading about web development. I was enjoying work more too, because I wasn't stressed out or in a rush, and I was able to enjoy the interesting challenges.

Every day that went by, I felt myself recharging. It felt like I was unlocking new levels of rest, new mental states I hadn't had access to in a long time. The less that I did, the more I could do.

I had the cozy life I wished for, and I finally had room to breathe.

Published on July 13rd, 2025. © Jesse Skinner

From Full-Time to Freelance: How I made the leap

Laptop and a coffee

I was already dreaming of starting my own business before I ever got my first job. My very first job was at a movie theatre in the late twentieth century. In my breaks I would brainstorm ideas for starting a web design business. I would fantasize about proposing to redesign the movie theatre's website. When the boss wasn't looking, I would sketch out my web site and my pricing on scraps of paper.

Later, I got my first programming job, working on a content management system. I learned a lot about business at that job. The company would always be bringing in new clients. Even then, I would fantasize about being able to have my own clients one day. I would read books about self-employment and consulting. I'd read anti-work websites and dream of getting out of the rat race.

A few years later, I met my future wife and moved to Berlin, Germany to live with her. I had the best excuse for quitting my job back home, and saw it as a chance to start my own business. Almost exactly twenty years ago, I registered a business name, "The Future of the Web", bought thefutureoftheweb.com, and started blogging about web development.

Unfortunately, I had only three months to find a job in Berlin before my tourist visa would expire. I went to an Internet cafe every day and applied to 3+ job postings, hoping my Java experience would make up for my inability to speak German. Extremely luckily, I was hired by Strato Rechenzentrum, a major Internet hosting company. When I received my work visa, I was surprised to see that it had two conditions: I was approved to work at Strato, but I was also permitted to do freelance work ("freiberuflich arbeiten").

While at Strato, I continued to fantasize about breaking free of employment and working on my own terms. I would read every article I could about self-employment or freelancing. I would listen to audiobooks and podcasts, and just surrounded myself with content that inspired and motivated me.

One day, I got up the courage to tell my manager about my work visa condition, and to ask whether Strato would allow me to do freelance work on evenings and weekends. My manager saw no issue with it, and he verified this with HR. I was given the green light to go ahead.

I had already been blogging about web development for a little while, so I updated my blog to make it clear I was available for hire. I published "Hire an Ajax Freelancer" to boldly announce that I was available to take on some JavaScript and Ajax work.

A month later, someone found me and asked me to do a small UI thing. I charged $100/hour, worked for three hours, and billed the person $300. He paid me on PayPal a few hours later. It was the best feeling in the world!

I continued doing work for this person, and the next month someone else contacted me for a small job. I was soon making $500-1000/month in my free time, on top of my full-time salary work at Strato. It was tiring, but I was so highly motivated and inspired, I knew that I had to push through to make it to achieve my dream.

When my then-girlfriend finished school, she wanted to take six months off and live in my hometown in Canada. I quit my job at Strato and announced I was Freelancing Fulltime This was the ultimate test: could I survive off of freelancing alone? If it failed, I felt like I would be able to go and find another job, but I was hoping it wouldn't come to that.

I put the word out privately among friends, and my friend's uncle hired me for a much larger project. I continued blogging regularly to try to promote myself by sharing my expertise. I was fortunate to have people contact me for new projects every few weeks. Two months in, I published Freelancing: First two months. I was approved to speak about Unobtrusive Ajax at The Ajax Experience conference in Boston, and got to meet my idols like John Resig and Douglas Crockford. Eight months in, I published Freelancing: First eight months.

It was a wild experience, and the momentum was growing. It was in the following months that I found three clients in particular that I would continue working with for years. Two of them are still my active clients that I'm working for this very moment.

Do you also dream about leaving your job and starting on a similar path? There are a lot of things you can do right now, while you're still working in a full-time job:

  1. Be clear about your goals, and visualise the life you want to live.
  2. Surround yourself with content that inspires you and reminds you of moving towards your goals. These could be books, social media accounts, YouTube channels, podcasts, etc.
  3. Start putting out content that demonstrates your knowledge and expertise. Share everything you learn. Share resources and tips. You could start a blog, a professional social media presence, a mailing list, a podcast, or whatever you feel inspired and motivated to do.
  4. Start a business. Depending on where you live, you'll need to register a business name, have a lawyer give advice and help draft a standard client contract, learn about taxes from an accountant, and probably purchase extra business insurance.
  5. Find out if your employer allows you to freelance on evenings and weekends.
  6. If so, put out the word on social media, and put the word out amongst friends and families so they know what you're looking for.

Worst case scenario, you get to learn whether or not self-employment is really something for you, and hopefully get to earn some extra money on the side. Best case scenario, you'll be laying down the foundation of your new business and a path to freedom! I'm very excited for you and wish you all the best of luck! If you choose to go on this journey, please let me know and keep me updated!

Published on January 14th, 2025. © Jesse Skinner

Dear Recruiter: I am not interested in a full-time job

Dozens of cubicles in a depressing office. Photo by kate.sade on Unsplash.

Dear Recruiter,

Thank you for contacting me, but unfortunately I am not interested in a full-time job. There is no way in hell you'll find me in an office nine-to-five Monday-to-Friday. I've been there, done that, and it was a living nightmare.

No, you don't need to circle back in three months to see if my situation has changed. I'm not available for employment, and I never will be.

Yes, I understand that the position offers benefits. My position offers many more benefits. I can work whenever I want, wherever I want, and for whomever I want. I can have a two-hour nap in the middle of the afternoon if I want to. I can go out with my wife for three hours on a random morning. I can pick up my children from school and go to a playground.

You think it's cool that you have a daily standup meeting at 10am? I haven't had a meeting in months. I have nothing work-related in my calendar at all. I talk to my clients over email. Sometimes I ask them for a phone call, and I'm always happy to hear their voices. They leave me alone to do my best work and they never give me deadlines. They have no expectations for me on any given day. They trust that I'll make good, steady progress every week. They know that in an emergency, I'll drop everything to help them.

Your company is offering a competitive salary? I make more than that working part-time. I raise my rates every few years and simply let my clients know. Sometimes they choose to stop working with me, which is sad. But it's okay because I have other clients who happily pay more. It's not as tragic as your upcoming layoffs would have been.

Your company has management opportunities? Sounds terrible. I work one-on-one with business owners who I've worked with for decades. We trust each other and have become good friends. I understand what they want and need, and the trade-offs they're willing to make. There's no game of telephone trying to guess what upper management wants. No waiting for approval from board meetings. No politics at all.

Your company will pay for me to move to another city? You must be joking. I work from my home, and I always will. Well, sometimes I choose to work on an airplane, or in a waiting room, or in a coffee shop. One place you'll never find me is at a desk in an office building.

So no, I'll never be interested in joining your growing team. I'm in a very happy long-term relationship with my clients. There's no way I'm going to leave them high-and-dry to become a cog in your machine.

I wish you good luck on your search. And I wish all the best to whomever you manage to enslave.

Sincerely,
Jesse Skinner
Freelance Web Developer

Published on January 7th, 2025. © Jesse Skinner

Empower your clients to make changes

A woman fishing

When a client asks me to make a change to a website, I have two choices. I can go and make the change. Or, I can set things up so that the client can make the change themselves.

It's not always obvious which of these two will be a better use of my time. If it's a one-time change that will never need to happen again, of course it's better if I go make the change. But sometimes it's obviously something that will need to be changed again and again.

Sometimes the change is so small that it's a quick copy & paste, so there's almost no benefit to adding a content management system. Often, the changes can be more complex, and require a lot of back-and-forth communication, asking for clarification, testing, reviewing, etc. I have a pretty low tolerance for this before I insist on building a tool for my client instead.

Pretty much every system should have some kind of administrative login area, where the client can go in and access these admin-only tools. It might be as complex as a content management system, where they can create whole new pages, and change all the text in the system. It might be where they manage other users, or get the answers to questions they might have otherwise asked me for.

In one case, I had built a system that had a complex set of rules, basically if/then statements, and it was evolving rapidly. Every week I was being asked to make changes to the logic, and also asked to remind the client about what it was already doing. So, in a few days, I designed and developed a Domain-Specific Language (DSL) that allowed all of the logic to be captured in a single text file. It wasn't a programming language, because my client isn't a programmer. Rather, I designed it to be intuitive for him, so it would be easy for him to read, edit and publish changes to the logic in the system. Many years later, he is still actively working with this same DSL.

I have another client who is more technical, and has some experience with basic HTML and CSS. They wanted to make broad changes to the design of the site, and to the text that was hardcoded throughout. I gave them two options: either they could provide me with a long list of these changes, or I could bring them in to collaborate on the code. They had no experience with git, GitHub, Svelte, or even with using an IDE. I thought it was worth a try, so I sent them a long list of instructions for installing all the software they'd need. I sent them a few YouTube videos about using VS Code with Git, and had them create a GitHub account. I explained how the site was architected, and the basics of Svelte components.

Within a week, they were making changes to CSS and text and committing and pushing changes to GitHub! It was so exciting! Just looking at the long git diff, there were literally hundreds of changes. If they had tried to write out those changes in a Google doc, it would have required dozens of screenshots. It honestly would have been painful for me to carefully go through and implement all of the tiny changes. And chances are, I would have screwed up more than once, and they would have had to make new screenshots. They would've felt like a bother to ask me to increase the font size by 5%, or change a border to a different shade of grey. More than likely, they would have just accepted my poor attempt as "good enough" and said thanks.

Instead, they are now empowered to go in and make changes themselves whenever they want. As the site evolves, over the coming decade, they'll have the confidence to go in and make all the updates they need. They were even able to use AI to generate a snippet of Svelte code in order to add a second button to the page!

No, I'm not worried about my job going away. I'm happy to be focusing on the hard things, and empower my clients to do as much as they can on their own. They are delighted to not have to "bother me" for small changes when I'm working on bigger features for them. They're able to save money and time. It's truly a win-win.

Another client had a very complex system that was built by a third-party vendor and written in Python. They brought me in to help simplify the system. In this case, they actually did have developers on the team, but the developers didn't have much Python experience. I actually rewrote the entire system in TypeScript. It was a fantastic opportunity to clean things up and simplify. I wrote it in a way that it would be intuitive to them, so the training only took an hour or two. I was delighted to see the developers confidently making changes to the system themselves for the first time ever, and with ease.

A Chinese proverb says, "Give a man a fish, and you feed him for a day. Teach a man to fish, and you feed him for a lifetime." I say, "Make a change for a client, they'll be happy for a day. Empower your clients to make changes themselves, they'll be happy for a lifetime."

Published on December 10th, 2024. © Jesse Skinner
<< older posts