Coding for Web Development
By Chris Mavricos
I’m Chris, a software engineer and founder of SevenSpark, a web development studio focused on the WordPress plugin space.
During my sophomore year at Duke University, I took an Intro to Computer Science course on a whim and fell in love with it. For me, it was the perfect fusion of both creative and scientific disciplines. I loved both the beauty of well designed code and the mathematical precision of its execution. It also required a logical approach to problem solving and solution engineering that really clicked for me. I declared my major in Computer Science that same semester and never looked back.
After consulting for IBM for a year after college, I decided to start my own company. I have a passion for travel and photography, so I set out to design a business that would allow me enough flexibility to pursue those interests by automating as much as possible, with the goal of being location independent and able to work from anywhere. I struck on WordPress software development as a great opportunity and started creating WordPress themes and plugins to sell online. Having a completely digital product makes it much easier to decouple from the physical aspects of a business that tend to strap it to a specific location.
My business uses code in just about every aspect.
My business uses code in just about every aspect. The products themselves (WordPress plugins) are software, of course: effectively, tools that allow non-developers to configure and administer advanced web functionality through a user-friendly interface. Our flagship product is UberMenu, a plugin for building content-rich mega menus.
But we also have many systems we’ve coded that are designed to automate that business — from an eCommerce system that allows sales to be made while we sleep, to customer support automation that attempts to present customers with solutions without waiting for a reply, to license tracking and updates systems that automate distribution of new releases, we use software systems as much as possible to handle any task that doesn’t require a human for decision making. By eliminating repetitive and time consuming tasks, we’re able to stay very lightweight and focus more on the creative and customer-experience side of things, rather than getting bogged down in administrative chores. Being able to code solutions to many of these problems allows us to run as efficiently as possible, which is critical when you’re a small distributed team and on the road a lot.
One of the reasons I love web development is its accessibility; I think it is a great stepping stone toward more advanced computer science disciplines, with plenty of room for growth and innovation in the field itself. Getting started with web development is really easy and provides immediately visible results — anyone can code their own website. And as our online experiences become more complex and many web sites move toward the realm of full-fledged software applications, there’s a whole new world of possibilities to explore. It’s incredible how fast web technologies are expanding, and with the “Internet of Things” still in its infancy, there’s a whole lot more innovation to come.
It’s undoubtedly an exciting time for budding tech entrepreneurs, but learning about computer science isn’t only important for those who want to work in tech-specific fields. To state the obvious, the world has become more and more technology-driven, with connections now evolving beyond the virtual realm into every aspect of our daily lives; software is no longer something we interact with solely at our desks, or built only by “tech” companies. From ordering a taxi, to tracking our fitness goals, to adding egg rolls to our take-out orders, a growing percentage of our experiences are initiated through our connected mobile devices or other digital interfaces — and all of that is powered by code.
Being “tech-savvy” is fundamental in a world where that tech is pervasive.
With software’s presence in so much of what we do, it’s critical to have a solid comprehension of the underlying principles of how computers and the code that runs on them work — whether or not one’s job description involves working with code directly. Not only does a better understanding of technology lead to better, more productive interactions with it, but as our lives become ever more digitized, our ability to comprehend those systems that are responsible for our privacy and data security will be crucial to navigating that technology responsibly. Being “tech-savvy” is fundamental in a world where that tech is pervasive.
Everyone should have a solid grasp on how computer systems “think,” in order to use these tools effectively and responsibly, demystify the “magic” behind the apps we rely on on a daily basis, and be better equipped to spot the inevitable misuse of technology when we are confronted with it. The last of which, in the wake of Facebook’s recent privacy scandal and the myriad of data breaches that occur every year, will only continue to grow in importance.
To think critically about technology, we need to understand it. And that means learning about and gaining a deeper understanding of how computers, code, and the internet work.
To think critically about technology, we need to understand it. And that means learning about and gaining a deeper understanding of how computers, code, and the internet work. To that end, I believe it will be of vital importance for this generation of students to be properly educated in these subjects.
Beyond that, computer science and the study of algorithms also offers a great paradigm for solving complex problems in a logical, systematic way. Coding forces you to think critically about how to handle different scenarios efficiently and robustly, and to design systems that are flexible and extensible. I’ve found these skills to be invaluable when applied to my life outside of software development as well. Effectiveness in any arena often comes down to having good systems in place, and if you have a background in software development, you already have the skills to design those solutions — code-based or otherwise.
Finally, coding can be a lot of fun. It stimulates both the creative and logical sides of your brain, and forces you to think in new ways. It provides satisfying, engaging challenges and can be used to solve everyday problems. It’s a field that is directly applicable to all of our lives, and a useful tool whether or not it is your chosen profession. While it’s not going to be everyone’s cup of tea, I think it’s something everyone should be given the opportunity to try. You never know who it might just click for.
What tools and languages do I use?
While, like most developers, I’ve dabbled in a lot of different languages and tools, those that I use on a regular basis for my business are primarily:
- JavaScript (ES6, React, jQuery), CSS, HTML
- PHP
- SQL
- Git — for version control
- Grunt — to automate repetitive code tasks
- Slack — for team communication
- Things 3 — for personal projects and to do lists
- Trello — for project management
- HelpScout — for customer support
When he’s is lucky enough to find himself outside the range of a mobile network, Chris treats his internet-withdrawal symptoms with adventure travel, wandering in the mountains, utilizing drainage ditches as points of ingress, getting lost in the woods, and pointing his camera at pretty objects.