Work History
I have spent the last 15 years working professionally in Information Technology. During this time I have tried on several hats in the IT world working for internal IT departments, as a technical support representative, for family and friends, and running converting a break/fix computer services provider into a Managed Services Provider (MSP). I am actively employed as an IT Manager / Systems Administrator / Developer for an attorney office and run my own small business providing local residential / business IT services and web development. I've worked in healthcare as a HIPAA security officer and performed risk analysis.
Some roles I've held:
- IT Intern
- Computer Technician
- Supervisor
- Technical Support Representative
- IT Professional Level 3
- IT Manager
- IT Director
- Developer
- Interim Chief Information Security Officer
- HIPAA Security Officer
How It's Helped
Working in IT prior to becoming a developer has taught me a lot about technology and computers as a whole, as well as working with end-users to understand how they use technology. The way end-users interact with the computer, the website, and what they do when they see spinners or loading icons has helped shape my view for development to keep their perspective in mind. I've deployed massive software, hardware, and network projects across all shapes, sizes, and industries of businesses which has helped me understand working with businesses on making major changes and how to communicate and plan effectively. My first programming experience came about during my first paid IT job where I was an intern at my local school district where I attended high school. You can read about it here.
Skill's I've learned along the way:
- Network Skills
- Domain and DNS
- Hardware
- Databases
- Backup and Disaster Recovery
- Privacy and Security
- Communication
Network Skills
I've gained skills in computer networks ranging from homes to large businesses spread across multiple cities. This helped me understand how networks and the internet work, as well as securing them.
Domain and DNS
I've gained skills in Domain and DNS management along with setting up new domain names, migration hosting and email to new platforms, and configuring DNS. This has helped when I've moved businesses who have existing hosting to new providers.
Hardware
I've gained skills in computer hardware. I've built several hundred computers and over 50 servers from bare metal. I've been in charge of designing workstation builds for businesses, home users, and gamers alike. These skills have helped me to understand the hardware needed to run my web applications, databases, and to understand concepts such as CPU, Processor Speeds, RAM, Hard Drive types such as SSD vs Flash, Storage configurations such as RAID.
Databases
I've gained skills in database administration which helped me understand SQL, MySql, MariaDB, MongoDB, and many more. I've designed new databases, I've maintained existing databases, I've recovered broken databases, migrated databases, and upgraded databases. This gave me a priceless knowledge that I use when creating web applications that store data.
Backup and Disaster Recovery
I've gained skills in backup and disaster recovery strategies. This taught me how to backup my data, learned skills such as recovery time objective and recovery point objective to talk with business about backing up and restoring their data in a disaster.
Privacy and Security
I've gained skills in privacy and security from working with medical offices and being the IT manager and HIPAA security officer for a medium sized medical office with 6 locations and over 300 employees. Working as a HIPAA security officer I was responsible for maintaining privacy and security of patient information. This translated well into the web development world to understand how important it is to protect users data from breaches, how to perform a risk analysis to look for risks associated with user information, and what to do if there is a breach.
Communication
Communicating technology to the average person is a skillset entirely of it's own. Let's face it, technology is confusing and unless you work in the field it's very easy to not understand a lot of the nuances with technology. I've gained skills in communicating IT projects, solutions, problems, and concepts with just about anyone in a way they can understand and relate. At the end of the day, if the client doesn't understand why they need to make a change or what exactly it is they are purchasing, they won't be likely to proceed. This goes beyond being able to explain it to a 5-year old or your grandma, it means being able to communicate quantifiable and qualitative information to your client where they will be able to make an informed decision for the benefits.
Conclusion
Looking back at my 15 year history of working in the Information Technology field, I find that I use skills from my experiences every single day on every single project. If you are just branching into the Web Development world with little to no understanding of Information Technology you will have some difficult times understanding and positioning your solutions to your clients as well as selecting the right technology for the client. It's important to diversify your understanding of technology such as hardware, security, privacy, backup and performance when working in development and programming. There is more to development that just understanding your code base and language, you need to establish a deeper understanding of where your application will run, how it will be used, and how to keep it safe and backed up.