{"pageProps":{"preview":false,"post":{"id":"upnBXVSDPGMZ0OmnVisS4","title":"Lessons Learned in Freelancing","slug":"lessons-learned-in-freelancing","date":"2020-09-07T00:00-07:00","updatedAt":"2020-10-06T16:12:13.195Z","content":{"nodeType":"document","data":{},"content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"From 2004 to 2018, I was a freelance web developer and worked on dozens of projects in spaces including tech, retail, advertising, community engagement, software development, and more. These spaces have taught me a lot about how the internet has become the center of our lives and the people who run them. ","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-2","content":[{"nodeType":"text","value":"What is freelance web development?","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Freelance web development is when a software engineer performs a web development service on-demand, without committing to a full-term engagement. Developers working in freelance are self-employed and have the flexibility to organize their contracts and schedule at their own discretion. These contracts are an agreement between the freelancer and the client, to perform the job at agreed-upon terms. It can be an empowering experience that allows you to have an impact on a variety of projects.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"If you're thinking of becoming a freelance web developer or learning more about freelance, then this article is for you. In this post, I'll share with you the lessons that I've learned and how to have a great time as a freelancer. Moreover, I'll tell you how to work more effectively with clients, deal with complications, and what red flags to keep in mind. Here are the lessons that I've learned in my freelancing career.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-2","content":[{"nodeType":"text","value":"#1 - Always Sign a Contract","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"A contract provides guarantees for both the freelancer and the client. Those guarantees include the scope of the work performed, the terms of payment, deadlines for delivery, and any additional maintenance or followup. As a freelancer, you want to over-clarify every aspect of the work performed and the work not performed, in order to have a healthy relationship with your client. Any ambiguity can cause tension, as these aspects are more difficult to negotiate later on. When I was a freelancer, I used Bonsai (","marks":[],"data":{}},{"nodeType":"hyperlink","content":[{"nodeType":"text","value":"hellobonsai.com","marks":[],"data":{}}],"data":{"uri":"https://www.hellobonsai.com/contract-templates"}},{"nodeType":"text","value":") to create contracts and send them to clients for signing. Another option is ","marks":[],"data":{}},{"nodeType":"hyperlink","content":[{"nodeType":"text","value":"Stuff & Nonsense's Contract Killer","marks":[],"data":{}}],"data":{"uri":"https://stuffandnonsense.co.uk/projects/contract-killer"}},{"nodeType":"text","value":", an open-source contract.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Remember to include in your contracts:","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"ordered-list","content":[{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Work you will perform.","marks":[],"data":{}}],"data":{}}],"data":{}},{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Clarify explicit tasks that are out of scope.","marks":[],"data":{}}],"data":{}}],"data":{}},{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Terms of payment including deposits, termination fees, delivery of payment, and late payment fees.","marks":[],"data":{}}],"data":{}}],"data":{}},{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Responsibilities and liabilities for both parties, including if either party changes their mind.","marks":[],"data":{}}],"data":{}}],"data":{}},{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Ownership, intellectual property, copyright, or other legal concerns. Upon full payment of services.","marks":[],"data":{}}],"data":{}}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"A contract is going to make the biggest difference in your relationship with clients, and how effective you are as a freelancer. These stipulations protect both you and the client and guarantee you'll have a good time. If you're unsure about your contract, reach out to lawyers and go for consultations. A lawyer who specializes in intellectual property and information technology can provide better guidance, and many offer free consultations. ","marks":[],"data":{}}],"data":{}},{"nodeType":"hr","content":[],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-2","content":[{"nodeType":"text","value":"#2 - Be Clear about Work (Not) Performed","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"When negotiating a contract with a client, the work performed should be clearly outlined. As part of this process, you will also want to rule out any ambiguity and clarify the work that will ","marks":[],"data":{}},{"nodeType":"text","value":"not","marks":[{"type":"italic"}],"data":{}},{"nodeType":"text","value":" be performed. This is for your protection in the event that later down the line, the client makes a request that is outside of the scope of the contract.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"A previous client of mine brought me on to clean up the front-end design for a project. It was a reasonable project that I could deliver in the short-term, about a month and a half. Two weeks later, I started receiving requests to develop new features. This would have delayed the time to complete the contract and made it impossible for me to begin a contract I had already queued up thereafter. Using the contract as a reference, I denied the request as it was outside of the scope that I was able to perform to deliver in time.","marks":[],"data":{}}],"data":{}},{"nodeType":"hr","content":[],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-2","content":[{"nodeType":"text","value":"#3 - Charge More","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Freelancers are self-employed which has additional costs than a full-time employee. They pay self-employment taxes which is about 15.3%. Moreover, freelancers must pay for their own health insurance. The market rate for a freelance job should be at least one and a half times (1.5x) what a full-time employee would make. This will cover your additional expenses. ","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Your rate will largely depend on what you're able to negotiate. Freelance jobs depend on supply and demand, and what value you're able to bring to a job. A client is paying you for more than your time: they're paying for your experience too. So while it may take 8 hours to create a webpage, your rate also takes into account the years of experience you have in honing your craft.","marks":[],"data":{}}],"data":{}},{"nodeType":"hr","content":[],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-2","content":[{"nodeType":"text","value":"#4 - Deposit is Non-Negotiable","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Deposits are protections for both freelancers and clients. They also help cover expenses to smooth out time in between paydays. A contract deposit is an insurance that the client is able to pay you for performing the work. For these reasons, I've learned that a deposit is non-negotiable.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Clients should want to pay you a deposit because it also demonstrates your commitment to getting the job done. A client that does not want to pay the deposit, will give you trouble later. If they try to negotiate, they will give you trouble later. ","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"In conclusion:","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"ordered-list","content":[{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"The deposit is non-negotiable.","marks":[],"data":{}}],"data":{}}],"data":{}},{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"The deposit is non-negotiable.","marks":[],"data":{}}],"data":{}}],"data":{}},{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"The deposit is non-negotiable.","marks":[],"data":{}}],"data":{}}],"data":{}}],"data":{}},{"nodeType":"hr","content":[],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-2","content":[{"nodeType":"text","value":"#5 - Always Have a Next Next Plan","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Freelancing carries an additional responsibility to manage the pipeline for contracts. You will want to have another contract lined up before your current contract ends. When it's time to start the next contract, you will want to have already made plans for thereafter.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Sometimes a contract doesn't work out. There may come a time when a freelancer finds themselves wanting to void or otherwise not renew a contract. In this situation, it's helpful to have a backup plan to bridge the gap. Short term contracts that are easy to pick up and complete are a great way to fulfill periods of time in between contracts.","marks":[],"data":{}}],"data":{}},{"nodeType":"hr","content":[],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-2","content":[{"nodeType":"text","value":"#6 - Know When to Walk Away","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Money does not replace happiness. When a job doesn't feel right, trust your gut and instincts. If the terms of a contract are not happening as expected, there are a few options:","marks":[],"data":{}}],"data":{}},{"nodeType":"unordered-list","content":[{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Talk to the client to try and resolve the situation.","marks":[],"data":{}}],"data":{}}],"data":{}},{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Absolving the contract amicably.","marks":[],"data":{}}],"data":{}}],"data":{}},{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Seek legal consultation.","marks":[],"data":{}}],"data":{}}],"data":{}},{"nodeType":"list-item","content":[{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Walk away.","marks":[],"data":{}}],"data":{}}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"It's important to understand that above all, communication is important. Talking to the client to resolve the situation requires deep introspection into what is working and what is not working. If there is a shared sense of wanting to absolve the contract amicably, that requires communication. Ideally, there's no need to involve legal representation. The legal route requires balancing the potential loss in the contract stipends versus the loss from time spent in the legal process. When all other options are exhausted, sometimes the best option is to walk away.","marks":[],"data":{}}],"data":{}},{"nodeType":"hr","content":[],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-2","content":[{"nodeType":"text","value":"#7 - Know When to Run","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Knowing when to walk away from a contract is important, but knowing when to run from a bad client is even more important. There are some behaviors I've observed in my freelancing career that are definite red flags. ","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-3","content":[{"nodeType":"text","value":"🚩 They hesitate to sign a contract.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Assume that any client that does not want to sign a contract does not want to pay you. A contract protects both parties, and without one they want to abuse their position as the party that holds the money.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Run from the client that doesn't want to sign a contract.","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-3","content":[{"nodeType":"text","value":"🚩 They try to barter your rate or deposit.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"If they ask right off the bat \"how much will this cost?\" Or \"does it really cost that much?\" If they are asking questions like this, it's a fair assumption that they are looking for the cheapest supply they can demand. Assume that any client that tries to barter your rate or deposit does not want to pay you. ","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Run from the barter that pretends to be a client.","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-3","content":[{"nodeType":"text","value":"🚩 The client is the designer, developer, or a collaborator","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"As a freelancer, you want to work for someone who hires you for the service and value you provide. A good client understands where their abilities end and where your abilities start. When the client is also the designer or a developer, the working relationship is difficult to facilitate because the relationship is unequal and imbalanced. This can be managed, so long as the work performed is not stipulated on work that has yet to be performed. A good contract stands on its own.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Run from the client that really wants an employee.","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-3","content":[{"nodeType":"text","value":"🚩 Work requests before the contract is signed","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Your time is money. A good client recognizes this and hires a freelancer with a clear set of scope, requirements, and timelines. If none of these dependencies are clarified within the first few exchanges, then the client is trying to extract as much free labor from you as possible. Any spec work, prototyping, or brainstorming is labor that should be compensated.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Run from clients that try to diminish your value before they hire you. ","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-3","content":[{"nodeType":"text","value":"🚩 The client is unsure of what they want","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"It is not your job to provide a client with direction. A good contract stipulates that you perform a finite list of tasks based on what the client wants. ","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Run from the client that wants a freelancer to also be a CEO. ","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-3","content":[{"nodeType":"text","value":"🚩 They want the work ASAP","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Timelines and deliverables should be settled before the contract is signed, and is mostly at the discretion of the freelancer. The client can share their expectations when they need the served to be completed, however, ASAP is not a timeline. ASAP means they will micro-manage you and treat you like a commodity. This client will not respect your boundaries.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Run from the client that won't respect your boundaries.","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-3","content":[{"nodeType":"text","value":"🚩 Communication is vague","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"You get an email about an exciting, innovative project, and they want your help to get it off the ground. They want you to sign an NDA before they communicate the scope, requirements, or budget. This client is asking you to perform a service before the contract is signed.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"If you receive a request like this, kindly reply with this response:","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Thank you for your interest. I'm happy to schedule a consultation with you to engage in a more thorough conversation. I require a $1000 signing fee, $500/hr rate, and 3 hour minimum for any sensitive consultations.","marks":[{"type":"code"}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"If they're serious about the idea and understand your value, they will pay you for this consultation. Otherwise, any client that is afraid you will steal their idea is likely going to be a waste of time. They will shop the idea around cautiously until some other eager entrepreneur beats them to market. ","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Run from the client who hesitates before hiring you.","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"heading-3","content":[{"nodeType":"text","value":"🚩 Makes promises in exchange for sacrifices","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"The promise of future work is not a currency. This is a sneaky way of bartering compensation by promising stability. Assume that anything not stipulated in the contract is not going to happen. And if it's stipulated in the contract, it's not future work. Any stability this client promises is guaranteed to be a most vertigo-inducing roller coaster. ","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Run for your life away from the client that wants to indebt you before they pay you.","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"heading-3","content":[{"nodeType":"text","value":"🚩 Unrealistic expectations that you will always be available","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Unless your contract stipulates your availability or modes of communication, then your availability is at-will. A client that expects you to be always available will treat you like a dog on a leash. They will expect you to work on your vacations, or throw a fit if you're going to be unavailable. This client gives you last-minute demands and expects you to reprioritize on a whim. On the other hand, being a good freelancer means being responsive. It's important to establish boundaries upfront and communicate what times you are available. I find it's also helpful to set up a regularly occurring meeting to give the client a guaranteed time. ","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"Run from clients that don't treat you like a person. ","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"hr","content":[],"data":{}},{"nodeType":"heading-2","content":[{"nodeType":"text","value":"#8 - Trust your gut","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"If something doesn't feel right, walk away. Even if you don't observe any red flags, the lizard part of your brain can sense when things feel off. When your lizard brain tells you that something isn't right, then there is already a seed of doubt or mistrust. When there is a lack of trust between client and freelancer, the relationship is unsalvageable.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"It's unsalvageable because trust in a freelance relationship is fundamental. A client that is willing to break your trust, is willing to do it again. This client won't pay you, they will waste your time, or they'll steal your work. Walk away from contracts and fire clients that are unsalvageable. ","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"A great client, on the other hand, is a great ally. There won't be any red flags, and any concerns can be easily communicated. When you work with a great client, the contract goes smoothly and you feel valued for the work that you bring. The client also recognizes that value and the best feeling is when they want to hire you again. Most of the clients I've acquired through the years have been through word-of-mouth and referrals.","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"","marks":[{"type":"bold"}],"data":{}}],"data":{}},{"nodeType":"hr","content":[],"data":{}},{"nodeType":"heading-2","content":[{"nodeType":"text","value":"Bon Voyage","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"These are the lessons that I've learned from my freelancing career. I hope this advice was helpful. Freelancing is a great way to earn money and build a business on your own terms. The most important takeaway is to have an effective contract. Be clear about the work performed (and the work not performed). Charge more for your work than you would if you were a full-time employee. Deposits are non-refundable or negotiable. Freelancing requires being proactive, and so you should have a plan for what to do next. And lastly, it's important to know when to walk away and how to avoid a bad contract or client. In all of these endeavors, trust your gut when your lizard brain is telling you that something feels right, and when it doesn't. ","marks":[],"data":{}}],"data":{}},{"nodeType":"paragraph","content":[{"nodeType":"text","value":"I'd love to hear from you. Let me know what lessons you've learned by sharing with me on Twitter (","marks":[],"data":{}},{"nodeType":"hyperlink","content":[{"nodeType":"text","value":"@coleturner","marks":[],"data":{}}],"data":{"uri":"https://twitter.com/coleturner"}},{"nodeType":"text","value":").","marks":[],"data":{}}],"data":{}}]},"excerpt":"If you want to become a freelance web developer, these are the lessons that will help you have a great time working with clients and being effective.","coverImage":{"url":"//images.ctfassets.net/f1aa79r6xovt/3ASr4CSFcbsboTxMy6lDu1/d180b751c78000da0d0bc3870ec48fad/cool-background.png","details":{"size":484295,"image":{"width":2384,"height":1160}},"fileName":"cool-background.png","contentType":"image/png"},"ogImage":{"url":"//images.ctfassets.net/f1aa79r6xovt/1PkbjNQDlTtMutvCQJbFcv/ee1cbd7349c47288498cbd8dde735893/Lessons-LearnedinFreelancing.jpg","details":{"size":108129,"image":{"width":1200,"height":630}},"fileName":"Lessons-LearnedinFreelancing.jpg","contentType":"image/jpeg"},"author":{"name":"Cole Turner","picture":{"url":"//images.ctfassets.net/f1aa79r6xovt/5okGN3rpVrgrtUAwPU0Xcv/231c515b64ab2b3cbf393a107a79dccc/969011CF-1170-40B5-80BF-161CE9BA2310_1_102_o.png","details":{"size":854955,"image":{"width":758,"height":758}},"fileName":"969011CF-1170-40B5-80BF-161CE9BA2310_1_102_o.png","contentType":"image/png"}},"readingTime":12,"attributes":null,"color":"#337ae9"},"portraitURL":"//images.ctfassets.net/f1aa79r6xovt/5okGN3rpVrgrtUAwPU0Xcv/231c515b64ab2b3cbf393a107a79dccc/969011CF-1170-40B5-80BF-161CE9BA2310_1_102_o.png?fm=jpg&w=288","morePosts":[{"id":"6uXjXhCT3PBv0PtMqzkMTZ","title":"Why I Don't Like Take-Home Challenges","slug":"why-i-dont-like-take-home-challenges","date":"2021-03-11T00:00-08:00","updatedAt":"2022-04-06T07:19:11.272Z","content":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"If you want to work in tech, there's a chance you will encounter a take-home challenge at some point in your career. A take-home challenge is a project that you will build in your free time. You will be given a list of requirements and a suggested timeframe (2-4 hours) to complete the project and submit your work.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Take-home challenges are meant to assess your familiarity with something: a language, a framework, or a coding domain. A certain level of autonomy is required to complete it successfully. For example, you may be asked to implement a web app with ","nodeType":"text"},{"data":{"uri":"https://en.wikipedia.org/wiki/Representational_state_transfer"},"content":[{"data":{},"marks":[],"value":"RESTful","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" routing. You may be asked to use a specific framework, library, or API. These requirements will often relate to the company's mission and the job position.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"But I have a few reservations about take-home challenges. I personally try to avoid them, as I think there is a lot of unstated overhead. I'll first start with some of the cons of take-home challenges, which reflects why I don't like them. Later I will share some of the pros I have discovered in my conversations with others.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Cons of Take-Home Challenges","nodeType":"text"}],"nodeType":"heading-4"},{"data":{},"content":[{"data":{},"marks":[],"value":"Take-home challenges take more time out of your schedule for a single interview. Challenges will usually have a time limit, however, most candidates spend more than the allotted time. The time limit is rarely enforced, which means that most candidates are spending more time than allotted.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"I recently ran a poll to see how many people were taking more than the allotted time:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{"target":{"metadata":{"tags":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"f1aa79r6xovt"}},"id":"58ifjKXiWzbfcN1dmy7iJI","type":"Entry","createdAt":"2021-03-10T09:16:03.755Z","updatedAt":"2021-03-10T09:16:03.755Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"tweetEmbed"}},"locale":"en-US"},"fields":{"tweetId":"1367759640470024194","conversation":true}}},"content":[],"nodeType":"embedded-entry-block"},{"data":{},"content":[{"data":{},"marks":[],"value":"The results were not surprising, as I've often heard that people spend upwards of 2-3x the amount of allotted time, anywhere between 8 - 16 hours. Meanwhile, others are following the time limit and their work is held to the same standards as those who don't. All of this time spent on take-home challenges is out of your own pocket–which comes at the cost of your job, your other interviews, or your free time. Then there is the time that it takes to wait for a response, and the time it takes to review the take-home challenge with your interviewer. Moreover, if you are interviewing with multiple companies with take-home challenges, that time adds up or could prevent you from accepting other interviews. All of this time adds up!","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"In the course of this conversation, I did learn about some advantages to a take-home challenge. I'll cover these advantages in the next section.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Pros of Take-Home Challenges","nodeType":"text"}],"nodeType":"heading-4"},{"data":{},"content":[{"data":{},"marks":[],"value":"For some people, a take-home challenge is the best option. Live coding challenges can be overwhelming and some people don't perform well in those exercises. It can also be challenging to take time away from work to schedule a live coding challenge during working hours. And lastly, take-home challenges can be a great alternative for engineers who don't care for data structures and algorithm challenges. To speak to the time it takes to complete a take-home, there are some folks who benefit from not having a time limit. Those who have families or other commitments can plan to work on the challenge over the course of a few days, spending as much time as someone doing it uninterrupted. ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"If you expect to receive a take-home challenge, it is helpful to be familiar with the framework or language you will be using. To be successful here is to have both a large breadth and medium depth in the code and APIs for the language or framework you're using. If you're looking for more information you can check out ","nodeType":"text"},{"data":{"uri":"https://www.freecodecamp.org/news/the-essential-guide-to-take-home-coding-challenges-a0e746220dd7/"},"content":[{"data":{},"marks":[],"value":"The Essential Guide to Take-Home Coding Challenges on freeCodeCamp","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":".","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"To Take Home or Not To Take Home","nodeType":"text"}],"nodeType":"heading-4"},{"data":{},"content":[{"data":{},"marks":[],"value":"That is the question: are take-home challenges the right choice? I think the best companies are going to be flexible and accommodate a candidate's preference for which style of interviewing they prefer. Between live coding challenges and take-home exercises, neither truly replicates the real conditions of the expected working environment. So why not give the candidate the choice to feel more confident? Personally, I will stick with live coding exercises since those are easier to schedule around my schedule, and take less time overall.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"What are your thoughts about take-home challenges?","nodeType":"text"},{"data":{"uri":"https://twitter.com/intent/tweet?in_reply_to=1368990206360100864"},"content":[{"data":{},"marks":[],"value":" Let me know by responding to this Twitter thread.","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Cover art (","nodeType":"text"},{"data":{"uri":"https://unsplash.com/photos/dm9EHhIZm-k"},"content":[{"data":{},"marks":[],"value":"original","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":") by ","nodeType":"text"},{"data":{"uri":"https://unsplash.com/@jontyson"},"content":[{"data":{},"marks":[],"value":"Jon Tyson","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":".","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"},"excerpt":"If you want to work in tech, there's a chance you will encounter a take-home challenge at some point in your career. A take-home challenge is a project that you will build in your free time. In this post, I explain why I don't like take-home challenges.","coverImage":{"url":"//images.ctfassets.net/f1aa79r6xovt/4aqehuJI28uo2JQpu1PoM5/76521754cb30a97efb8cff15f87e921b/image.jpg","details":{"size":299186,"image":{"width":1934,"height":1451}},"fileName":"image.jpg","contentType":"image/jpeg"},"ogImage":{"url":"//images.ctfassets.net/f1aa79r6xovt/1Ds7ilg8eaeNJpPtcjSTac/39f9bde4a55b6db5f095be4f6aa9e480/Why-IDontLikeTake-HomeChallenges.jpg","details":{"size":162329,"image":{"width":1200,"height":630}},"fileName":"Why-IDontLikeTake-HomeChallenges.jpg","contentType":"image/jpeg"},"author":{"name":"Cole Turner","picture":{"url":"//images.ctfassets.net/f1aa79r6xovt/5okGN3rpVrgrtUAwPU0Xcv/231c515b64ab2b3cbf393a107a79dccc/969011CF-1170-40B5-80BF-161CE9BA2310_1_102_o.png","details":{"size":854955,"image":{"width":758,"height":758}},"fileName":"969011CF-1170-40B5-80BF-161CE9BA2310_1_102_o.png","contentType":"image/png"}},"readingTime":4,"attributes":null,"color":"#DD1C1A"},{"id":"2YLmLmnjofjnNcByjGd1jv","title":"Standing Out LOUDER in the Technical Interview","slug":"standing-out-louder-in-the-technical-interview","date":"2021-03-10T00:00-08:00","updatedAt":"2021-03-10T19:43:37.628Z","content":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"So now you have an interview and you've done all your research, so you're good to go right? Wrong. Solving the coding challenge is only one part of the technical interview. Another aspect of the technical interview that candidates often overlook is the behavioral components. I have experienced it myself and heard others' experiences about having tunnel vision into the code while forgetting to demonstrate other essential skills like communication and collaboration. I will share with you my framework for finding success in any technical interview, and how you can stand out as a candidate.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The LOUDER Framework to Stand Out","nodeType":"text"}],"nodeType":"heading-3"},{"data":{},"content":[{"data":{},"marks":[],"value":"The first key aspect to standing out is to literally put yourself out there: think out loud. Interviewers care more about ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"how","nodeType":"text"},{"data":{},"marks":[],"value":" you solve a problem and less so how fast you can get to an answer. Most candidates are too busy rushing to the end, that they forget to demonstrate their communication and collaboration skills. If you want to nail the technical interview, you need to think ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"LOUDER.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"L","nodeType":"text"},{"data":{},"marks":[],"value":"isten to the other person","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"O","nodeType":"text"},{"data":{},"marks":[],"value":"rient the problem statement","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"U","nodeType":"text"},{"data":{},"marks":[],"value":"ncover the scope and requirements","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"D","nodeType":"text"},{"data":{},"marks":[],"value":"eliver a plan","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"E","nodeType":"text"},{"data":{},"marks":[],"value":"xamine the solution","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"R","nodeType":"text"},{"data":{},"marks":[],"value":"eflect","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"ordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"},{"type":"italic"}],"value":"Listening","nodeType":"text"},{"data":{},"marks":[],"value":" to the other person means trying to understand the ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"what","nodeType":"text"},{"data":{},"marks":[],"value":", the ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"how","nodeType":"text"},{"data":{},"marks":[],"value":", and the ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"why","nodeType":"text"},{"data":{},"marks":[],"value":" of the problem. Most candidates only think about the \"","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"what\"","nodeType":"text"},{"data":{},"marks":[],"value":" and will forget to collaborate with the interviewer. ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"Why am I being asked to solve this, and how am I expected to? ","nodeType":"text"},{"data":{},"marks":[],"value":"This is what you should ask yourself upon hearing the question.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"},{"type":"italic"}],"value":"Orienting","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":" ","nodeType":"text"},{"data":{},"marks":[],"value":"the problem statement means to re-frame the problem statement, summarizing the prompt. By summarizing the problem statement, it gives you an opportunity to demonstrate that you understand the prompt. And if you misinterpreted – it gives the interviewer the chance to help you course correct.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"},{"type":"italic"}],"value":"Uncovering","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":" ","nodeType":"text"},{"data":{},"marks":[],"value":"the scope and requirements is where you will define the outline of your strategy to solve the requirements. It's in this step that you will define the majority of ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"how ","nodeType":"text"},{"data":{},"marks":[],"value":"you solve the problem. There are two kinds of requirements:","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":" ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"},{"type":"italic"}],"value":"main case ","nodeType":"text"},{"data":{},"marks":[],"value":"and ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"},{"type":"italic"}],"value":"edge case","nodeType":"text"},{"data":{},"marks":[],"value":". Most of the time, the prompt will include the main case requirements. Sometimes it will also include edge-case requirements, however, you should always ask yourself: ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"what are the edge cases? ","nodeType":"text"},{"data":{},"marks":[],"value":"Try to identify any relevant edge cases, and when you've exhausted your search, you should ask the interviewer follow-up questions. A good example to ask: ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"\"have I covered all of the edge cases?\"","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"},{"type":"bold"}],"value":"Delivering ","nodeType":"text"},{"data":{},"marks":[],"value":"a plan means having an idea of how to solve the problem, and then trying to deliver that solution. In this process, it's helpful to start with a high-level approach, using whiteboarding or pseudo code. Consider evaluating multiple solutions, and talk through the tradeoffs (for example performance and scalability) of each solution. I always recommend starting there before writing code. Once you have planned a solution, start writing code. The reason why we take this approach is that it's possible to pass the interview without writing all the code. Moreover, it's possible to fail the interview because all you did is write code. A plan communicates that you are able to think strategically, evaluate multiple solutions, and deliver the best solution.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"},{"type":"bold"}],"value":"Examining ","nodeType":"text"},{"data":{},"marks":[],"value":"the solution","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":" ","nodeType":"text"},{"data":{},"marks":[],"value":"is","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":" ","nodeType":"text"},{"data":{},"marks":[],"value":"an often overlooked part of the process. A bad interview goes like this: you solve the problem and then say ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"\"okay I'm done.\"","nodeType":"text"},{"data":{},"marks":[],"value":" Instead, we want to incorporate collaboration into the process, and invite the other person to participate. What I recommend doing after you're finished solving the problem, is to examine your solution out loud. Similar to a code review, you should review the problem and present the solution back to your interviewer. Talk through the ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"main cases ","nodeType":"text"},{"data":{},"marks":[],"value":"and ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"edge cases","nodeType":"text"},{"data":{},"marks":[],"value":" that you outlined in the ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"},{"type":"italic"}],"value":"uncovering","nodeType":"text"},{"data":{},"marks":[],"value":" phase, and how your solution works for these test cases","nodeType":"text"},{"data":{},"marks":[{"type":"bold"},{"type":"italic"}],"value":". ","nodeType":"text"},{"data":{},"marks":[],"value":"In the process, you may even uncover an issue with your solution, and intervene quickly. It's also a great conversation to talk about how it could further be improved if you had more time.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"},{"type":"italic"}],"value":"Reflecting","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":" ","nodeType":"text"},{"data":{},"marks":[],"value":"is the final step to a successful interview. When you've finished examining your work, the next step I recommend is to ask your interviewer: ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"what do you think?","nodeType":"text"},{"data":{},"marks":[],"value":" At this moment, you invite your interviewer to give you feedback about your work, and a pulse on how the interview is going. Listen carefully to the feedback to understand the ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"what","nodeType":"text"},{"data":{},"marks":[],"value":" and the ","nodeType":"text"},{"data":{},"marks":[{"type":"italic"}],"value":"why","nodeType":"text"},{"data":{},"marks":[],"value":". This is a good opportunity to demonstrate your ability to collaborate and take feedback – it's important that you be receptive. ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Together, these actions demonstrate the skills of a mature candidate, who embodies communication and collaboration. By listening to the other person, it shows you are able to gather context effectively. Orienting the problem statement shows the interviewer you can lead a technical conversation. Uncovering the scope and requirements is a valuable skill that expresses one's ability to translate non-technical constraints into technical limitations. Developing a plan to solve the problem, and then doing so, shows how you strategize and prioritize. Examining your work gives you the opportunity to add more value, and demonstrates your work ethic. And lastly, reflection shows how well you are receptive you are to feedback and how well you collaborate with others.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"I hope this framework helps you in your journey to stand out as a candidate in the technical interview. If it does help, I love hearing success stories – ","nodeType":"text"},{"data":{"uri":"https://twitter.com/compose/tweet?text=@coleturner"},"content":[{"data":{},"marks":[],"value":"reach out to me on Twitter","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":".","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"},"excerpt":"If you want to stand out in the technical interview, you need to demonstrate not only your technical skills but also your communication and collaboration skills. You need to think LOUDER.","coverImage":{"url":"//images.ctfassets.net/f1aa79r6xovt/3gT4lT9oQ1hwr4YzKeZDVP/28b73486d18e6cc9650c642d96a1a6c4/6048899b170ac.png","details":{"size":50482,"image":{"width":551,"height":388}},"fileName":"6048899b170ac.png","contentType":"image/png"},"ogImage":{"url":"//images.ctfassets.net/f1aa79r6xovt/4PIMkDFcfmGwSm2CUWQ6lN/9ea90162c184138939c2aa08fdf9c58d/Standing-OutLOUDERintheTechnicalInterview__2_.jpg","details":{"size":107407,"image":{"width":1200,"height":630}},"fileName":"Standing-OutLOUDERintheTechnicalInterview (2).jpg","contentType":"image/jpeg"},"author":{"name":"Cole Turner","picture":{"url":"//images.ctfassets.net/f1aa79r6xovt/5okGN3rpVrgrtUAwPU0Xcv/231c515b64ab2b3cbf393a107a79dccc/969011CF-1170-40B5-80BF-161CE9BA2310_1_102_o.png","details":{"size":854955,"image":{"width":758,"height":758}},"fileName":"969011CF-1170-40B5-80BF-161CE9BA2310_1_102_o.png","contentType":"image/png"}},"readingTime":5,"attributes":null,"color":"#facd05"}]},"__N_SSG":true}