Three Problems for Remote Workers

Remote Work

Remote work has grown significantly since the COVID-19 pandemic. However, while many young workers are eager to embrace this change, there are numerous challenges workers should consider before they commit to remote-only jobs.

Larger Pool of Competitors

I live in a relatively small community. As such, there is a limited pool of both qualified workers and tech jobs. However, when jobs become remote only, the pool of job seekers can include anyone. Thus, remote workers will need to be far more knowledgeable in order to attract the attention of remote employers. Furthermore, this larger pool of candidates means that employers can seek out value candidates that may work for far less than you’re seeking. In this instance, the business benefits from remote workers due to smaller office costs, better quality candidates, and the potential to pay less. Conversely, the candidate may see fewer opportunities for less money.

Easier to Outsource

Beyond finding candidates in within the United States, remote jobs offer employers the ability to outsource their work to Latin America, Ukraine, Southeast Asia, or other areas with significantly smaller wage requirements. As above, this is actually a benefit for the employer and works against domestic workers finding jobs that pay fair wages. Even if employers choose to keep those jobs in the US, they can find developers in cheaper regions of the country. Because outsourcing can be significantly cheaper than domestic workers, a trend toward outsourcing could threaten entire industries of workers (such as computer professionals) who are accustomed to being well paid in the US.

Work Harder for Recognition

Because remote workers are unseen to many with the organization, they may struggle to gain recognition within their organization. Thus, remote workers may be forced to work longer hours and still be behind their office-working peers. Additionally, since remote workers have fewer opportunities to develop bonds with management and other coworkers, they are significantly easier to fire. Additionally, this lack of bonds as well as a difficulty in receiving recognition will ultimately lead to stagnant wage growth for many remote workers.

Conclusion

While most employees are increasingly fond of remote work, they may realize too late that their employer has gained more than they have. Furthermore, they may find it increasingly difficult to find work in a pool of highly-qualified candidates both domestically and internationally.

The Google Graveyard

Cemetery

Google is a much beloved tech company. Many people are familiar with their products such as Chrome, the Google search engine, and the Android operating system. However, behind these well-known products lies a graveyard of failures and tossed out products. Among the biggest of those failures was Google+ – the short-lived attempt by Google to enter into the social media sphere. However, countless other products have enter’s Google’s Graveyard. Google Hangouts, a once-popular chat application is slated to be shut down in November of this year, and Google Chrome Apps was killed off earlier this year. For a full list, you can visit the Killed by Google website.

Clearly, businesses must determine what products are profitable and which ones are not. Those found to be unprofitable will be cut to free resources for more profitable products. However, this becomes more difficult when Google has such a huge influence in the technology sphere. For example, Google is responsible for Angular, Go, Dart, and Firebase. Each of these tools is used by developers around the world. Should they become obsolete by Google, they may find their way into the Google Graveyard as well.

Even worse, Google has a history of making significant changes to their development tools – changes which often break everything. For example, the change from AngularJS to Angular made the former absolute. Likewise, changes to the Firebase API which migrated from Promises to Subscriptions ruined any previous code.

My concern, as a developer, is that Google’s track record for tossing out old ideas may one day leave programmers without the tools they need. One day, Google may decide to toss out Angular for a new, fancier framework. Or, maybe they discontinue their Firebase service and leave scores of applications without a home. As such, I am now slower to adopt Google technologies, because I’m tired of watching useful tools make it into the Google Graveyard.

QuickBooks Payment Bug

If you use QuickBooks online, please note that there is a bug on the new invoice screen. Unfortunately, if you click in the wrong text window, credit card payments will be automatically enabled. I have previously enabled ACH, but do not want credit card payments since they have significant fees that I don’t need to deal with in a service industry.

In the below screenshot, you will see a new “Tell your customer how you want to get paid” input box. Previously, the text box at the bottom of the invoice was a note for the customer. This has been moved down further. Notice how Bank, PayPal, and Venmo are enabled.

However, on this screenshot, I have clicked the text input and the credit card options automatically appeared.

On the left side of the screen, you will notice the option to turn credit card back off. However, as I worked through this with QuickBooks support, there were many times that these options did NOT appear. In which case I had to exit the invoice and create a new one.

While I made QuickBooks aware of this issue this evening, it will likely take time to resolve. So, if you use QuickBooks and do not accept credit card payments, be careful of the new interface and double check before you submit to a client!

The Value of an Idea

What is an idea worth? I am frequently approached by friends and acquaintances with ideas for software applications. Typically, the individual believes that the idea will generate huge revenue, and they will graciously share a portion of the profit with me for my time developing the software. In no instance does the individual suggest that they will help do the development, that’s what they need me for. Furthermore, they do not have the finances to hire a developer, so their hope is that I will invest my ‘sweat equity’ into their dream project.

There are a variety of problems with this proposal. First and foremost, I have bills to pay. As such, I can’t drop paying customers for hope a future payout. Furthermore, these projects typically involve niche markets with a limited number of customers. As such, it is necessary to examine a variety of factors to determine if such an idea really has any value.

To determine that value, you must first determine an estimate of all costs involved in producing the software application. This will include development time as well as a variety of other costs. For example, licenses involved for development, deployment servers, cloud hosting costs, costs to manage the services, etc. Then, costs to market or distribute the application must be considered as well, such as the cost to Apple or Google to distribute on their mobile platforms.

After the sum of all costs is determined, the individual must make a conservative estimate of the number of units sold as well as the anticipated price point. Once that is accomplished, the profit can be determined. Multiply the unit price times the number of units sold and subtract all costs. Once that value is determined, you can have an estimate of the value of a given idea. Sadly, in many instances, that value is well below $0. Thus, many projects are simply not worth the effort because they have no return on investment.

For the developer, it is rarely useful to develop an application based on the future hope of a payout. If you do, you will very likely end up on the losing side of the equation. For the prospective client, if you feel strongly that your idea is profitable, develop a business plan. Then, convince investors of the return on investment they can hope to achieve. Once you have investors, you can then go to a development firm with a far more profitable scenario – pay for the services you want and forget about the free app development.

Custom Software – A Case Study

Custom Software

I recently contracted the services of a company to help me become a GSA contractor. While the company is working on submitting my paperwork, they have encouraged me to start reaching out to potential government clients. To help me find those clients, the company offered me thirty days of access to their website that shows all federal and state opportunities as well as providing search functionality and email notifications. However, after the thirty day trial, the price of accessing their site is $200 / month or $2,000 / year.

The Problem

While the company strongly encouraged me to purchase their services, I am always skeptical of paying for things I don’t need. As a business owner, wasted money comes directly out of my pocket. So, instead of paying for their services, I decided to examine alternatives. First, I found that much of the functionality was already available on the governments System for Awards Management (SAM). Second, I found that registered users of SAM can request an API key to develop their own software.

Developing a Custom Solution

Given that all I wanted was a simple app to display matching opportunities, I requested an API key and started development. To begin, I had a junior developer create an Angular web app. In order to access the SAM API, I created simple Node-based REST service. Next, I updated the Angular app to function as a PWA so that I can install it on my phone.

Outcome

Now, after less than 4 hours of development, I have an app on my cell phone to display opportunities matching my criteria. Or, I can access the site from my computer and go directly to SAM if I want more information. While there are many upgrades I could make in the future, the cost of developing my own custom software was substantially less than paying a third-party to use their service and delivered exactly what I needed.

Advice to Businesses

Today, a significant number of businesses offer Software-as-a-Service. While this model is great for the software provider, it may be less optimal for the consumer. Over time, the total cost of SaaS continues to rise for the consumer while the benefit remains largely the same. However, custom software allows for ownership of the application without a growing price tag. Furthermore custom software can address issues unique to the customer which may not be addressed by a Commercial Off-the-Shelf system.

In order to make the best decision for your business, consider the monthly cost of the application over a several year period. Then, consider the cost of lost productivity due to missing functionality. Once those costs are totaled, find out the cost of developing custom software to meet what you actually need. If the cost of custom development is less than the commercial solution, consider creating your own application.

Software Project Billing Models

Bookkeeping

Regardless of the type of work done by a service organization, two payment models exist: project-based and hourly. Each of these models works better for certain kinds of projects, and each model has pros and cons for both the buyer and the service-provider.

Service Billing

For simple services that can easily be estimated accurately, a project-based rate makes sense. Examples may include the cost of a car wash, painting a room, or changing the oil in a vehicle. In each of these instances, the actions of the service-provider are nearly identical with each implementation of the service provided. Furthermore, the time required is either constant (changing the oil in a car) or is easily measured based on a parameter such as room size (painting a room).

Other types of projects may be more difficult to accurately estimate. For example, gutting and remodeling a bathroom may require an estimate that is highly dependent on how the project progresses. As the contractor moves through the project, unforeseen issues may arise such electrical wiring problems or rotten floorboards that could not be known prior to the start of work.

Software Development Models

While many customers may want a project-based price, the reality is that such estimates are often inaccurate. Much like the wiring issues or rotten floorboards found by a contractor, issues often arise in software development. Furthermore, since every project is unique, developers are often forced to provided what is really nothing but an educated guess into the timeframe.

This reality has been acknowledged by most software companies as they have moved form “waterfall” to “agile” development methodologies. In waterfall, timeframes and budgets are defined before software development begins. However, companies found that these plans were rarely accurate. In fact, a common problem was budget overruns and late project delivery.

To solve this problem, companies moved to “agile” development. In this model smaller pieces of work are performed and deployed over and over again to build an application iteratively. In this model, the customer begins using the software as soon as possible and has the ability to change course as needed. For example, a customer may find that an “essential feature” is really not important once other aspects of the project are delivered. Or, they may find that an essential feature is missing which prevents required functionality.

Software Billing

Given that software quotes can be highly inaccurate, software companies and clients are left to determine how to best bill for software services. In a project-based model, the development firm takes on all the risks of providing an accurate estimate. However, knowing that estimates are frequently inaccurate, the firm will likely pad the estimate considerably to account for those issues. Furthermore, the software firm will have a vested interest in performing the least amount of work to accomplish the client’s vision. This may result in poor, unmaintainable code or buggy implementations as well as the client paying a higher overall hourly rate.

Conversely, if the software company bills on an hourly rate, they may have less of an interest in performing their job efficiently. Instead, they may want to run the clock to bill more hours. While the client has a better expectation of quality code, their bill may be inflated.

Since both models can be exploited by software development firms, it is important to find a developer you trust. Ultimately, I prefer an hourly model. This allows me to change course as the client’s needs change. I have found that customers rarely have an accurate idea of what they want. However, as the project progresses, and their vision comes into focus, clients are able to provide meaningful direction. If I’m forced to provide a project-based price, the client’s feedback will likely be ignored since their changes would constitute a change in project scope – something not allowed in a project-based model.

Conclusion

As a customer, an understanding of both models can help you interact with a software provider. While your first thought may be that the software company is trying to run up the bill with extra hours, any decent developer can provide you a ballpark figure for your project. However, know that such an estimate may be subject to change based on unforeseen problems as well as changes in your requirements as the project moves forward.

Red Flags in your Job Search

Job Search

Running a business full-time has been an incredibly rewarding experience for me. It has offered me substantially more freedom and control of my life than any other job has. However, I did consider reentering the workforce when the COVID pandemic started because I was unsure if my business would survive. When I was interviewing with companies, I observed several red flags that made me reconsider those businesses.

Unlimited Paid Time Off

A new trend in tech companies is unlimited paid time off. This sounds like a benefit, but I’m incredibly skeptical. Do you really believe you will be able to take unlimited time off? I doubt it. Furthermore, since you have not actually ‘earned’ any paid time off, you can likely expect management to complain about the vacation you are taking. Looking for that promotion? Jane in the adjacent cubicle didn’t take as much time off this year. Leaving your job? Don’t expect to get that nice bonus payout for your accrued vacation since you don’t have any. Frankly, I am convinced that unlimited PTO is just a scheme to have you take fewer days off, not more.

Concerns About Side Business

When I considered reentering the workforce, I was questioned about how long it would be until I closed down my business. While I had run my company as a side gig for years, interviewers didn’t want me to do that again. Why? Unless you intend to have me work 60+ hour weeks, what does it matter if I have a side business that does not compete with you? Conversely, I did have one individual actually say that my side business was a plus because it suggested that I would be learning more and growing professionally even outside of work hours.

Burdensome Legal Contracts

During my career, I have seen too many burdensome legal contracts. In one instance, a company wanted me to work as a subcontractor for them. Yet, they insisted that I sign both a non-compete agreement and an intellectual property agreement giving them ownership of everything I did. However, the business ignored the fact that I was operating in the same space they were and that signing a broad non-complete agreement would have ended my business. Furthermore, their intellectual property agreement gave them rights to all work I did – not just what I was doing for them. Thus, if work I performed for another company was patented, this company would have been able to claim ownership. Always be careful of the exact wording of contracts, particularly if you run a side business.

Pushy Recruiters

On one job, I saw too many red flags and opted out of continuing the interview process. Then, the recruiter started contacting me with high-pressure techniques to continue. She told me that the company’s stock options would be ‘life changing.’ The reality is, I truly doubt that the stocks they would have given me would have changed my life. Furthermore, I recognize that the recruiter gets paid to find candidates. Her high-pressure tactics were really just a way to get her a sizable commission if I were to take the job.

Conclusion

When you look for a job, never forget that the employer’s objective is to make money from your work. As such, they have a vested interest in minimizing your pay and benefits while maximizing the work that you do. Too many Americans already work excessive hours, and a disturbing number of businesses seem to encourage such behavior. If you are looking to change jobs, consider what you see in the interview process as well as what you can research online about the company before you make the decision and always keep your eyes open for red flags. Remember – you should work to live, not live to work. Make sure the company you work for has a similar attitude!

Dangers of Artificial Intelligence

Risk/Reward

With the growth of artificial intelligence, one of the subjects we don’t discuss enough is the possible dangers that it may create. While AI may help us better drive our cars or provide a rapid, more accurate diagnosis of medical issues; it may also create problems for society. What are those problems and what should we do to minimize those risks?

Poorly Tested Code

As a software engineer, my biggest worry is that poor-quality code will be widely deployed in artificial intelligence systems. Look around today, and you will see what I mean. I use a Mac, and the current version of Safari is riddled with bugs. Indeed, nearly every application on my computer has several updates per year to address bugs.

This is caused, in part, by the demands of businesses. I have worked for many companies over the years who desired to push out a new version even when some known bugs existed. For the business, this is necessary to ensure they beat the competition to release new features. However, this acceptance of buggy software can be disastrous in the world of AI.

For example, what happens when the artificial intelligence system misdiagnoses cancer? For the individual, this could have life-altering effects. What about the self-driving car? Someone could be hit and killed.

How good is good enough for artificial intelligence? I don’t have an answer, but it is something businesses need to strongly consider as they dive deeper into the world of AI.

Deep Fakes

A growing concern for artificial intelligence is how it could be used by organizations or political entities to persuade consumers or voters. For example, a political adversary of the president could create a fake video of the president engaged in some behavior that would bring discredit upon him. How would the electorate know it is a fake? Even worse, how could our nation’s enemies use fake videos for propaganda purposes here or abroad?

Employment

In many ways, advances in artificial intelligence are very similar to the changes during the industrial revolution. As AI becomes more advanced, we can expect to see more and more jobs performed by intelligent robots or computer systems. While this will benefit businesses who can cut payroll, it will have a negative impact laborers who can easily be replaced.

What Should We Do?

This is just a very small list of potential issues. Indeed, numerous techies have discussed countless other risks we face as we adopt more AI-based systems. But what should we do? The value of AI to our lives will be profound, but we must start to consider how we will address these challenges from both a legal and a societal perspective.

For example, we may need to create laws regarding liability for AI systems to ensure that businesses provide adequate testing before deploying systems. But problems like deep fakes and employment aren’t as easy to fix. We can certainly provide training to individuals who are displaced by AI, but as more and more jobs are replaced, where will all the workers go?

I don’t have the answers. However, I think it is time for techies and non-techies alike to start asking the questions so that we can reap the benefits of improving artificial intelligence while mitigating the potential risks

Getting an IT Job Without a Degree

I frequently talk to high school students or young adults who are hoping to land a lucrative IT job without a degree. Unfortunately, few of these individuals have the skills necessary to get the job they want. While many high schools now offer an increasing number of computer courses, rarely do they provide the depth or breadth of skills required by employers. However, this does not mean you need a degree to work in IT. In fact, some of the best techies I know started their career without a degree.

If it is possible to get a job without a degree, how do you do it? First, it’s important to recognize that IT jobs are broadly divided into two groups – system management and software development. System management jobs involve the management of computer systems, networks, servers, and other computer hardware. Additionally, cybersecurity professionals fall into this category (although there is often some overlap with software development skills). Software development jobs include web developers, software engineers, mobile application developers, and a variety of other jobs focused on using computer code to create applications for users.

Information Technology Certifications

Typically, individuals with system management jobs have degrees in Information Technology Management. However, those without a degree can show their competence with a variety of tech certifications. Some of the most widely known certifications are from the Computing Technology Industry Association better known as CompTIA. This includes CompTIA’s most well known certification for desktop maintenance and support – A+ certification. However, CompTIA offers a variety of other entry-level certifications as well. Network+ certification shows competency with network management and Security+ demonstrates basic security knowledge.

In addition to CompTIA certifications, a variety of other organizations provide IT certifications such as Cisco’s CCNA, Amazon’s AWS Certified Solutions Architect, and Google’s Associate Cloud Engineer. These certifications – unlike those from CompTIA – are vendor specific. However, the skills these certifications demonstrate are highly valuable to businesses.

Software Development Projects

Software developers typically have a bachelor’s degree in Computer Science. And, while there are some certifications available for programmers, they are not as widely desired as those for IT management. As such, it’s more difficult to demonstrate programming skills to a potential employer. However, this can be overcome by providing sample code on GitHub or BitBucket. If you want a job as a developer, spend some time creating professional-quality software applications that demonstrate your knowledge. Then, ensure to include a link to your repository in your resume. While you learn to code, don’t neglect learning SQL, HTML, and JavaScript. During the last decade, these skills have become standard for nearly all software development jobs.

I’ve talked to many young men who would like to become game developers. For them, I would recommend you consider your background in math and physics first. While there are libraries that make game programming easier, it’s hard to get far without some knowledge of matrix manipulation, trigonometry, gravity, and other topics that require a solid background in math and science.

Conclusion

While most people enter the IT world with a bachelor’s degree, it is possible to find good jobs without a formal education. If you want to work in the system management field, focus on certifications. If you want to work in software, focus on projects you can demo to show your ability. While either of the above will require effort, there really are no shortcuts in the IT world. Furthermore, if you are expecting an employer to pay you the high salaries common to the IT world, your efforts will be well compensated.

Security Consulting & Testing Services

For most of my professional career, I have been involved in security in one way or another. When I started my career in the Army, I trained as a Unix System & Network administrator. During that time, I often tinkered with security on our systems. In my first job outside the Army, one of my responsibilities was network security as well as managing offsite backups. Later in my career, I would be responsible for testing software applications for PCI compliance.

This year, I decided to start gaining certifications in the security realm. In March, I earned CompTIA’s Security+ certification. Then, in May, I took the Beta version of CompTIA’s PenTest+ version 2 exam. Today, I received notification that I passed that exam. These certifications shows that I am qualified to test systems for security issues and provide feedback to customers wanting to ensure their systems are as secure as possible.

In addition to computer security testing, I have previously studied locksmithing and physical security. Adding these two skills together gives me lots of avenues to approach security and vulnerability testing for clients – both on their networks and their physical facilities.

If you are interested in having your network security tested, please reach out to Talixa Software & Service, LLC for more information.