

The adventures of Matt Lawrence and Mike Karan through the world of web development, web design, and small business management. As web development agency owners for the better part of a decade, they’ve worked with all sorts of technologies, through the rise of responsive web design, the revolution of serverless computing, and the popularity gain of many no-code tools for small business owners. They commonly discuss foundational web development technologies like HTML, CSS, and JavaScript - including popular frameworks and tools such as Tailwind CSS, Svelte, WordPress, Vue, and more.
The adventures of Matt Lawrence and Mike Karan through the world of web development, web design, and small business management. As web development agency owners for the better part of a decade, they’ve worked with all sorts of technologies, through the rise of responsive web design, the revolution of serverless computing, and the popularity gain of many no-code tools for small business owners. They commonly discuss foundational web development technologies like HTML, CSS, and JavaScript - including popular frameworks and tools such as Tailwind CSS, Svelte, WordPress, Vue, and more.
Episodes
Wednesday Jan 30, 2019
Negative Customer Relations
Wednesday Jan 30, 2019
Wednesday Jan 30, 2019
In this episode we discuss the difficult conversations we all face when dealing with customers including pricing, misunderstandings, and more.
Segment 1 - Saying No
- Sometimes customers relations aren’t just selling them on your latest theme, service, or skill - there comes a time where you have to deal with intricacies that have a negative connotation attached to them
- Specifically these are often: pricing, value (of work and of the product to the customer), bad content (low quality images, bad copy, etc.) - essentially you’re saving them from themselves, their web presence should start out on the right foot when you’re done with it
- Pricing
-
- Pricing is almost always a major point of contention between you and your customer
- People always want a lower price, and they’ll try anything to get it
- The issue with you constantly lowering your price is that even if you don’t intentionally do this, you will have a lesser quality product because your motivation to complete it will drop.
- Scope creep (customers adding features onto the original scope of the project) is especially bad when you’re doing a project and being underpaid - and the outcome will be of lesser quality
- You should go into a pricing meeting with a price range in your head, or one solid price if you aren’t willing to negotiate, and stick to the plan. If the customer is unwilling to pay a price that you’re okay with, then you just have to back out politely (this isn’t gonna work, thanks for your time)
- When it comes to older businesses, or specifically ones that don’t run off the internet, they have issues paying for online services like web development because their business doesn’t generally value the web too much
- Value
-
- Value and pricing go hand-in-hand, everyone wants what they paid for and preferably a low price on a high value
- Sell customers on the value of your work can be difficult depending on how much they rely on their website
- For example, if a company if almost completely reliant on their eCommerce site then upgrading it - even for a high price - may be something they’re willing to do to ensure the revenue keeps flowing
- On the flip side, if you are working with a customer that simply has an online presence, like a basic website with a phone number - they’ll generally generate their customer via other means (newspapers, word of mouth, billboards, etc.) and therefore will value their online presence less.
- When you have a customer that doesn’t value your services much, often times the project will be less complex, however, they won’t offer you a fair dollar for it because it doesn’t generate them enough business to pay for itself over the short term.
- Sometimes a customer is looking to become more active online, which is why you were contacted, but they still don’t know the value of a good online presence, what it takes to generate traffic, how to manage social media, etc. In this case it can be very difficult to get a customer on-board with a price that you’re good with, versus the amount of work he wants done to become relevant online because they don’t understand the value of the work you’ll be doing for them
- Bad Content
-
- We’ve all been there, you’ve been hired to look at an old website that was designed for old SD monitors, you come up with a plan to revitalize it which results in a list of photos and other content that you require the customer send to you (ie staff photos, office photos, staff bios, etc.) and they just say to use the old ones because they look good
- This is one of the hardest things to convince people to change, they’re attached to the old photos and text that they wrote years ago, but those small SD photos just aren’t equipped to handle the HD screens of today and will look awful
- It’s your job, as unfortunate as it is, to politely push back on customers explaining to them that if they’re refreshing their site, they can’t have old assets on there or else it will look awful. You need to try and convince them to update everything to modern standards and to ensure that any copy is up-to-date
- In order to do this try and tell them that their customers will take notice that their site looks messy, or slapped together for cheap which will leave them with a bad first impression.
- You can also offer to make some of the content for them, if you’re willing and able to, for a price of course.
- Ultimately it's your job to ensure that their web presence gets off on the right foot when you’re done with the project, ensure that things are as high of quality as you can.
Segment 2 - Aggressive Interactions
- Handling a client that is angry can be a challenge
- There are a few strategies that we use to to handle these situations when they arise
- Let the client say their piece fully without interrupting them because if they are angry it’s important to figure out why before you can diffuse the situation
- Once they seem to be done try to show empathy and don’t deflect their problem back at them. Even if it’s fully their fault take some time to think of it from their side and try to explain to them why the situation happened and what you will do to fix it
- Don’t fire back at the customer, it will make them angrier, usually if you treat them with respect through this process they will realize they are overreacting.
- Usually the reasons for these aggressive behaviours can be:
- Miscommunications
- Pricing conflicts
- Design misunderstandings
- Encountering bugs
- Remember you’re the professional in this situation so you have to act like it. Prove to the customer that they should trust you with your decisions.
- When you make a mistake own it and give the customer your immediate solution and the steps you will take for them to not happened again
- Mistakes happened, most people will be very reasonable when they do as long as you’re clear with them. Aggression can occur when you try to hide something from the customer, especially if it’s a hidden cost or a detrimental experience.
Segment 3 - Waiting
- A lot of negative customer relations can come from having to wait for a client
- Waiting for them to answer an email, respond to your phone call, give you content, or any other situation where you are being held up by the clients lack of communication
- Situations can arise where you have a tight deadline set by your client but are being forced to wait on them for content which will cause you to miss the deadline.
- To mitigate these situations you have to give your clients deadlines as well. Clearly explain that if they do not meet them then you cannot finish by the deadline they need their product by. These clear and deliberate communications will set a precedent with your clients.
- Some good advice that I heard listening to the latest Syntax podcast [The Freelance Client Lifecycle] was to treat your clients as more of a partnership with them. Where you are trying to get something done together, rather than a them vs us mentality.
- As we are learning some clients don’t like to read emails in their entirety so it might be beneficial to give them a call a day or so after a lengthy email and ask if they have any questions or concerns
- False Urgency
- A major pet peeve that comes into projects in a variety of ways
- Entails calling something an emergency without there actually being an emergency
- Often times causes things to be rushed and of lower quality than they would be normally
- Sometimes this can cause additional charges on clients who are unsuspecting
- Common false urgency dispatchers:
- Marking emails are urgent
- Saying something is an emergency within an email
- Calling a frequently or out of normal work hours (late at night, early in the morning)
- These dispatchers are exactly how people actually contact you for a real emergency, however, they’ll try and add urgency to something that isn’t actually urgent just to get it done faster
- Often times we’ll quickly do whatever they ask if we’re available only to have those edits go unchecked, or unused, for several weeks
- Constant false urgency calls only result in slower response times, and may result in actual emergencies being missed because of the “boy who called wolf” scenario
Web News - The Facebook Messaging Toss-Up
“Facebook is working to allow cross-messaging between Facebook Messenger, Instagram, and WhatsApp, according to a report in The New York Times this morning. Each service will continue to operate as a standalone app, but according to the Times, Facebook is rebuilding the underlying infrastructure so that people who might use only one of Facebook’s properties could communicate with others within the company’s ecosystem. All of the apps will support end-to-end encryption as well. Facebook has yet to provide a timeline for when this will happen.” - The Verge (https://www.theverge.com/2019/1/25/18197228/facebook-instagram-whatsapp-merge-messaging-services-mark-zuckerberg)
Facebook Spokesperson Statement
“We want to build the best messaging experiences we can; and people want messaging to be fast, simple, reliable and private. We’re working on making more of our messaging products end-to-end encrypted and considering ways to make it easier to reach friends and family across networks. As you would expect, there is a lot of discussion and debate as we begin the long process of figuring out all the details of how this will work.” - The Verge (https://www.theverge.com/2019/1/25/18197228/facebook-instagram-whatsapp-merge-messaging-services-mark-zuckerberg)
- What of Instagram Direct?
- It’s integrated into Instagram itself, does that mean we’ll have duplicate notifications?
- There is a separate Instagram messaging app available in limited countries (not in Canada) called “Direct from Instagram” maybe the messages will be removed from the main Instagram app?
- Facebook messaging was removed from Facebook’s app and put into “Messenger”
- WhatsApp was acquired by Facebook in 2014
- General UX Questions
- Will there be a main app that people should use?
- Will you lose native features of an app that you don’t have installed (ie WhatsApp profile pic)
- Is there going to be a totally new combined app for phones?
- Will this work on PC? (if I boot up Messenger either within facebook.com or on the separate web app, will I be able to message WhatsApp folks?)
- Do I need to sign-up for all of them?
- Assuming you just need one app, which one are you going to use?
You can find us on...
Wednesday Jan 23, 2019
Tips and Tricks
Wednesday Jan 23, 2019
Wednesday Jan 23, 2019
In this episode we share some of our tips and tricks that we've picked up along our many web development and design adventures.
Segment 1 - Matt’s Tips & Tricks
- Server/Hosting Management
- Common things like this include: WordPress updates (plugin updates), migrating to a different server/host, testing a new major feature, adding something a client has requested - but you think won’t work out which will result in a rollback
- Always backup files and databases that you won’t be able to get back in their existing state
- Be wary of new commands if you have command line access, especially if they’re aimed at deleting files, or folders
- Have a recovery plan before you begin so that you can quickly and easily rollback your changes if something goes terribly wrong - planning this out properly may require you to take full backups, prepare a re-upload solution, research re-installation information on some of the software you’re using
- Have a testing environment setup that mimics your production environment preferably
- CSS
- Don’t be afraid of simply setting up a skeleton before moving onto a different part of the site - having a skeleton of the top bar while branding is being figured out is a good way to get started on the site, and frees you up to spend more time on other elements that are more definitive (ie slider, contact form, etc.)
- Make your class names easily identifiable, whether you use a naming convention or not, at the very least use something that you’ll be able to identify later and that other developers would be able to pickup on if they interact with your project in the future (example classnames: navbar, nav-item, footer, topbar)
- Comments (and this goes for other languages to) should be done to clarify things for yourself in the future, or for other developers down the road, however, sometimes you understand something using references in your own head - do not hesitate to make comments specific to you if you’re actively working on the project, using references that only you understand - making the comments more generic for others when production hits
- Test responsivity with true window widths, not just responsive tools, sometimes these tools don’t reflect exactly how different browser window widths will actually react which can result in some overflow left-to-right or some broken elements altogether
Segment 2 - Mikes Tips and Tricks (JS Tips)
- Use a scope variable
- If you’re using just straight javascript for a single page or multipage website create a scope global variable. Make sure that this is your only global variable for the whole project but if you need to pass state or variables between files or pages then use only scope to keep some form of structure and minimize conflicts
- Use libraries when necessary
- Make sure it has been updated in the past year at least
- Make sure the documentation is fairly easy to understand
- Check the Open issues tab in github and make sure that there are plenty of closed issues and check those closed issues to make sure you are fine with the answers given as if you have an issue you will have a similar experience
- When working on a large project there will be times when you’ve gotta complete features under a time limit. This is where libraries can really save you a huge amount of time and headache. I recently had to create a searchable list for an application with the ability to auto filter the visible list as you type. Even though this is definitely something I could have created from scratch I didn’t want to waste my clients time if that is unnecessary. Doing a quick google search yielded plenty of well maintained, small and feature rich libraries. One called list.js really exceeded my expectations. Here are some tips for checking if a library is worth using:
- Do your best to write self documenting code with comments being used only when necessary
- I am very deliberate in my function and variable names to make it easy to go back to my code and understand what is going on
- If a function is calculating the taxes on the order then call that function calculateTax()
- Try to avoid using ternary operators (condition ? true expression : false expression) in code that will need to be maintained by multiple people over long periods of time. As ‘professional’ as they make you look they are not easier to understand then a simple if statement. Nor do they impact performance in any way
- Refactor and clean up code often
- With larger projects code can get out of hand really fast. If you’re programming at speed and do a lot of testing where you comment out sections and write new ones to see differences those commented out sections can add up and can contribute to confusion and maintainability in the future
- Sometimes you can preemptively create variables and functions and then never use them going forward. These are just taking up space in memory and adding even more complexity to your code for no reason. These are prime candidates for removal in a refactor
- Chrome Dev tools are your friend
- These are a huge help to me on a daily basis. Being able to put a breakpoint in my code and view what all my variables read at that time makes testing and writing code so much easier
Web News - Software as a service
- With most software companies move to a monthly or yearly subscription model has the standalone application now become a unicorn in our industry?
- paying only 5-20 dollars a month for a premium application seems like a easier sell to people then asking them for 100+ upfront. But these 5-20 dollars a month add up and could very well be a much bigger hit on your wallet in the future
- Knowing you never own the actual product is also a weird feeling
- For the company having consistent recurring income is a huge bonus and allows them to plan much further ahead with features and support. Also very few yearly version upgrades happen, instead choosing to maintain and add features to the same version. This makes for less need to upgrade or migrate to different versions
- In my experience a company that gets a monthly subscription is less likely to abandon their product
- I.e android app Weather Timeline was a paid application but with it being only a one time fee it wasn’t able to maintain it’s costs and had to take the application down from the store and later on sell it to a different publisher
- What do you prefer, a one time bulk fee (approx $100) or a $5-$20 subscription?
You can find us on...
Wednesday Jan 16, 2019
Coding Challenge Wrap-Up
Wednesday Jan 16, 2019
Wednesday Jan 16, 2019
In this episode we discuss our recently completed coding challenge, making "No BS News for Reddit"
Note: We had some audio issues with the first upload of this episode, if you hear nothing, simply delete your version and re-download to get the updated file. Apologies for the inconvenience.
Segment 1 - Pre-Planning & Design
- As apart of this challenge we were allowed to plan, design, and research before the challenge began
- To prepare we did some research on PWAs and their functionality
- We also researched other news apps, and what subreddits would be the most useful
- From a UX perspective, we took a look at which features a Reddit user would need and expect from a Reddit app - minus the social features of course
- From this we came up with some wireframes to guide our design throughout the process, which we modified on the spot to accomodate for a “open Reddit post” button alongside alternative share options for PC users
- We also had a discussion regarding the addition of custom news sets, where users could select a bunch of subreddits to pull into a single custom feed - this ended up using up a decent amount of time and we didn’t put it into the app in its current state
- One other design challenge that we had was making the design pop
- Since this sort of app is so text-heavy we were concerned that its monotone nature would end up making it boring, or otherwise, look unfinished and rushed. However, after spending more time on Reddit we realized that this type of app is more utilitarian than it is flashy, so we decided to place it in a dark theme and let the links “do the talking”
Segment 2 - App Development
- Development went smoothly for the most part
- We were able to complete almost all the features that we originally set out to make, including a few extra ones
- We had a few bugs popup that were dealt with quickly, namely some responsivity issues with overlapping and some time stamps that were coming in as negative numbers
- Vuejs seemed to almost accelerate development due too it’s built in development server and its short code nature for functions and listeners
- Vuejs also created the template for the PWA functionality through the Vue CLI
- App functionality implementation went as planned and didn’t pose much difficulty other then a couple of hiccups and glitches that had to be fixed
- Showing how much time has elapsed since each post was posted showed to be kind of annoying because of how reddit handles UTC time. I have to multiple the time by 1000 to match with the the current UTC time
- Working with the reddit api is awesome and a great way to learn API’s and working with json
- The app is pretty much feature complete as in line with our MVP (minimum viable product)
- Couple of features we are looking to add would be :
- a way to create a custom news group
- Light theme to go along with the current dark one
- The motto for adding features to this is “Is that bullshit?” if we think it is, then we don’t add it
Segment 3 - App Deployment
- So we’ve already had a few episodes where we talk about deployment in a little more detail but it’s valuable to mention how we went about doing this for the 24 hour challenge aspect
- This was by far the most frustrating part of the entire day as this would be only my second time deploying with Docker and to digital ocean
- It is simpler than the html all the things deployment because there is no server side containers but due to the time constraint and the fact we started deployment only at around 12am it turned into a problem
- The initial deployment as a web app went ok until we hit the SSL certification
- We used the same method as with HTML all the things, where we are trying to certify a docker container running nginx using certbot on our ubuntu digitalocean droplet
- Unfortunately I didn’t have a lot of experience and combined with already being mentally exhausted I went into a try everything approach instead of using logic
- Logically looking at it with a fresh head after getting some sleep got a solution in a matter of minutes
- Although this was frustrating this is all part of these short time challenges and must be overcome if anyone wants to be able to work in crunch periods
- Sometimes it’s important to step away, as I did that at least 2 or 3 times during the challenge to solve random issues
- For next time I think we might do a initial pre deployment before the challenge to at least get the ssl and nginx container worked out, so we have more time to focus on actually developing
Web News - Personal Opinions on PWA
- Disclaimer: We have minimal experience with PWAs in both the development and consumer side of things, so these are simply our opinions having minimal exposure
- Progressive Web Apps fall into a strange segment of the market, because they’re not quite native apps, and not quite websites (at least under the hood)
- We’ve entered into a time where the internet is relied upon to power a lot of things and therefore an internet browser of some kind is almost always open on people’s computers, or phones
- On the PC, it’s rare that people use traditional “apps” like Facebook, for example, but rather use the website facebook.com which serves virtually the same purpose
- PWAs seem to be the bridge between the two, adding accessible offline features to web developers that are creating websites, or web apps, that will eventually need a mobile app of some sort
- With that being said, there seems to be a bit of a stigma against non-native software, things like WebViews and other app types are readily available, but the big apps seemt to almost always go the native route - even if that means making two entirely separate apps (iOS and Android), or dealing with porting between the two in some capacity
- So where do we feel PWAs fit in?
- Will they take off?
- Will they displace native apps?
- Are they here to stay?
You can find us on...
Monday Jan 14, 2019
Code Challenge - No BS News for Reddit
Monday Jan 14, 2019
Monday Jan 14, 2019
In this tidbit episode we discuss our code challenge, announcing official dates, and other considerations that we've thought up over the past few weeks.
We'll be calling our PWA (Progressive Web App) "No BS News for Reddit" and will be using: flexbox, Vue.js, and service workers to accomplish our task. The challenge will comprise of us trying to complete this app within a 24-hour period. As a PWA, we will be running it on Digital Ocean for hosting, which will also be our finish line. More specifically our goal will be to develop the app to completion, and have a functioning product live on our hosting package. We plan on releasing this app on an app store, or two, however, this will not be apart of the challenge. In addition, any time-based approvals (ie if Adsense needs to approve to run ads on the site) will not be apart of the challenge. We will work around them the best we can to provide an app that people can use before the 24-hour window closes. Before the challenge begins we're allowing ourselves research and design, but no development on the app itself - that will be all saved for the code challenge window.
You can find us on...
Wednesday Jan 09, 2019
Maintaining Your Skills
Wednesday Jan 09, 2019
Wednesday Jan 09, 2019
Happy New Year! 2019 has just kicked off, and so has another year of podcasts. In this episode we discuss maintaining your skills after long periods away from your desk. This is the perfect compliment to the recently completed holiday season as many of us are just now getting back to work.
Segment 1 - Keeping Things in Practice
- Keep using the technology you deem valuable
- The main way I stay on top of my skills is seemingly an obvious answer. By using them
- This can be a little difficult though with so many technologies out there and as we’ve mentioned many times it’s easy to get overwhelmed with all the choice
- What I try to do is choose projects that will incorporate the technology I value
- Sometimes this requires convincing your employer and contractor to adopt something they are not familiar with. So it’s important to be knowledgeable of the positives and be very clear with the downsides right from the get go.
- Recently I’ve been proposing using Vue.js for some contract projects
- Keep up to date with updates
- As technology evolves it usually get a wider feature set and perspective of when to use it can change
- I try to stay on top of technologies such as node, Vue.js, react and read their change logs. If a new feature gets announced I try to figure out where I can use it and how to implement it (usually using the documentation). Even if I don’t implement it just by going through the exercise of figuring out how it works I retain a little bit of that knowledge and will more likely know to come back to it when a new project pops up.
Segment 2 - Combating the Loss of Knowledge
-
- When you’re away from your desk for a long time, you’ll become rusty at your everyday tasks and may completely forget new things that you learned just before leaving
- Furthermore, there are often times that certain snippets of code are used a single time per project and therefore don’t stay fresh in our minds because we rarely see them
- It’s easy to stress over losing knowledge like this because we invested time in learning new skills and in a few short weeks they could be completely gone from our memory
- There are a variety of ways to combat this, but it’s not something to stress over as it’s just a natural procedure that our brains do that is out of our control
- Recording Snippets
-
-
- Programmers of all kinds, whether it be web developers, game devs, or even hobbyists all have some sort of snippets manager
- Often times these take the form of a snippets managing software, but it can be as simple as keeping old projects and files laying around in a folder somewhere
- One key component to generating snippets is that your code is modularized rather than proprietary for each application, meaning you want to code up functions that can be used over and over again - If you have an application that uses AJAX for example, there should be an AJAX function that you can pass arguments into, rather than AJAX being done somewhere inside of another multipurpose function
- Snippet managers are great when you code up something that you know you will use repeatedly, but rarely need to interact with directly
- Example 1: You make functions that access and interact with an API once, then you focus on making the application using the data that comes from that API
- Example 2: You make a collection of CSS buttons that you use on a variety of projects
- Personally, I use a bunch of old projects and files inside of a folder because I always think of the project I did something in, in the past, rather than the name of a generic function. However, I’d like to build up a snippet library in a formal piece of software
- There are a bunch of snippet managing software out there, I haven’t used any personally, but some of the ones that came up in a quick search include: Boostnote (https://boostnote.io/), Cacher (https://www.cacher.io/), and Bracket Snippets for Brackets (https://github.com/jrowny/brackets-snippets)
-
- Letting Selective Knowledge Go
-
- One of our programming teachers in college said that he would selectively let knowledge leave his brain once he had learned and implemented it
- Specifically he was referring to a driver that he had written for a microcontroller that we were using in his lab class. He said that he only needed to learn the information for certain parts of the driver once, implement the driver they way he wanted based on his new knowledge, then he forgot about that specific piece of information he learned because he had already gotten from it what he needed
- This might be a hard pill to swallow, especially since things take forever to learn when we’re new to them, but it’s a valid statement
- If you think about it, if you were working at a company as a Ruby on Rails developer and suddenly got changed to a different team that exclusively uses jQuery for their projects, you’re going to forget Ruby on Rails pretty quickly if you don’t keep your practice up on your own time
- I like to think of it as, I learned something to gain value in some way, expended that value to its fullest for my given situation, then moved on.
Web News - 2018 in Review, Road Ahead to 2019
- 2018 Podcast Download Numbers
- July - 72 downloads
- August - 378 downloads
- September - 973 downloads
- October - 1234 downloads
- November - 1683 downloads
- December - 1569 downloads
- 2018 total: 5909 downloads
- 2018 Spotify Stream Numbers
- July - 0 streams
- August - 84 streams
- September - 333 streams
- October - 618 streams
- November - 718 streams
- December - 686 streams
- 2018 total: 2439 streams
- As of January 7, 2019
- Instagram Followers - 448
- Twitter Followers - 60
- Facebook Page Likes - 57
- 2018 in Review
- Higher numbers than expected across the board
- Podcast was supposed to be a side thing in comparison to templates, snippets, etc, but has become a staple of HATT
- Learned a bunch of social media tips and tricks, with a focus on Instagram, secondary focus on Twitter
- Goals for 2019
- Over 2k Instagram followers
- Monetization of HATT through multiple means
- Create a developer community through HATT where people can meet other developers going through similar paths to them, finding people to work with
- Mikes Goals
- Go all in on vue.js
- Get a youtube tutorial series up
- Become comfortable with webpack and code splitting
- Matt’s Goals
- Master CSS Grid
- Start something on YouTube (Webflow guide? Something else?)
- Further my knowledge of social media
- Amass to: Get a steady passive income stream setup and running
You can find us on...
Wednesday Dec 19, 2018
Motivation
Wednesday Dec 19, 2018
Wednesday Dec 19, 2018
In this episode Mike and Matt discuss motivation in it's many forms, and how it affects working on variety of projects.
Segment 1 - Types of Motivation
- Different types of motivation range from the tinkerer all the way to the passionate
- Being in any of these camps generally dictates how much effort, and time, that you’ll put into a field that you’re checking out
- In terms of web development & design, having a different level of motivation will no doubt determine where you fall within the field - maybe you’ll make a single website for fun, or maybe pursue a career
- One thing of note, these classifications of motivation are from our own experiences and ideas, they aren’t some sort of “official” classification of any kind
- Passionate
- When you’re passionate about something you’ll typically take it more seriously and do in-depth research to learn new things
- This type of motivation may steer your career decisions, or help you set up a side hustle of some kind
- For the web field, this generally means you won’t be using your “local” website builder like Squarespace, but rather diving in head first to the code, determining what tools you’d like to use and how to use them efficiently
- “Forced”
- Sometimes you’re figuratively “forced” into a doing something due to outside pressures, such as financial situation, or availability of work
- When this happens you may take your work seriously, however, you’ll be taking it more seriously and efficiently than someone who wants to be there, because generally you’ll want to get in there and just get the work done
- Often times people get trapped into these types of situations due to the outside pressures never alleviating, or more that suddenly pile on, leaving you trying to find methods to get out of the field
- Bringing this into the web industry, sometimes people will be “forced” to do professional web work, either full time, or by being in an associated tech field that suddenly requires web work. Generally this type of work will be rushed in some way, having tasks done in the quickest way possible - often leaving a lesser quality product
- Hobbyist
- Hobbyists are people that like to do a variety of things, and get into them all the way, stopping just before getting professional.
- There are of course varying degrees of hobbyists, but generally, they could technically operate in the professional realm given a small amount of training
- Bringing this again to the web industry, hobbyists will generally not focus on one tool, language, or segment of the industry, but rather fan out and use a bunch of different tools ranging from site builders like Squarespace, then dabble in some code - getting a full range of experience to build some sites that they’re interested in, sometimes these lead to a side hustle if they’re successful
- Tinkerer
- Tinkerers are one step below hobbyists, and are generally just interested in a field in some remote way
- They’ll do a variety of “light duties” within their interest, things such as reading some material, or maybe dabbling slightly within the field itself, stopping well short of investing any sort of money, or serious time, into learning a given field
- When it comes to the web industry, these people often need a single website for something they’re working on, they’ll read up on different site builders online and then just use a template so they can get to work - this of this as more of a blogger that doesn’t want to deal with their website, but instead their work is their writing itself, so they familiarize themselves with the path of least resistance to get a website up and running and that’s it
Segment 2 - What Motivates Us
- Pure Enjoyment for coding
- Creating something from scratch
- Looking at examples of other people's work and striving to achieve something similar
- Looking through sites and trying to find motivation for your work
- Having someone or a group request something that you could make
- Small amount of adrenalin from fixing difficult issues
- Being part of the coding community
- Having people reach out to you for help or opinion
- Keeping up/learning new technology
Segment 3 - Motivation Blockers
- To many projects on the go making it difficult to focus on one
- Prioritize and use task management applications like Asana
- Running into a problem that takes several days to solve
- Take a step back from the problem and maybe try to complete a smaller easier task
- Difficult clients
- This is a tough one but try to understand where your client is coming from and if you can relate to their issues
- Programmers envy
- There will always be people that are better than you but also people that are still trying to catch up to your level. It is important to learn how to focus just on yourself
- Procrastination
- Just start something, start with smaller more accomplishable tasks and build up to the harder and longer ones.
- Links
- Dan Mace's Video: https://www.youtube.com/watch?v=dMTJRYmQkbc
- Joe Rogan's show with Derren Brown: https://www.youtube.com/watch?v=n_tpWrv76Q8
Web News - Scams
- Scams are becoming more frequent and more complex
- There isn’t a day that goes by that some sort of scam hits our email inboxes, often times being screened out by the spam filter, however, with complexity growing these scams often get through that level of defense, leaving the user to further filter out their inbox
- In addition to email scams, there’s phone scams, and even in-person ones that people have to avoid
- One thing that we’ve found is that email scams are getting harder and harder to notice - the one tell-all used to be an incorrect “from” address but even that is now being spoofed to look legitimate
- The other day I received a properly branded Cyber Monday email from what looked like the real amazon email, but it only lead to a website that was trying to get me to sign up
- The worst most recent one is someone impersonating us in an email - basically one of our clients will receive an email that says it’s from us when it’s not, and asks to download an attachment - meanwhile we’ll receive the same thing, an email that looks like it’s from our client also trying to get us to download an attachment
- We’ve even had a brand new business credit card compromised whilst it was still in a safe at home
- What are you thoughts on scams? Have you fallen for any? What can be done about this?
You can find us on...
Wednesday Dec 12, 2018
Design, Develop, Deploy
Wednesday Dec 12, 2018
Wednesday Dec 12, 2018
This week we discuss breaking out of our comfort zone to finally develop an app via a coding challenge.
Segment 1 - The Idea
- Parameters
- Our idea needed to be something that was accessible, yet popular enough to get in front of people and actually get downloaded
- In order to get downloads we knew the reach had to be decent, it had to be something that people would find useful, but it had to be simple enough in order to be developed quickly
- We decided to analyze our previous experiences in launching apps, specifically our Chrome App and Chrome Extension collection
- What we found was that, with very little promotion on our end, making a product that compliments an existing popular product gives you exposure through “osmosis”
- Specifically speaking, our most popular app is Multiple Accounts for Outlook.com, which allows people to quickly switch between multiple outlook.com accounts and their associated web apps, like OneDrive
- From there we took a look at our recent personal app experiences, as well as the Google Play store - our targeted app store
- All of this ultimately boiled down to the next subsection “The Decision”
- The Decision
- We’ve decided to do a minimalist reddit news app that strips away any distraction from actually reading the news
- We’ll get more into what I mean by “minimalist” in the next segment, but generally we’ll take away a bunch of the default reddit features that people can get distracted by
- We also have experience pulling information from reddit, via Mike’s joke generator that he used on his Introduction to Vue.js Guide (https://medium.com/html-all-the-things/introduction-to-my-vue-js-guide-ee9f4baad61)
- This app is far from reinventing the wheel, but it gets us going on finally releasing an app on Google Play, which we’ve been talking about for years, but never done
- The app will be monetized by ads, however, we plan on making the ads non-fullscreen and non-intrusive so that users aren’t bogged down by ads that have issues loading - this will be our first encounter with ads in an app as well so we’ll see how this strategy moves forward, maybe it’ll change, maybe it won’t work at all
- This app is rather simple in design and scope, but it’s actually accomplishing a great deal of smaller points that we’ve been aiming to get done specifically...
- Accomplishments & Goals
- Trying out a community event: One of our goals with HTML All The Things was to get the people involved to some extent if they wanted to try out new things for us. This coding challenge is the first of its kind for us, and we’ll be the guinea pigs to see if it works out - maybe if it goes well we’ll do a public version of some kind
- Social media coverage - Right now we post about our podcast episode releases, share people’s work, etc. However, we’ve been wanting to try and “live post” to an extent. Share work as it’s being completed, so we’re aiming to share a bunch of content during this coding challenge’s time window. Things like posts of our progress as they happen, maybe get some videos in there - we’ll have to see how it pans out.
- Releasing an App: We’ve been talking about releasing an app on Google Play for a long time and we’ve always brushed it off, this challenge should give us a push to actually get it done - even if we fail the challenge and don’t release the app on time, we’ll have dived into the app development so much that we’ll essentially have no choice but to release the app for fear of wasting all that time - forcing ourselves to take on the risk
- Furthering Our Knowledge: We’re planning on using pwa for this project, however, we’ll be needing some plugins and functionality that we’ve never used with it, so we’ll be learning on the fly
Segment 2 - Design, Develop, Deploy
- If we assume that our “decision” in Segment 1 is final, and we are actually doing an Reddit News App, let’s dive into how we would take this project on
- One of the most important things we need for this challenge is to identify what our MVP (Minimum Viable Product)
- Research, Design, Development, Deploy
- Research is complete already, app decision has been made
- Mission Statement: Simple Reddit new aggregate for people that want to quickly view the news in their area without any distractions.
- Parameters of the challenge?
- What can we do before/after?
- What we need to accomplish during the challenge?
- What’s the endgame?
- Design
- Use a css framework?
- Light/Dark theme?
- Simplistic no bs design to to make the news a quick scroll away
- Naming
- Features
- Pull posts from multiple subreddits and display as one multi subreddit
- Remove all unnecessary attributes like karma count, comments, etc to display a minimalistic news block
- Allow user to select their regions news
- Ability to share articles through android/iOS share menu
- Ability to view articles in webview without leaving the app
- Ability to switch between light/dark theme
- Ability to switch between Top, new, controversial, hot
- Develop
- Vue.js
- Vuex for state management
- No accounts, but local storage and Vuex for data persistence and resource sharing
- Vuex for state management
- CSS Grid for layout
- Vue.js
- Deploy
- Deploy on Nginx through docker on Digitalocean
Web News - Edge going Chromium?
- Microsoft announced it will be moving away form EdgeHTML to Chromium for a future version of the Edge Browser
- A Project Manager moderately confirmed that most chrome extensions will work
- New Edge will be on Xbox One, MacOS as well as Android and iOS
- Mozilla is not happy that Microsoft is giving Google a monopoly and has reaffirmed their efforts to provide users a choice
- Developers will now not have to support EdgeHTML
- Electron played a key role in the decision to switch to Chromium instead of Firefox
You can find us on...
Wednesday Dec 05, 2018
The Hustle
Wednesday Dec 05, 2018
Wednesday Dec 05, 2018
In this episode Mike & Matt discuss the entrepreneurial hustle, focusing in on the online freelance game for web developers and designers.
Segment 1 - Freelancing Online
- There are a lot of developers, writers, virtual assistants, and more that work freelance online
- As a small business, we have experience getting work from freelancing websites and other site resources, however, please note that we work almost exclusively in the web development/design segment of the business so your mileage may vary if you’re freelancing in a different field
- There are a lot of different websites and services that are set up for freelancers and their customers, most of them are basically job boards with full service solutions that contain various features such as:
- Portfolio Page: Set up a portfolio containing things like pricing per service, project showcase, history on the site (ie took successful jobs, their rating as a service providers, etc.), list of skills, and more
- Job Board: A list of jobs typically posted by potential customers, this job board generally has a bunch of topics ranging from app development to content writing. Customers can also post things like their budget, how much they’ve spent on the site with other freelancers - to judge how serious they are, and customers can also have a profile that proves how “legitimate” they are, or show off what other projects they’ve had done so developers have an idea of their expectations
- Payment Systems: A lot of these sites have some sort of payment system in-place that helps customers pay freelancers, and in turn, help freelancers get paid on time.
- Premium Services: Often times these sites are free to use, but have premium features that are for sale for customers and/or freelancers. Some of these premium features include: bidding for jobs (limited bids for free, freelancers can pay for more), premium job listing (appear at the top of search results)
- Services we’ve used include: Guru.com, Freelancer.com, Craigslist, and Kijiji
Segment 2 - Our Experience w/ Freelancer Online Services
- Guru.com
- We’ve applied to a few jobs on Guru without much success, however, we have had success via our portfolio on the site
- Once we listed our skills and experience on there, we generated a few leads from people contacting us right from our portfolio page
- Freelancer.com
-
- This was the first freelancing site that we tried, it seemed really popular and active so we went in head first
- We tried starting with smaller jobs, $100 or less, and ended up scoring a low-cost small adjustment job which ended up being an entire mess of a situation - mostly because the customer had an issue with his account and because we didn’t take a look at how Freelancer charges for their services
- Kijiji & Craigslist
-
- In the very beginning we tried to get some free advertising going in the “classifieds” space
- We took a look at what other people were posting on there in the web development space, most were quick $500 or less websites that were all-in
- Following in their footsteps we released a few different ads at different pricepoints, listing similar packages on our website
- This resulted in one long-term customer relationship from a person that called us from the ad, but wanted general development services - not the package that we had advertised
- We also got a call or two from people that wanted extravagant websites for extremely cheap, being offered $100CAD for an entire restaurant website at one point
- Craigslist did not result in any leads, only Kijiji in our experience
Segment 3 - Creating Projects
- This was a very important step for us as it gave us skills and portfolio work that we could then show potential clients
- We created Chrome Apps, Chrome Extensions giving us a niche area of focus
- Web templates and snippets have us experience with basic html and css
- Not only can projects potentially generate revenue if monetized but they refine and showcase many soft and hard skills such as project management and coding style
- A big thing for us is looking at projects as a potential revenue generators but with a worst case outcome of being a portfolio item that presents and refines our skills
- For us we always needed to keep the the timelines on these projects very tight otherwise we would get sidetracked and lose focus
- For Clicks to Riches we finished it within a week of intensive work
- For Html All The Things it was also only a couple weeks
- A project like Content Collector which has not been finished and is fully on the backburner suffered from loose timelines
- The chrome app projects that we did directly affected getting our biggest client
- Another flaw that we have when it comes to this is being hesitant to create a project:
- Based on how many similar solutions to something are out there
- Not knowing the audience well enough
Web News - Updates vs Stability
- What do users prefer when it comes to their applications or operating systems receiving updates.
- Having the same version for long periods of time with no features added or optimizations made but great stability
- Having new features and optimizations every month or so but have the chance to lose stability
- An example of fairly stable consistent operating systems with minimal updates would be iOS and partially android.
- They usually receive one large update a year with only minor security updates in between almost like a hybrid system
- Windows on the other hand will receive updates almost weekly that seem to be fairly untested and large updates also come multiple times a year and have the potential to introduce massive issues like with the last large scale fall update deleting a users documents folder
- Updates to platforms can also cause problems such as Webflow or Wordpress releasing updates which makes features and plugins behave differently.
You can find us on...