Skip to content

This Dot Blog

This Dot provides teams with technical leaders who bring deep knowledge of the web platform. We help teams set new standards, and deliver results predictably.

Newest First
Tags: General
Effective Communication Strategies Within The Software Development Organization cover image

Effective Communication Strategies Within The Software Development Organization

Have you ever been in a situation where you thought you were communicating effectively, only to realize later that the other person misunderstood what you were saying? Have you ever communicated with someone only to hear that they felt you provided way too much detail, or that you didn’t provide nearly enough detail? Communication in the workplace is how ideas, updates, directions, etc are transferred to others. Each party in a software development organization has differing needs and expectations when it comes to workplace communication. By learning to tailor your communication to meet the needs of each stakeholder, you can become a more effective communicator and achieve greater success within your organization. The requirements of various parties that you interact with in the workplace can vary wildly depending on several factors. Your awareness of these individualized communication preferences and how you can give each party what they want and need will impact your effectiveness in your daily activities, your perception by others, and even your upward mobility within the organization. That's the power of communication, and why it's so important to master effective communication strategies in the workplace! In this article, we'll explore the different types of stakeholders in a software development organization, the communication strategies that work best for each group, and how effective communication can help you advance your career in the industry. We'll start by discussing the difference between “communication” and “effective communication”, before diving into the different types of stakeholders in a software development organization. Then, we'll explore the communication strategies that work best for each group, and provide actionable tips for improving your communication skills. Communication vs. Effective Communication When it comes to communication, it's important to remember that the intended message is only effective if it's received and understood by the recipient, regardless of their background or level of familiarity with the topic. Effective communication is about sharing thoughts, ideas, opinions, knowledge, and data in a way that ensures that the message is received and understood by the recipient. With effective communication, the sender and receiver leave the exchange feeling satisfied. There is a shared understanding of what was intended to be transmitted by the sender. Stakeholder Types In any organization, you have many different types of parties involved in a software project. Let's group the parties involved in software development into three categories for the sake of clarity: - Development Team - This consists of individual contributors, project managers, scrum masters, QA testers, UX designers, UI designers, architects, etc. - Product Team - The product team is made up of a diverse group of individuals, including product owners, business analysts, architects, and more. - Executive Team - CTO, CEO, etc. Each of these parties requires a different type of communication, a different level, and has different needs from your interactions to allow you to provide value from what you are saying and to for them view you as an effective communicator. Let’s talk a bit about what each of these parties needs, and how you can interact with them in the most meaningful way possible. Development Team This is the most detailed version of the interaction. This group needs to be communicated with on the level of individual tickets and the details of those tickets. When interacting with the development team, it's important to focus on the nitty-gritty details of each task, ensuring that everything is sorted through meticulously. With this group, we will sort through specific implementation details. An example of interaction with someone from this group might look like this, “I am currently working on ticket 473, and trying to get the checkbox to behave correctly during testing. I have no blockers currently.” Product Team This group will be communicated with at the level of features and larger increments of work such as project milestones. This group is interested in chunks of a project, milestones, progress on the overall initiative, etc. An example of interaction with someone from this group might look like this, “The team is wrapping up development of the new Project X User Interface and will be moving to the implementation of the functionality next”. Executive Team This group is interested in the conversation at the highest levels of abstraction. Generally, they will be more concerned with things at the overall project level. When updating the executive team, it's important to provide high-level updates that summarize progress and focus on next steps. For example, you might say, 'We're making great progress on Showcase X and are on track to complete it soon. Next, we'll be shifting our attention to project Y.' Types of Communication What are some of the types of communication? It’s a great question. When you begin to study various communication styles, you will read about different personality types, and how those personalities interact with the world around them. You might hear things like aggressive, passive-aggressive, passive, and assertive communication styles. While understanding these can help you communicate effectively, we will focus on how different roles in a company require different levels of detail and specificity in their interactions. Your Natural Communication Style We all have a natural way that we prefer to communicate. Some are very direct and assertive. We might tend to be very to the point, with no filler, no fluff. Others might naturally tend to be more verbose, to fill in lots of details and context and information. Some naturally meet somewhere in the middle on the spectrum of detail vs direct higher-level type of communication. There is no right or wrong answer, but you must be aware of your natural tendencies in conversation, and know how to use those effectively, or tailor your communication style to a specific situation or audience. Benefits of Tailored Communication What are the benefits of tailored communication? The primary benefits of tailoring your communication to different stakeholders are that you can provide each person with what they want and need in a way that resonates with them. For instance, I once had to adapt my communication style when working with a highly detail-oriented developer who preferred a more granular level of communication. This eases the amount of effort required by the other party to understand you, and allows them to be more effective in taking your message forward. It increases the perception of your effectiveness, and credibility in their eyes as well. If people know that you are someone who can communicate with multiple parties with varying interests and needs, and do so effectively, you will be trusted with more responsibility, and be given more opportunities. Using Effective Communication To Advance Your Career As you can see, developing effective communication skills is a powerful way to advance your career in the software development industry. How have you seen effective communication impact your work? People who are seen as effective communicators have staying power in an organization. They are viewed as competent and necessary. They are given positions of authority and trusted to get things done. I remember that, when I was just starting out in software development, I struggled to communicate effectively with stakeholders at different levels of the organization. But over time, I learned the value of tailoring my communication to each person's unique needs, and it has paid off in my career in countless ways. Basic Strategies For Improving Your Communication Know your audience When preparing for a presentation or conversation, it's essential to consider your audience and tailor your communication style to their needs. What are some strategies you use to ensure your message is received and understood? Write notes in advance, when possible Draw an outline or even the bulk of what you need to deliver before the time comes. Even if you don’t ultimately use these notes directly, preparing them will help you to distill your thoughts and clarify your message, as well as review that they have the appropriate amount of detail for the intended audience. Practice your delivery Though you will not always be giving a speech, talking through what you plan to say will help you to see gaps, smooth the flow, and make sure that you are comfortable with the material you will be presenting or communicating. Conclusion In this article, we learned about the importance of effective communication, strategies for improving your communication, and the direct and indirect positive impacts these improvements can have on your effectiveness and value in the organization. We explored various strategies and approaches to improve communication. Development in this area can yield amazing results for you as you make the investment to improve your skills. We hope you enjoyed this article, and found it helpful. If you have any questions please feel free to join the discussions going on at or on our Discord....

7 Tips to be a Successful Developer in a Remote Company cover image

7 Tips to be a Successful Developer in a Remote Company

As a software developer there are many advantages to working from home and still effectively working as a team to produce high quality results. But how can you be successful in a remote company?...

International Women's Day Recap cover image

International Women's Day Recap

International Women's Day Event For this year's International Women's Day, we hosted a live event with Women Techmakers, featuring talks and a panel discussion on this year's topic: progress over perfection. It was a great conversation on what it's like to be a woman in tech, and how you can help yourself and others thrive in our industry. In case you missed it We have the full event on YouTube if you'd like to watch it yourself (which I highly recommend)! Here's a recap of everything that happened. Getting started in DevRel - Pachi Parra Pachi Parra was up first, sharing her journey into DevRel, and tips on how you can get started too! Some highlights include: - Roles that are available - What a day in the life might look like - Her journey into DevRel - What a DevRel professional actually does - things like public speaking, live coding, writing blogs, and giving talks at conferences. Her best tip for getting started? Find the type of content you like doing, and focus on doing that well! In DevRel, it's easy to spread yourself too thin between all the different types of content available, so focus on the one you like most, find a supportive community, and get yourself out there. :) Breathing Fire: Success and Growth as a Technical Woman - Stacy Devino Stacy Devino was up next, providing all kinds of insight into the cycle women go through in their career, as well as tips for each stage of the journey. She opened with an amazing quote: > Assume all women are technical and capable of breathing fire. - Jessie Frazelle Other highlights: - Igniting your world through learning, timing, your network, and leadership. - Staying warm by managing your focus and chores, recording your achievements, maintaining relationships, and researching ideas. - The key to avoiding burnout - keeping a long-term perspective, doing things for yourself, and allocating time for the things you enjoy and the people who support you. Riding the imposter wave to senior - Jessica Janiuk Jessica Janiuk wrapped up our talks today, providing insight into her journey through tech and the ways we can think about imposter syndrome and allowing ourselves to grow. Some highlights from her talk: - A few things to consider: what being "senior" means to companies and to yourself, if you're in the right place, and what you want in your career. - A great diagram of the imposter wave - the balance between our confidence and feeling like an imposter from this post by Ricardo Luevanos. - Considering how often we're comfortable, and that there's an inverse correlation between feeling comfortable and feeling like an imposter (they're opposite each other). - We have two choices: we can let it control us, or use that discomfort as a tool. - Looking back on our growth and realizing that our current lows are higher than our past highs. - Some senior advice: Be authentic, be proud of your work, have good mentors, remember that your work is not your life, and stay uncomfortable. She wrapped up with a brilliant reminder for us all: > You are capable. You are valid. You are important. Please take care of yourself. People care about you. If you're struggling, you're not alone. Panel Discussion We rounded out the day with a panel discussion featuring these accomplished women: - Erica Stanley - Amal Hussein - Deborah Kurata - Katerina Skroumpelou - Jessica Janiuk - Stacy Devino - Jae Bach Hardie - Linda Thompson The conversation flowed naturally, each panelist feeding off of each other's ideas, and we covered some very powerful and helpful tips and reminders for women in today's developer world. Here's a few of my favorite topics or ideas we talked about: What did you learn in the past year? - Have hobbies that don't involve tech. - Learning to let go of your previous tools. - How valuable close personal friends are - people you can trust and rely on. - Listen to yourself, and take time to introspect and evaluate. - Don't over commit! Finding a community and actively contributing to it - Women Techmakers! (Our joint sponsor) - Make use of social media. - "Reach one teach one" - always be willing to share your knowledge, and be the person you needed when you were getting started. - Engage people who align with your goals and values - reach outside your level of age, career scope, experience. - The interconnection between you and your people is not exclusive, it's inclusive! The more expansive your sphere is, the better you are at your job. - Also - we can find community in open source! The way people comment, commit, and support each other within a project counts too. Foundational knowledge vs tooling - Understand what problems you're actually solving and what to reach for, more than worrying about the specific tech stack itself. - This helps you build your own knowledge map, and pick up skills as you grow. - For more senior folks - realize when you've mastered something, and focus on clearing the road for those who come next. - Learning to delegate - if you always do something yourself, you're taking that opportunity away from someone else. - Knowing when to ask for help, and that asking is NOT a weakness or failure! It's a strength to know when you need to ask for help. Find your learning method - Ask multiple people if you need to until you find the answer that clicks for you! Ask why. - Not understanding the answer someone gives you is also not a failure - it's different viewpoints. - Also learn how the people around you learn - so you can help them in the way that best suits them. Communication and collaboration - Have compassion for everyone on your team. - When you collaborate, you get more done. - Being able to communicate and collaborate is a HUGE strength. Don't let anyone make you feel bad for being strong in those! - Being the person who's able to "glue" the team together is foundational to a strong team. Fighting stereotypes - Things that are commended in men and reprimanded in women, and fighting against those biases - Being authentic is the best way to lead your team - don't play into a stereotype you don't fit. - You don't have to sound "nice" or "pleasing" - you're still a strong woman and you're going to be judged a certain way, so don't compromise! - Unpacking all the social conditioning and learning to be comfortable with yourself all the time, in all the situations we find ourselves in. Wrapping Up The entire event was filled with wisdom, laughter, and camaraderie. We're so thankful to the ladies who came to speak with us, and hope to see you at the next one!...

3 Web Performance Concepts that Will Help Start a Conversation Around Performance cover image

3 Web Performance Concepts that Will Help Start a Conversation Around Performance

In 2021, This Dot Labs released PerfBuddy, the free online platform for testing web and mobile based sites. With the release of this tool, it was our sincere hope to simplify the conversation around web performance, helping team leaders develop easy to understand metrics that they can use to advocate for further investment into their various web technologies. But we also realize that many new to web development, or who work in software but not as developers, might need more clarification on some of the basic key terms to help them engage more actively in conversations surrounding web development. Below, I’ve defined three of the top terms in web performance to help readers better ascertain your site’s performance, and play an active role in refining their technologies to provide the best experience for their customers. First Contentful Paint Time (FCP) FCP, or First Contentful Paint Time, is a critical metric that measures the time that users must wait in order for a page to load its first visible element. For some sites, this could be the entire page. However, for others, the FCP time might measure the seconds between a user navigating to a site, and any responsive element, such as a loading bar, appearing in front of them. This is not a measurement of backend nor even frontend script loading speed, but a metric that affords development teams the ability to infer the quality of their site’s initial UX. According to metrics published by Akamai in 2018, sites are liable to lose nearly half of their visitors if their page takes more than three seconds to load. In fact, just a single second of load time delay can result in a 7% decrease in sales conversions for eCommerce platforms. This is especially true when considering mobile users, whose likelihood of leaving a page increases 90% when made to wait 5 seconds for a page to load And as more eCommerce shoppers turn to using their mobile devices- with 53% of users accessing shopping sites via mobile platforms on 2019’s Cyber Monday, representing a 40% YOY increase- teams need to be acutely aware of their cross platform performance with respect to FCP. Time to First Byte (TTFB) Not to be confused with FCP, TTFB, or Time to First Byte, refers to the amount of time that the browser waits in order to receive initial data from its server. In order for a site to display any information, a browser must make dozens, if not more, data requests. Issues related either to the quality of the host, site functionality, or complexity can all contribute to a site’s latency, or the amount of time it takes for data to be passed between the server and the browser. Of course, reducing site latency will improve user experience by decreasing FCP, and generally increasing browsing speed. However, ensuring low TTFB will also boost your SEO by making your site more quickly crawlable by leading search engines. Page Weight As developers add features and functionality to support more advanced user experience, web pages get heavier. As of 2020, the average desktop webpage weighs 2080 KB, up from an average of 1532 KB in 2017, with the weight of mobile web pages slightly lower, but still seeing a near 40% increase in size when compared to stats from just four years ago. eCommerce websites need to maintain acute awareness of their page weight, and ensure that their latency is not overly impacted by it, due to the tendency for shopping sites to be especially complex, supporting large catalogs of products along with other features to promote customer engagement. And as this era of advanced digital transformation continues to expand, eCommerce sites must develop strategies to meet market expectations for performance without over burdening their sites with heavy plugins and functionalities. Finding Your Path to Performance It starts with equipping yourself with the right tools to test your site’s speed and weight. There are countless platforms used for testing sites, however, there are only a handful that are capable of unlocking the insight that you need to support your most critical websites. Though PerfBuddy is a great place to start in order to identify potential roadblocks, it cannot do the work of actually improving site performance. By leveraging testing platforms such as Lighthouse, and continuously improving your performance metrics with assets such as DevTools, and strategies like Google’s PRPL, eCommerce retailers can ensure that their sites meet user expectations and promote their most critical business objectives. Need help? Contact This Dot Labs to learn more about how developing the tools and strategies to ensure optimal site performance can support scalable growth as you continue refining user experience!...

State of Headless CMS Wrap-up cover image

State of Headless CMS Wrap-up

We recently hosted State of Headless CMS where we were joined by some very talented people to talk about a growing ecosystem. There are a lot of problems that a headless CMS can solve when it comes to indie development, and even small restaurants and shops. Before we dive into the key points of the event, I'll give you a brief introduction to the hosts and panelists. Hosts - Jesse @jtomchak - Keionne @KeionneD Panelists - Kapehe - Senior DevRel, - @kapehe_ok - Daniel Madalitso Phiri - DevRel, Strapi - @malgamves - Samuel Snopko - Head of Developer Relations, Storyblok - @samuelsnopko - Stefan Judis - Dev Rel, Contentful - @stefanjudis - Arisa Fukuzaki - Dev Rel Engineer, Storyblok - @arisa_dev There were a lot of great discussions during this event which is why I want to suggest that you head on over and watch The State of Headless CMS on Youtube to hear all of the great discussions. Who is a headless CMS for? Headless CMSs give developers the ability to use a CMS without being restricted to using the CMS platform itself. It's like using Wordpress, without having to actually use Wordpress itself. This enables developers to build more customized solutions for their clients. Some questions to ponder - What are some Headless CMS technologies that you're excited about? - How do we help the little shop manage their content? - What problems does Headless CMS solve for you? We want to give a huge shout out to our hosts and panelists for participating in the State of Headless CMS event....

Common Interview Questions & What They Mean cover image

Common Interview Questions & What They Mean

Introduction Who hasn't been asked some weird and interesting questions in previous interviews? Interviewers are known for asking a variety of weird, interesting, and confusing questions to possible employees for a variety of reasons. And this makes sense because they want to know as much as possible about you in the limited interview duration. Here are some interview questions you might be asked and what the interviewer is trying to find out about you from your answers: Introduce yourself Here, the interviewer is not really interested in your answer. What they are looking at your confidence and your passion, so this is the best time to show them your communication skills! So, you should tell them about your education, where you grew up, your past work experience, your hobbies, and your personal interests! Be calm, relaxed, and confident! What are your strengths? Here, the interviewers want to know how positivly you think about yourself! It’s a quite general question, so there is no right or wrong answer for it! So it’s a good opportunity for you to share what makes you so unique, and what are you good at! But you should tie your strengths to what they’re looking for! That’s why you should read the job description very carefully, and get a good understanding of what they are looking for, and then try to fit yourself in there! What are your weaknesses? In this question, the interviewers are looking at is whether you can identify your weaknesses, and how you can cover them up! You need not be really negative about yourself! For example, don't say “I am a very impatient person”, or “I am getting angry easily”. The best way to answer this question is to talk about a weakness that you had that isn’t related to the job, and what you did to overcome it. That way, they can see a progression, and that is what they really want to hear in the answer! What is your expected salary? Here, the interviewers, of course, have knowledge about the typical salaries offered by the company. By asking this question, they're often trying to see whether the applicant did research about the company. So learn about the company before the interview! You can use websites like Payscale or Glassdoor and read the reviews from other people who worked at this company! Can you work under pressure? This is a behavioral question, and the reason behind this question is the interviewers want to know if you get really stressed out. So the best way to answer this question is by talking about a situation where you experienced pressure, and the action that you took to diffuse that pressure. Then, talk about the result and what happened. How do you make your decisions? You might be asked this question if you are applying for management or lead position. They're interested in knowing your process when making decisions, because it's very likely that at some point, you will have to make a critical decision in the workplace. So, the best way to answer is to be confident and walk them through some of your management exercises, or some of your work situations that you handled successfully. What attracted you to this job? Here, the interviewers are typically trying to know if you understand the position you’re applying for, and that your goals and experience align with the role. Always remember that employers value candidates who aim to meaningfully contribute to company goals while also advancing their own careers. Where do you see yourself in five years? This is a growth-oriented question. So, if you just simply say: “I see myself sitting around here for the next five years until I figure out what I want to do”, that’s not what they want to hear. You should align this question to where the company is going and then you talk about how you see yourself fitting in their future. Why are you applying for this job? Here the interviewers want to know if you know their core values. A lot of people make mistakes answering this question and say that they are applying for the job because of the compensation package. Of course, salarie and benefits are an important thing, but you should have a long-term goal you want to achieve from the job! So it’s better to make sure this goal alligns with the company’s goals. That is what they want to hear from you. Why do you want to work here? The key to answering this question is to align yourself with where this company is going, so that’s why you must do some research on the company, like what are their values? What is their mission? Where are they going? What do they want to do? And by doing that, that will make you appear to be someone who can contribute to their overall mission, their projects, or whatever it is they’re trying to do. What makes you a good fit for this job? Here, they want you to talk about your past experiences, your past education, the kinds of things that you have done that are related to the kinds of things that they're looking for. So, you have to get a lot of information about the position, the job description, what they're looking for, and what the goals are for this position. Why should we hire you? I guarantee you are probably going to get asked this question, but it will most likely come near the end of the interview, after they’ve had a chance to build up some rapport and they’re actually thinking that you might be a good fit. Now, this is the chance to sell yourself, but you have to understand what they are looking for and the pains and problems that they have. Do you have any questions? This is usually the last question, and I made it the last one for a reason because this is most likely the last question they're going to ask you. Now that's your opportunity to find out more about what the next steps are, where they're going, or whatever is important for you. Don't just ask them questions to ask questions. Ask them questions that will help you determine whether this is a place that you want to be. Don't just ask questions about their organization chart or their finances or things that just don't really pertain to you. Ask them questions that are going to help you make a decision about whether you want to work there....

Over 250 Pull Requests Submitted to This Dot Labs' Repos for Hacktoberfest 2021 cover image

Over 250 Pull Requests Submitted to This Dot Labs' Repos for Hacktoberfest 2021

Hacktoberfest 2021 wrapped up on Halloween, closing out the 8th annual celebration of open-source contributions! If you aren’t familiar with Hacktoberfest, it is a month-long open-source program that challenges developers to contribute four pull requests to open-source repositories on Github during the month of October. Participants register with Hacktoberfest before or during the month, contribute their pull requests before November, and then either receive a tee shirt or have a tree planted in their name as a reward. This year, This Dot Labs wanted to offer developers at all levels an opportunity to participate in Hacktoberfest by contributing to a group of repositories that gather various community resources, from podcasts to conferences. Over the month of October, we were thrilled to collect resources provided by thirtyfive individual developers: @tyrelchambers @regromrob @alicenstar @JeffMarvin @NachoVazquez @brokenmold @Nerajno @twocs @mithleshfantezie @jdwilkin4 @kpflug @afonsocarlos @Rreiso @LukeCantCode @ikeadeoyin @lindakatcodes @mvisic @debrakayeelliot @CIJarvis @afrizalhan @RoxieElliot @Zelig880 @BlazOrezem @tvanantwerp @lyndseybrowning @stevenspads @nicoolel @SuzeShardlow @lilyruth @vedantvijay @greywillfade @meera-ramesh19 @yobee333 @runningdeveloper @jmhobbs And these awesome developers, made up of employees at This Dot Labs and members of the international JavaScript community, contributed to and helped design seven living repositories which you can check out below: thisdot / tech-podcasts thisdot / tech-meetups thisdot / tech-dev-tooling thisdot / tech-learning-resources thisdot / tech-bootcamps thisdot / tech-newsletters thisdot / tech-conferences Can I still contribute? Even though Hacktoberfest is over, This Dot Labs is excited to continue maintaining these repositories to offer helpful resources to the JavaScript community, and provide a fun and easy avenue for new developers to submit pull requests while sharing their favorite resources. Need learning how to submit a pull request? Check out this article by Linda Thompson. If you have any questions or need help contributing to one of these repositories, please don’t hesitate to reach out to This Dot Labs or me on Twitter!...

Double Click: Try Out the New Releases for jQuery UI & Lit  cover image

Double Click: Try Out the New Releases for jQuery UI & Lit

Welcome to the Double Click! This is the weekly blog series that shines a spotlight on emerging technologies, technological concepts, and community projects that enrich the JavaScript Ecosystem! This week, I’m diving into some updates from two web development technologies that have recently seen updated releases: jQuery UI & Lit. jQuery 1.13.0-rc.2 jQuery UI is a popular JavaScript library that sees wide use across the web despite the technology not previously receiving an update in about five years. Omg! That’s why I’m thrilled to see jQuery UI receive some much needed love in the form of this 1.13.0-rc.2 release, which contains no breaking changes, but sort of polishes off some of its deprecated features to support wider use in modern user interfaces. The jQuery UI team has noted that it has struggled over the years to find reliable contributors, which may explain why it has taken five years to see any updated releases. However, the team notes that they presently don’t intend to significantly expand the framework, and that it will now enter a maintenance phase to simply ensure that it is compatible with future jQuery releases, and secure. Lit 2.0 Lit has gone through a number of changes with this most recent release which officially launched last week. They have a new logo, a new name (having previously been called "Lit Element”), a new npm, and a ton of new features. If you aren’t familiar with Lit, it is a library that simplifies and supercharges the process of building and implementing web components from Google. With this new release, the Lit team has slashed the size of the library to 6KB, just a fraction of the size of your average JavaScript framework, which increases its speed and performance. But this isn’t the only significant improvement to the technology as the Lit team has also introduced new features like a class-based API for directive authors, templating enhancements, and reactive controllers. But what most caught my attention was the significant improvements to the Lit site and documentation. Aside from undergoing some major UI transformations, the new Lit website also features detailed documentation that includes a sandbox where users can test out Lit 2.0’s newest features in the browser! What are you excited about lately? Make sure to share with me on twitter @ladyleet....

Freelancing Tips for Beginners cover image

Freelancing Tips for Beginners

One year ago, I graduated from university in the middle of the COVID-19 pandemic with a degree in Finance. But to be be honest, I didn’t really want to have a career in that field. I love coding and web development. But because of COVID-19, it was so hard to get a job in tech. Many companies around the world were trying to reduce their employees (especially at the beginning of the pandemic), so that made me a little bit sad and hopeless about the future! Needless to say, I didn’t have a solid plan then. But after a while, I saw a lot of success stories of people who were laid off and started working as freelancers, and I wanted to try it! After a lot of effort, I got my first client, and then started to get more and more! Internationally, freelancing jobs are growing rapidly. As of March 2019, Google’s workforce was composed of 120,000 contractors/freelancers- more than the number of permanent employees on its payroll, which was around 102,000. In this short article, I will share some insights and tips that will help you get your first client! Just Get Started When most of us want to start something new, we spend too much time thinking and planning rather than doing! But sometimes, they spend so much time planning that they lose their passion for it! Take action, and start building your portfolio. This is the first step on the road, and it may take some months, so don’t lose your drive! Build Your Portfolio This is the most important step to take before freelancing or searching for a job. Start planning, learning, and building these projects because your clients will ask you to see some of your work, and it’s so important that you have something awesome to show them! When you build your portfolio, make sure your featured projects are distinct and innovative. Make something that will stand out to your clients. And here is a great repo that has a ton of ideas to inspire you. Marketing Yourself Make sure to document the process of building your portfolio! Make sure to update the progress of your projects on your social media accounts, and share them with relavant groups, and blogs. And remember, social media is the best way to get clients! Also, there are a lot of other ways to increase your web presense, like writing blog posts, and sharing your experience with others. It’s an effective way to get more clients. This is a great article that explains how to market yourself as a freelancer. Remain Focused Productivity doesn’t happen by accident! Get organized by dividing your day into goals, each with a clear purpose. Think of this as a detailed to-do list of prioritized daily tasks. Keeping a to-do list is the simplest and easiest proven tool to ensure you stay focused and increase your productivity. Set reasonable targets for each day. All you need to get organized is a pen and paper, or even just an app on your smartphone. Study Your Market Studying your market will allow you to meet your potential clients where they are. As our world (both digital and analog) becomes louder, and demands more and more of our attention, this proves invaluable. By understanding your client's problems, pain points, and desired solutions, you can aptly craft your product or service to naturally appeal to them. Write Good Proposals A good proposal defines the services that will be provided in a professional and comprehensive way, and should give the client a feeling that you will provide a high-quality product. This feeling will allow you to charge higher rates for the work to be done. But how do you write good proposals to gain more clients? Well, it is not only important to consider the content of your proposal, but also how you structure it. You can present certain sections in a strategic order to break up all the information you are giving the client while maintaining their attention. This way, the potential client will be able to absorb every detail of your proposal. Always consider more than one solution. When you write only one offer in your proposal, you are putting your potential clients in a position where they have to accept what is presented or not! Try to add multiple solutions with different prices. You can find more tips and tricks for writing your proposals here: Writing proposals as a freelancer. Pricing It’s so hard to set your prices at the beginning. And who would blame you? You probably haven't priced out your services before! My shortest answer to all who ask me similar questions is to go to platforms like Upwork or Fiverr and see what others are charging for the service you intend to provide. Never Stop Learning The successful freelancer can pivot quickly and seamlessly to meet the demands of a particular client. If you’re asked to deliver work that you’re not quite familiar with, take the initiative to do the research needed to finish the job. Think of it as Method Acting. Read some examples of what you’re being asked to complete, and let those examples inform and guide your york. Ultimately, you want to internalize your clients' expectations, and be able to produce the requested work with minimal revisions. With time, the more content and styles you encounter will better prepare you for future contracts, and at least make you more accustomed to adapting to new work....

What You Need to Know About Git Before Joining a Team cover image

What You Need to Know About Git Before Joining a Team

Learning Git is no joke! If you are a developer, and you work alone, or haven't gotten a chance to work an organized team, this article is for you! When I joined This Dot Labs as a junior software developer, I encountered a ton of issues with Git in my first weeks. In this quick blog, I'll share what I learned from my team with the hope that it will make your life easier when you join your own team, and start using Git collaboraboratively. 1. Pull Request (PR) When you’re working as a developer on a big collaborative project, things get complicated. You're not only worried about making mistakes yourself, but you're hoping nobody else's bugs get merged into the shared code either. So how can a team of developers organize their work flow to better work together? The generally accepted best practice is not pushing to the main branch at all. Instead, separate the work into small pieces. Each piece is a new feature in the project, and developers code each feature on a separate branch. Then, they open a pull request, and that means they want to merge their changes with the main branch! Next, your pull request will be reviewed by team leads, tested, and hopefully approved. If you receive that approval, congratulations! You can merge your branch into main branch now. 🥳 2. Husky This is a tool that we use to run scripts and tests before we commit, or push changes to get high-quality commits! For more information, visit 3. Rebase This was the most difficult topic for me to grasp in the first two weeks, but I finally got it! I will simplify it with graphs to make it easier to understand. Imagine we are working on a project, and we have three commits: m1, m2, and m3: If you had to write code for a new feature in the project, you would have to create a new branch, like this: Now, the feature branch is based on the last commit of the main branch, which is m3. After ceating this branch, you might add some commits, which are represented by f1, f2, and f3: But while you're coding, one of your teammates could add some commits to the main branch, and now the main branch looks like this: If this happens, your branch is behind the main, so you need to rebase it to the latest version of the main to see these changes with the next command. ` And this is how your feature branch looks now: Now, as you can see, the rebase process pushes your commits forward, so your branch is based on m5 instead of m3, and you have the latest version of the changes. And if you open the `, the commits in your feature branch will look like this: 4. Git fetch vs pull This also confused me at the beginning, but let’s simplify it! If you haven't worked on a team yet, you've probably only used Git push and pull commands because you’re the only developer on the project! ` is the command that tells your local git to retrieve the latest meta-data info from the original (Though it doesn’t do any file transferring. It’s sort of "checking" to see if there are any changes available). ` on the other hand does that AND brings (copies) those changes from the remote repository. So to summarize this, ` does a `, followed by a `. 5. Git strategy (Rebase vs Merge) There are a lot of ways to use Git, and I see a different method in each project I work on. But, these are the two patterns I saw most frequently. Merge Strategy Imagine you’re working on a website, and the client wants you to add a new "About" page. Using this strategy, you’ll make a new branch for the new page. Then, you will divide this page into smaller pieces/components, and make a new branch from the main feature branch (the About page branch) for each one. After this, you will merge these smaller branches into the feature branch, and when the "About" branch components are ready, you can merge the About branch into the main branch. Pros of this strategy: It’s safe, and protects everyone’s work! Cons of this strategy: As you can see from the image above, the branches can get complicated! Rebase Strategy To avoid some complexities in the Merge strategy, especially in very large projects that may contain thousands of branches, you can rebase your commits. A rebase takes your commits, and reapplies them with a new position. You are essentially moving your starting point. After rebasing a commit, it will look like the code from a single straightforward line, like this: Pros of this strategy: The main branch will look like the code from in a single straightforward line! Cons of this strategy: Rebasing does have its risks, and can result in you losing your work. Final thoughs: Every Git strategy has pros and cons, and so much of the strategizing process will depend on team preference. I bring up these two options as they are the most common you will encounter when you begin working on collaborative projects with Git....

What Are Smart Contracts? A Brief Overview cover image

What Are Smart Contracts? A Brief Overview

What are Smart Contracts? Simply put, smart contracts are distributed blockchain applications that store logic and execute actions when the conditions of a particular agreement are met. Ex: Imagine you owned a marketplace platform that allows individuals to list items for other users to purchase, but you are tired of having to manually address fraud claims when users purchase items that are not sent. You could code a smart contract that records payment from a buyer, and distributes payment to a seller once a receipt of successful delivery is reflected on the blockchain. In cases where sellers do not meet their obligation to ship within a stated time period, payment can automatically be returned to a user without the time, hassle, or costs of authorizing fraud claims yourself. Smart contracts, as we understand the term today, originated on the Ethereum network. Ethereum (not to be confused with its cryptocurrency, Ether) is a worldwide blockchain network that allows developers to deploy decentralized applications. When we say that these applications are “decentralized”, that means that the application, as well as all of the information it receives and outputs, are represented and recorded across a massive network of “nodes” or computers that simultaneously record information. The information is unchangeable, fully transparent, and accessible by all parties involved in the transaction, be it financial or otherwise. This promotes security, automation, and accurate record keeping for both developers and users. Smart contracts built on the Ethereum network use a language called Solidity. Fortunately, Solidity’s syntax is modeled after JavaScript’s, allowing developers with JS experience to quickly spin-up and deploy these applications with a relatively small learning curve. Additionally, Ethereum serves as the foundational network on which many other blockchain projects, including Chainlink, Aave, Axie, OpenSea, and UniSwap- to name just a few- are built. Though we have only just begun to exercise the capabilities of smart contracts, many are currently being used to automate interest payments for lenders, simplify and secure the crowdfunding process, and otherwise circumvent third party service providers that either process payments, or verify contracts on behalf of two or more parties. However, smart contracts have the potential to replace a number of financial and administrative processes that organizations currently outsource, manually process, or process using centralized applications and web architectures that often rely on third-party APIs anyway, and often lack comparable security, speed, and fraud protection. Deploying Your First Smart Contracts Deploying your first smart contracts is a critical step towards preparing your development infrastructure to compete in the modern digital marketplace. Teams should take advantage of this period of technological development to create simple smart contracts that demonstrate the advantages of leveraging these revolutionary applications within their organizations. For example, you could start by creating an employee survey application which anonymously records responses, and waits for a particular volume of responses before distributing them to the department which oversees these surveys. Or, you can create a charitable fundraiser which automatically matches employee contributions up to a certain threshold without ever needing to oversee these payments, or involve a third party financial institution. We’re Excited to Hear What You Have In Store! Do you have an idea for a game-changing smart contract, but need some extra help developing and deploying it? Reach out to This Dot Labs for a consultation, and we will be thrilled to help you see just how easily you can begin executing business logic on the blockchain!...

Double Click: The Storyblok V2 Release! cover image

Double Click: The Storyblok V2 Release!

Welcome to the Double Click! This is the weekly blog series that shines a spotlight on emerging technologies, technological concepts, and community projects that enrich the JavaScript Ecosystem! This week, I am congratulating Storyblok on their V2 release! Storyblok is a Headless Content Management System offering a visual editor and built in components. In fact, it is the first component-based headless CMS, offering developers the ability to limitlessly nest components, fill them with content, and then adjust them to fit the requirements of their own website. Using a headless CMS system offers a ton of advantages to developers and teams. Content can be published and adjusted within the platform without needing the direct supervision of a developer. This is not to say that content management systems replace the need for developers- far from it! Instead, they abstract a ton of complexities normally associated with managing site content, allowing developers to focus on other areas of functionality, or building new tools, while only having to step in periodically to assist with major changes, address bugs, or rewire the system to your site. Developers who are already familiar with Storyblok enjoy several upgrades with the V2 release, including breadcrumbs navigation, and expanded functionality as it relates to “blocks” or structures that nest components. If you’re interested in learning more about Storyblok’s V2 release, including how to install it, you can find the official changelog here! Want to keep up to date with all of the latest happenings in the JavaScript community? Prefer the video format? Watch the most recent episode of my weekly web show, The Retro, where we cover all of the topics above and more!...