SparksWare
Software Demystified
Software Demystified
Mar 13th
In my Independent Worker Series kickoff post, I introduced how the global economy is changing. Now I’m going to start to get to the practical side of this equation. I work with software and my strengths are designing and building systems and leading and working with software teams. I am not well versed in accounting, tax laws or other businessey practices. For me, these were the most intimidating factors when I considered branching out on my own. I was under the false impression that it would cost a lot to build the “infrastructure” I would need to support my own business. My goals when starting up my companies have been to keep costs as low as possible and choose tools that can scale as I need them. I have worked independently in both the US and in Canada and now I’d like to share the basics of getting started and keeping your books for your new business.
There are two types of structures that exist both in Canada and the US that the independent worker might consider, these are the corporation and the sole proprietorship.
A sole proprietorship is the easiest way to start doing business for yourself. The biggest advantage is that in most cases you need not do anything but start providing your good or service. You can just start doing business under your own name and, as long as you have an SSN in the US or SIN in Canada, you can file your taxes. Since you can file your business income with your personal taxes in either country, the cost of administrating a sole proprietorship is extremely low.
A sole proprietorship gets a business off the ground quickly and is easy to maintain, but there are advantages to incorporating. A corporation is a distinct legal entity separate from its owners; therefore, it allows extra protection for the independent worker because the corporation is held liable. In the US I chose to work as a sole proprietor since my potential liability is low and I carry Errors and Omissions insurance. On the other hand, in Canada I have decided to incorporate because there are huge tax benefits since I am an American working in Canada. Having a corporation being the entity doing business and being paid for work allows extra flexibility for how the income of the business is handled. This can lead to some better tax situations for some individuals. A drawback is it is much more expensive to administer a corporation since it is a separate entity from the person doing the work. It is also subject to laws that do not apply to individuals around how taxes are reported and paid. This is where I would seek the consultation of an accountant. A corporation generally costs between $500-$2000 to set up depending on the type and a sole proprietor generally has no upfront cost to establish.
My recommendation is that if you want to try going out on your own or you aren’t sure how long you’d like to work independently, be a sole proprietor. If you plan on staying independent or doing independent work even if you are employed by someone else, I would incorporate. Also, depending on your type of work and the potential liability involved, you might choose to incorporate over being a sole proprietor. You can always start as a sole proprietor and transition into a corporation later, so there are options.
For each state or province there may be slightly different laws for setting up your business, check these links for resources for your particular situation.
Canadian Business Structure:
US Business Structure
Bringing in the money is, obviously, a vital part of any new venture. I considered using spreadsheets, quickbooks and looked at so
me other pieces of accounting software, but it wasn’t until I found FreshBooks that I knew I had met my accounting match.
FreshBooks is an online service who’s logo is painless billing. This software has the elements I try to build into my own software: it is amazingly simple to use but has an alarming amount of flexibility and power. With FreshBooks you can manage clients, create project estimates, track time against a project, set up multiple projects and tasks, create and send invoices, track expenses, and report on all your finances. FreshBooks has tiered pricing as many software as a service packages do. For free, you get all the functionality of FreshBooksfor up to three clients and you cannot manage staff. The tiers go up from there, but this meets my goal of little to no cost initially and then scales as I need more from the service.Now that the invoices are out, there needs to be a way to get the money in. I accept money in three ways, a classic check, via PayPal, and credit card via PayPal. The goal here is to allow customers to pay in whatever way they are most comfortable. Being flexible on how payments are received tears down barriers on why a customer should do business with you. Flexible payment options lead to more potential opportunities. In my case I have knowledge that a team in a large corporation might find valuable. If I accept credit cards and price my training correctly, a director may be able to do business with me without any further approvals if I price my training under his discretionary limit he’s allowed to use with his corporate credit card.

In order to properly report income, expenses need to be tracked rigorously. I put a lot of rigor into my code, but I tend to lax when it comes to keeping receipts. To my surprise, I found this to be a common situation and there is a great company that is helping to alleviate this headache, one blue envelope at a time.
Sheoboxed.com is exactly what it’s name says: an online shoebox for receipts. Sheoboxed takes physical receipts, images of receipts and digital receipts and automatically categorizes and summarizes them all into your digital shoebox. They use OCR technology backed by real humans who verify the data is correct on each receipt. Also, they are international so when I submit a receipt in Canadian funds, they automatically apply the exchange rate at the time of the receipt and convert it to USD for me. It is easy to create expense reports right from shoeboxed as well as export your data to a number of services, including FreshBooks. Paying customers get a blue envelope from shoeboxed and can send in all their physical receipts and shoeboxed will scan, extract the receipt information, and categorize it all as part of their service. They also accept invoices and business cards, essentially digitizing everything they come in contact with.
Another pro tip for easy expense tracking is to dedicate a credit card that is used only or business expenses. Having one source for all your spending records for your company makes it very simple to reconcile against receipts. Many tools will automatically import credit card statement data so it stays up to date automatically.
Now it’s time to pull it all together. Using these tools to keep close track of income and expenditures will make tax time a breeze.
If you’re in the US, there is another amazing tool that will take the stress out of tax time. Outright.com pulls in all your expenses and paid invoices from a number of services including FreshBooks, shoeboxed, PayPal and your business credit card. It takes all this data and keeps simple numbers to track how your business is doing. Outright also aids independent workers by reminding them when quarterly taxes are do, automatically generating the paperwork for the quarterly and annual taxes, and providing the amounts needed to pay. Also, if you have sub contractors who do some work for you, it will create all your 1099 forms.
I haven’t found a similar tool in Canada, so I’m using FreshBooks as my source for all accounting by keeping my shoeboxed expenses imported once every billing cycle (every two weeks) and using the freshbooks reporting to produce the profit and loss numbers. Without outright, I am working with an accountant, also another independent worker!
With these tools I am able to spend 95% of my time on performing actual billable project work and very little time on pure business overhead. Also, I am using the free tier of most of these services so my recurring expenditures remain near 0, but I have the security knowing I can shell out some cash when my business explodes and get the service I need.
In my next post of this series, I’ll layout the awesome tools that exist for collaboration on projects. Check it out in:
IWS Part 2: Collaberate
Mar 13th
As always, the world is evolving. And with this evolution the way we get work done has rapidly changed also. I remember my father waking up every day at 5am, working a 12 hour day at the factory and coming home. Like clockwork. He did this for his entire working life and it served himself and our family well. Many people today would consider themselves lucky to have this kind of security or consistency with their job, but I consider myself lucky that I have been able to evolve away from this model and recognize that there is a new way of working rising up. And when I say a new way of working, I really mean an old way of working that now has some stellar new tools. Here is a great quote from Robert Paterson’s The End of the Job – Networked Economy post:
Back in 1800, 80% of people in America worked for themselves. The rise in industrialization created the Job as the new normal. By 1980, the apogee of the Industrial model, 80% of us had jobs. But look now at what has happened in only 40 years. 40% of us now work for ourselves.
Prior to industrialization, it took many people working independently to accomplish a task. Say you want to build a wagon. the black smith would make the springs, the ribs to support the cover and the axels. The carpenter would build the wheels, the wagon box and tongue. Then a third party might build the canvas top and yet another person might actually assemble the wagon for the person who actually wants the wagon. So in this example there is a hyper local set of skills to accomplish a task. All of these people worked for themselves and the town would have a micro economy to support itself.
Then came industrialization and companies needed guaranteed skill sets on their time so they employed people with those specific skill to support mass production, this is when having a job and an employer became the norm.
Now the work force is leaving this behind and moving back toward an independent way of working. Workers today are just like the artisans of the 1800s, the difference is now there are tools and infrastructure to support the micro-economy that existed in a single town to be on a global scale. My expertise is software, but this model is true for a number of skilled workers. We are now a part of a networked workforce where companies and individuals have a need and a partnership is formed. This lasts the duration of the need and then both parties move on. Rinse and repeat.
So that is some background on where things are and where they will continue to head until some new revolution turns our economy another direction. We have the ability to work with others and share our wares with nearly anyone on the planet. As I mentioned before, I’m a software professional so there are lots of business type tasks that I am not qualified to undertake. My goal with this series of articles is to share a set of tools to aid any independent worker with the tasks that might not fall under their expertise. So grab a cup of coffee, turn down the lights and join me on this journey.
IWS Part 2: Cloud Collaberation
IWS Part 3: Where to Work
Jul 19th
It’s a big one today.
| The Netflix Corporate Culture Presentation – bostondave’s posterous
via slideshare.net Can I take the Netflix name and “find and replace” it with my company name in much of this document?
|
| “ | @binnybansal @sachinbansal81 #Netflix’s New Culture and Management Philosophy …. An Awesome Read….. http://slidesha.re/bEhdOl | |||
|
| “ | #Netflix culture presentation : Culture http://t.co/kGLw0c6. Interesting – for sure! | |||
|
| “ | I like the Keeper Test — Netflix Culture http://t.co/p4oCzQy #netflix #corporateculture #in | |||
|
| Are You a Whole Team? | Scrum Agile Project Management Expert
This article proposes four “smells” that might indicate that you’re not optimally practicing whole-team approach in your Scrum software development project Authors: Matthew R. Philip and Lori Cross, Asynchrony Solutions Taking a whole-team approach has proved vital to getting the most out of teams developing software using agile practices.
|
| “ | java.net bloged about java 7 launch event across continents ! #MoroccoJUG is here also ! very awesome! #javausergroups | |||
|
| “ | Check out some pictures from our succes java 7 party in Casablanca by jully 16th http://t.co/S3gtEh5 #javausergroups #J7Morocco | |||
|
![]() |
Hadoop & Startups: Where Open Source Meets Business Data | TechCrunch
This guest post was written by Kovas Boguta, Head of Analytics at Weebly. In 2009, Kovas wrote a guest post about visualizing real-time social structures. A decade ago, the open-source LAMP (Linux, Apache, MySQL, PHP/Python) stack began to transform web startup economics.
|
![]() |
TitaniumGetStarted – openmobster – OpenMobster/Titanium App – OpenMobster – Open Source Mobile Cloud Platform – Google Project Hosting
Related Links: Titanium Area, Get Started, Beginner This should make the OpenMobster Cloud Server up and running for the Titanium App. For security reasons, before apps can use the OpenMobster Cloud, the device must be first registered with the cloud. This is done using an Activation App that comes with the OpenMobster distribution.
|
TDD, Bugs and Errors, Oh My!
| How to return default(Type) in runtime — a TDD example in four unit tests | Agile Zone
Like this piece? Share it with your friends: I’ve found this question while going over my old StackOverflow answers: I’m using reflection to loop through a Type’s properties and set certain types to their default. Now, I could do a switch on the type and set the default(Type) explicitly, but I’d rather do it in one line.
|
| Responsible Bug Reporting and Triage
If you’ve ever heard, “It works on my machine,” “It works as designed,” or “But we need to ship Tuesday!” this article’s for you. Here’s how to train users and QA to report bugs in a manner that helps the developers actually fix the problem.
|
![]() |
CWE – 2011 CWE/SANS Top 25 Most Dangerous Software Errors
The 2011 CWE/SANS Top 25 Most Dangerous Software Errors is a list of the most widespread and critical errors that can lead to serious vulnerabilities in software. They are often easy to find, and easy to exploit. They are dangerous because they will frequently allow attackers to completely take over the software, steal data, or prevent the software from working at all.
|
Jul 15th
It’s a light load today.
![]() |
Bad Code: The Invisible Threat | Javalobby
One of the first things said by the non-believers of the software craftsmanship movement was that good and clean code is not enough to guarantee the success of a project. And yes, they are absolutely right. There are innumerable reasons which would make a project to fail ranging from business strategy to competitors, project management, cost, time to market, partnerships, technical limitations, integrations, etc.
|
Innovative or Just Another Sign-in Method?
| InfoQ: Mozilla Proposes to Sign-in Only with the Email Address, No User ID or Password Required
Posted by Abel Avram on Jul 15, 2011 A new authentication system, dubbed BrowserID, from Mozilla promises to solve the basic authentication needs, but its success highly depends on its adoption. Mozilla wants to simplify the authentication process when connecting to websites by using just an email address without the need to enter an ID or a password.
|
![]() |
SAP joins the OpenJDK | Javalobby
OpenJDK, Oracle’s open-source Java SE implementation released under the GPL license, gained another contributor today as SAP signed the Oracle Contributor Agreement. As most of you know, the OpenJDK aims to release their open-source implementations of the Java SE with related specifications as they are produced by the Java Community Process (JCP), which SAP is already an active participant.
|
Jul 13th
Hopefully fiber will make this regular again…
![]() |
“I’m a technical lead on the Google+ team. Ask me anything.”
Our stack is pretty standard fare for Google apps these days: we use Java servlets for our server code and JavaScript for the browser-side of the UI, largely built with the (open-source) Closure framework, including Closure’s JavaScript compiler and template system.
|
Time to check out the new runtimes!
![]() |
Flash Player 11 and AIR 3 beta”s out on Labs > News > Flash Magazine
Adobe just gave us a summer present to play with – new runtimes! The Flash Player 11 beta is fully featured, containing all you need to get started. The AIR beta is limited to just the runtime (no SDK) and is provided only to test existing content.
|
![]() |
Enter the Adobe AIR App Challenge, Sponsored by Sony | Adobe Developer Connection
As part of their expanded, long-standing relationship to deliver great content experiences for “Sony Tablet” devices, Adobe and Sony have announced the Adobe AIR App Challenge, Sponsored by Sony to drive the creation of innovative Android applications for the two models of tablet devices by offering developers a chance to win up to US$130,000, premium promotion on Sony Tablet, prerelease access to Sony Tablet prototypes and the latest version of Adobe AIR, conference passes and paid travel t…
|
API Lessons Learned and the new Merchant API
| APIv2: Woulda, coulda, shoulda | Foursquare Engineering Blog
As we sunset foursquare APIv1 and announce some amazing new milestones for APIv2, now seemed like as good a time as any to reflect on some of the decisions we made in APIv2 and see how they’re holding up.
|
| “ | More powerful tools for businesses. Introducing our Merchant API. http://t.co/ZGwNVS0 | |||
|
JDK 7, Lucene, JBoss OH MY!
![]() |
JBoss Application Server 7… Download NOW! – JBoss Community
The core developers for JBoss Application Server 7 hosted several webinars to demonstrate what’s new and amazing about JBoss AS7. The webinars origninally aired on June 29th and ran through July 1st but don’t worry, you can still view them. Presenters included; Jason Greene, Pete Muir & Dan Allen, Brian Stansberrry, Bela Ban & Paul Ferraro.
|
![]() |
Lucene’s near-real-time search is fast! | Javalobby
Like this piece? Share it with your friends: Michael loves building software; he’s been building search engines for more than a decade, and has been working on Lucene as a committer, PMC member and Apache member, for the past few years. He’s co-author of the recently published Lucene in Action, 2nd edition.
|
| Installing OpenJDK 7 on OS X | Javalobby
Last week, I scanned an article and saw there was a Java 7 Webinar. At first, I thought Java 7 was released, but soon after realized it was a Developer Preview. Unfortunately, the download page doesn’t have support for OS X.
|
| 5 Tips to Reduce Unit Test Defect Rates | Agile Zone
Like this piece? Share it with your friends: Five quick points about unit tests that will reduce your defect rates. If you just did the above you would be doing very well indeed. Why would you schedule your test runs on an hourly schedule? Always hook unit tests into the commit.
|
ScreenScape secures a cool 6 mil.
![]() |
Hartco Announces Investment in ScreenScape | ScreenScape Networks
Press Release Details Thumbnail Logo: Hartco Inc. (TSX: HCI) today announced a $6 million investment in ScreenScape Networks Inc. Hartco Announces Investment in ScreenScape Hartco Inc. (TSX: HCI) to invest $6 million in ScreenScape Networks Inc. MONTREAL, QUEBEC and CHARLOTTETOWN, PE, July 13, 2011 — Hartco Inc.
|
| “ | ScreenScape gets $6 million investment from IT services company #DigitalSignage, #dooh http://t.co/BQKHqUl | |||
|
| “ | congrats to @screenscape networks on today’s good news. one of pei’s great young IT companies. @jceden | |||
|
| “ | ScreenScape gets $6 million from IT services company http://www.sixteen-nine.net/?p=7084 #digitalsignage | |||
|
| “ | RT @noodls_sHouse: $HCI Hartco Announces Investment in ScreenScape http://www.noodls.com/view/34F3CEFBC667BD2080C8E95D0455449103D1876C | |||
|
Apr 6th
Technology doesn’t slow down. It moves at break neck pace and if you don’t stay with the wave, you’ll be lost in the surf. In my experience, you have two choices. You stay at the forefront and fresh, or you choose a technology and specialize and risk becoming stale. The latter does have it’s benefits and risks, but that’s not the topic of this post. What I’m going to discuss is staying in front in technology and in doing so, constantly learning and doing something that you might not have done before.
One of the strengths of any strong software developer is the ability to learn, develop and apply new technologies as the arise and are the correct solution for a problem. Overcoming intimidation associated with the unknown is a crucial trait that will accelerate any technologist into the upper tier in their field. As I moved through my career, I found myself thinking of a lesson my music teacher shared with me when I was very young. After I learned the basics of music and my instrument, we had a lesson about sight reading new music. This is when you get a piece of music that you’ve never seen before and most likely haven’t heard before and are asked to play it. When first asked to do this I was a bit overwhelmed and unsure of how to approach the problem. He laid it out simply:
“Dustin, you have played this before.” I looked at him perplexed. He said “You’ve played every note in this piece, you understand the language of the music on the page. You just haven’t played the notes in this order yet.” It started to dawn on me. The music started to come together in my head and my fingers instinctively knew what to do. I played the music I had never seen before.
Little did I know at the time how applicable this would be to my chosen carrer in computer science. In university, I learned the basics of logic and programming languages, but what I really learned was how to learn and stay in front of technology. Just as I had built a foundation in music that would allow me to understand and perform any piece put in front of me, I had built a foundation in technology that allowed me to move rapidly and learn new tools to solve the problems in front of me. So now my music are the technical problems I need to solve and my notes are the bits I’ve learned to manipulate along the way. I understand the underlying concepts of solid software, now I just have to arrange the bits using the tools available (or by creating my own) to compose a solution to the challenges I face.
So maybe this post name is a bit misleading. In software, there are many problems that will be solved for the first time and various technologies there to accomplish this goal, but the reality is that the foundation is the same to achieve these goals.