Before Contracting, Do Your Research

Within the past couple months, I’ve been dealing with junior devs who have taken on side gigs and signed up for contracting gigs without really knowing what they were getting into.  As someone who owns her own LLC and can do the side gigs, I find myself explaining to them things they should have learned about before deciding to go the contractor life.  So these are some of my thoughts and experiences.

Build a Support Network

Whether you are going completely on your own or doing side gigs while working a regular job, be sure that you have someone who can mentor you and can give you advice in situations common to contracting.  Find someone who understands the business side – timekeeping, billing, contracts, business pipeline, etc. – and who can help you understand it better.  Find someone who understands how to sell yourself and make yourself stand out.  Find someone who can help figure out problems such as work/life balance.  Don’t try to go it alone without a support network.

2 Key Allies – The Accountant and The Lawyer

Unless you truly are trained in these, you need to have an accountant and a lawyer on your side.  Some may meet virtually, some in-person, and some may mix both.  Go with what you prefer.  The accountant is the one who can help you figure out things such as setting up your accounting books, making sure AR/AP is set up properly, making sure you’re taking the right taxes, offering guidance if you are charging taxes, and everything in between for basic financial transactions.  The lawyer is the one you go to with the contracts to make sure that they’re written so that the best situations for both parties are represented.  Don’t want non-competes?  Specifically worried about who owns the work at what point? There are lawyers of various types out there to help with that.  There are certain things you can and cannot say in contracts, and lawyers are great for getting that in place.  There’s more to lawyers than just a courtroom.  Also, when forming a company, you may find an accountant or a lawyer that can give you their perspective of the various types out there – a sole proprietorship versus a partnership versus an S-Corp versus other types out there.  While these professionals may be costly, at the same time, it would be more costly to be without them and mess up any of their functions.  They are well worth the investment.

Know that it can be Feast or Famine

Contracting has its ups and downs.  Sometimes, business is awesome and the pipeline is overloaded.  Sometimes, business is down and the pipeline is empty.  It’s a balancing act in finding what works for you.  Know that those extremes happen, and be prepared for what happens if the worst points come and how long you can sustain those.  Know your audience and how to market to them – that will help you in your advantage.

Benefits… or Lack Thereof

Something that some of the younger ones are surprised with is that there isn’t health insurance, life insurance, training, mentorship, or {insert some other company perk} here when you’re contracting.  While you might get a flexible schedule or a certain rate or being able to pick and choose what you work on, you have to remember that – as a contractor – you typically won’t get the benefits that your clients have.  It is up to you to provide for yourself – health insurance, life insurance, business insurance, etc.  Want to stay up on your skills or learn new things?  The cost – and not just monetarily, but time as well sometimes – of conferences or things like Pluralsight or DevIQ also need to be factored in.  When you have to cover those yourself, you need to consider the cost of those when figuring out your rates.

Doing Research

Going into contracting wasn’t something I just jumped into – though when I had quit my job to go contracting full-time originally, it may have seemed like that.  I spent a couple years observing my friends in the field.  As much as I tease him for giving that workshop everywhere, I enjoyed Michael Eaton’s “Going Independent” workshop. I talked with some of my business owner friends and mentors in the field.  And I made sure that I had all my ducks in a row before making that leap.

So if you’re going the route of contracting, be sure you do the research before getting yourself into a tough situation.

Epilogue

I was contracting from late 2011 until 2016, when I took a position full-time where I am now.  I still have some work that I do under my LLC from time to time.  Would I be a contractor again? If it was the right time and all the cards lined up, absolutely.  But for now, I’ve done my research and am full-time with a company that aligns with my own career goals and allows me to bring out many of my tricks without having the administrative duties of timekeeping and billing.  However, with my experience, I have a feeling I will be talking with more who have entered into contractor life without really realizing what they’re getting into.

Finding Internships in the Tech Realm

A question was recently posted on Twitter on how we got our first jobs in the industry.  This was my response:

However, I had internships pre-college and throughout college and figured I’d share those stories as well.

Internship doing Datasheet QA – Pre-College

One of my brothers’ friends’ dads worked for a large company in the area, dealing with software-related things.  He talked with me and his team interviewed me, having me QA their database, checking that the data in the database matched the datasheets in the specs.  As someone who has an eye for data, this was a great step in the right direction.  While at this place, I found myself moving to a project with a contractor, learning how to migrate from an Access database to a SQL database with a Visual Basic front-end.  I was already familiar with Access and Visual Basic, as I had been playing with those as a hobbyist at home, working on an address book (that I later released on Nonags).  That contractor saw my love of data and introduced me to the Oracle DBA, so that I could see that as well.  Seeing SQL Server and Oracle, I hoped that (1) college wouldn’t be so awful and (2) once I get through that pain, maybe I’ll get to work with data.

Job Source: Family connection

Y2K Programmer

Yes – that was my job!  In the summer of 1999, I ended up working in headquarters of a local retail chain, making sure accounting, payroll, and other systems were Y2K compliant.  I learned FoxPro for this job as well as doing more ETL.  Now how did I end up in this role?  I used to work in the retail chain as a pharmacy tech, working for my now father-in-law.  I think he told me about the role up there.  It was great to get in at HQ, and it was even better when they walked me around on the first day and I ran into family from my mom’s side.

Job Source: Family connections

The Internship That Didn’t Exist

When I came home in the summer of 2000, I didn’t have an internship lined up, and the university’s co-op program placement was useless.  So I looked at the classifieds in The Plain Dealer, a local newspaper for Cleveland and its suburbs.  I noticed a Fortune 500 company with a listing looking for a developer with Visual Basic and SQL Server experience.  Knowing that I had those skills from my past experience, I wrote a cover letter that sold them on the fact that (1) I’m young (and cheap!!), (2) I already have the skills they need, and (3) I don’t need a lot of hand-holding and tend to hit the ground running.  Also, I pointed out that they could bring me on board so that the project didn’t get back-burnered and since I was temporary, it would give them more time to find a more permanent employee.  All the magic words led to an interview, which led to a corner office in downtown Cleveland and a project working on Visual Basic and SQL!  I finished the project with weeks to spare, and they didn’t need to hire an employee for the role after all.

Job Source: Classifieds in The Cleveland Plain Dealer + good personal sales

And, of course, the job I ended up at the longest while in college…

IT Support with the Coolest Guys Ever

Yes, I loved working in IT for the Arts & Science College Computing crew at the University of Toledo.  It was an adventurous part of my career in learning about just what IT encompasses and the good and bad parts, especially in the academia realm.  Supporting students, teachers, and executives, I learned a lot there and was privileged to work with a wonderful, supportive crew.  So how did I end up with this role?  A friend of mine was in the role prior to me, and he recommended me for the role.

Job Source: Friend 

Some Keys to Employment

This is something not just for juniors but for those overall – networking is key.  Talk to people, and listen to people.  Talk with family, friends, and yes… even strangers!  Go to Meetups, user groups, conferences, and other gatherings and network with others.

Don’t be afraid to see what opportunities are out there.  Newspaper classifieds were where I turned, but that was because in the late 90s and early 00s, that was where I knew to look.  Nowadays, we also have LinkedIn, Dice, Indeed, Glassdoor, Monster, Careerboard, ZipRecruiter, and other websites with job listings.  And if you see a listing you aren’t 100% qualified for, take a chance if it’s something interesting and you think you can learn the stuff they don’t have.  Most job listings are guidelines, not requirements that are completely set in stone.

You never know where your next opportunity will be.  Put yourself out there.  And remember – no one can sell you and your capabilities better than yourself!

Kansas City Developer Conference Recap

In early August, I had the opportunity to attend Kansas City Developer Conference in Kansas City, MO.  This was my first official trip to the city as an adult, as the last time I had been in the city was for the National Catholic Youth Conference in 1997.  My experiences this time around exposed me to a great tech community.

The Tech Family Reunion and #SarahConf!

One of my favorite parts of going to tech conferences is meeting other speakers and conference organizers, sharing experiences and learning from each other.   I enjoyed seeing friends I’ve made from my years in the conference organizing and speaking realms.  Most of all, I enjoyed meeting some of their local speakers and hearing about their adventures.   Great to meet new people and consider them part of my tech family!

Special thanks to Sarah Withee – @geekygirlsarah – for introducing me to #SarahConf:

Informative Sessions

In addition to speaking on “The Importance of User Experience for Developers”, I took some time to check out some of the sessions as well.  Some of the sessions I checked out included:

  • Sara Ford – The Psychology of Developer Tool Usability
  • Billy Korando – Everything Else New in Java 9
  • Michael Dowden – Introduction to Java Web Security
  • Jeff Cohen – Computer Science: The Good Parts
  • James Bender – I Promise to Give You a Callback: Working with Asynchronous JavaScript

The Psychology of Developer Tool Usability

With UX and usability (and Sara Ford’s energy and #SarahConf), I had to start with a topic that might bleed into my presentation topic.  I am always curious to see what others have to say, especially when it applies to developers.  This presentation lived up to what I was looking to see, despite 9 am brain going “basal ganglia?!  so early… can’t brain…”

It was great to hear Sara Ford’s experiences both from her times at Microsoft and with her Master’s Degree project as well.

Everything Else New in Java 9

Part of my work at The Software Guild has been teaching Java and contributing to their Java curriculum.  I’ve been watching Java 9 to see what is included, and I’m excited about what it has to offer.  While at KCDC, I caught Billy Korando’s session on Java 9.  It is interesting to see the modularity that comes with the Jigsaw Project.  This isn’t the first time I’ve seen this concept – it reminds me of something similar to PowerShell’s modules.  I’m also excited to see the REPL – as someone who sometimes teaches Java and who helps write curriculum to teach beginners, I can see the REPL being helpful for teaching.  There were some improvements to streams – which I was happy to see as it’s functionality we’ve had in C# with LINQ.  I like when I can show my apprentices that you can do similar things in C# and Java, which makes it easier for me to tell them that if you can understand one, the other has enough similarities to be easy to pick up.  There are plenty of other advancements in Java 9, and Billy had a lot to show in a short period of time.  He did a great job of showing these features!

Java Web Security

After the Java 9 talk, I had to get more Java in!  Michael Dowden presented on “Java Web Security” – including Spring Security, Apache Shiro, and Bouncy Castle.  We teach Spring Security at The Software Guild, so I was well aware of what I was getting myself into, topic-wise.  I hadn’t heard of Apache Shiro, and just saying Bouncy Castle makes me smile.  (A bounce house for Java?!?  Hmm… sounds fun! 😀 )  Being a web security talk, of course, the OWASP 10 had to be mentioned.  Seeing Mkyong.com referenced as a resource validated what I’ve been recommending to my apprentices.

Computer Science: The Good Parts

When I saw this on the schedule, I had to wonder – what is someone considering “the good parts” of CS?  I started out in a Bachelor of Science in Computer Science and Engineering programming and switched after 2 years into a Bachelor of Science in Computer Science and Engineering Technology program.  So I never left the CS part – I switched from theory-focused to application-focused.  There’s a part of me that gets bored with theory and history and just wants to get into applying it.  As I’ve gotten older, the theory part is slowly getting interesting, and I am excited about the historical parts.  So… what did Jeff Cohen point out as some of the good parts?  Data structures – and yes, these can be fun!   He also mentioned some of the historical figures:

He even mentioned Grace Hopper’s take on a nanosecond, which led me to post:

Algorithms are fun too, and Manning has a great book I recommend – as the practical me likes its approach to explaining algorithms:

And one of the most important points that I gathered from the presentation is that computer programming and computer science are not one and the same.  I see many people try to say they are, so it’s good to hear someone else stress that they differ.

I Promise to Give You a Callback: Working with Asynchronous JavaScript

In our curriculum, I also help with the JavaScript materials.  Promises have been on my list of things to read up on and understand.  I’ve known James Bender for awhile, so I was excited to catch a session on something I’ve wanted to learn delivered by a friend.  His absurdly true pizza delivery story – you have to ask him about it – is a great analogy for understanding promises.  James sets the story up right, and it’s an analogy many of us pizza fans can follow.  Thanks to this talk, I can understand promises enough to apply them to code and write curriculum for them – it was a nudge in the right direction.

Conclusion

This was my first KCDC, and I hope it isn’t my last!  Jon, Boon, Lee, and Jeff really take care of their speakers and put on a great conference.  It was great to network with others, meet the KC tech community, and learn about new (to me) technologies.  I am inspired to create some new talks and take on new adventures based on what I learned.  Thanks, Kansas City Developer Conference, for having me!  This is on my list of conferences to try to get to every year.