Conversations at efelle: Back-End Developer Cameron Van Orman
Describe your path to becoming a back-end developer.
I just kind of fell into it. I decided to focus more on back-end development because it was needed. Since becoming a back-end developer, my work has been a lot more challenging and less repetitive.
When you started learning development, did you start with the front-end?
My development started with scripting in games, as well as IT work with servers and computers. Then I got into front-end development when a friend who heard that I was a "coder" needed a website. So I went ahead and learned what I could about HTML and CSS, built them a website, and went from there.
What drew you to back-end development?
I think the back-end is like a mechanic working on a car, whereas the front-end focuses on the driver and how they drive. How are they going to interact with everything else on the road? Are people going to perceive them as a good driver or a bad driver? Every customer's perspective when visiting a website is that they're now the driver of this new car. The customers are the ones that give the feedback to whoever created the car on how it handles and feels for them.
I was initially drawn to back-end development because of a need to fix the problems I faced when building websites as a front-end developer.
As our new Fusion platform was being built, I was focusing on building websites on our older Fusion platform. While the older platform possessed extensive development capabilities, it became increasingly complex to customize parts of it. I learned a lot about databases, optimizing SQL queries, and maintaining security in a large application. Since the launch of our new Fusion platform, my focus has been on building out the server infrastructure for each client we host and contributing to the development of new features and functionality.
I get more gratification out of my job working in the back-end because a majority of what I do touches and affects all of our clients and users at once. As a back-end developer, I'm continuously improving on what is developed, so my skills grow with the work I do. As a front-end developer, you’re constantly shifting from one project to another, making it difficult to focus on front-end specific skills.
The effects of front-end work seems a bit more isolated per project. Back-end affects everything.
A change that I make on the back-end could affect hundreds of sites whereas a change on the front-end could just affect one single site, unless it's part of a framework or a tool that we use for all of our sites.
What are the differences or similarities to working at smaller companies?
I've worked at a few larger companies in the past. Like smaller companies, you still have tight knit teams but it's usually just within your department. In larger companies, you don't really have a clear idea of everyone’s role in the company, but you have clearly defined goals within your specific role. Because of that, you may only be passionate about the projects or goals within your department and not the necessarily the company's.
In comparison, efelle is small, so everyone communicates a lot more efficiently throughout the company. There's less bureaucracy and fewer decisions that are going to affect everybody adversely. I also love that everyone at efelle is constantly learning and collaborating on new ideas.
Yeah, I have been hesitant about working at a larger company.
A larger company can, but not always, take the individuality out of people. Some companies try to have everyone look the same with dress codes. I prefer to be relaxed and comfortable in an environment that's conducive to my productivity.
To give you some perspective, I interviewed at a large company before working at efelle. When I toured the office that I'd be working in, there were five foot tall cubicles that continued on for what looked like a mile. I was so confused navigating the cubicles that I got lost walking from the break room to the interview room. The type of work I was interviewing for wasn't something I wanted to do, but I knew I could do it and earn a paycheck in the process. efelle has given me a lot of space to build and learn new skills, and the relaxed culture makes it easy to focus on work.
Talk about our new CMS platform.
Where do I even start with our new Fusion platform (AKA FusionCMSv5)? Let me just say that it's amazing what we're capable of building in the new Fusion platform. While our older Fusion platform had an extensive set of functionality and features, it became increasingly difficult to scale and compete with other SaaS CMS offerings. While we still maintain and support all of the existing features and functionality on the older Fusion platform (AKA FusionCMSv4), our focus for the past year has been on developing features for the new Fusion platform and creating a migration path for clients to upgrade from v4 to v5. To compare v4 to v5 in terms of size, v4 was written in roughly 1 million lines of code while v5 was written in less than 60,000 lines of code while offering similar functionality.
The new Fusion platform comes with an incredible set of base features with an ever growing library of add-on modules and premium themes. Our new CMS offering takes a similar approach as other CMS offerings such as:
- Automatic updates
- Customizable content fields and types
- 3rd-party script management
- Google Analytics integration
- SEO integration (friendly URLs, 301 redirects, optimized content management, sitemap)
- Image and document management
- Form management
- Integration with mail providers (SMTP, Mandrill, Mailgun, Sparkpost)
- Powerful search integration (options for self-hosted and Algolia search supported)
- User management
It's great now that we have our new Fusion platform and it's awesome to work with. The new platform influences me to write better, more sustainable code. I feel like an environmentalist, trying to ensure that I improve the environment and not disrupt activity within the environment. Anytime I open up code that somebody else wrote, I'm always thinking about how not to disrupt a piece of code's initial purpose as well as how it can be improved. With that mentality, the new platform will run better over time and won't be as difficult to manage and rewrite features in the future.
What is your ideal work environment and relationship between coworkers?
I like having the opportunity to work remotely, but if I'm working from the office I like an open environment that also has a quiet space. I like the environment here because it's calm and I feel like there's no social obligations. If I want to go socialize, I can. And if I want to be a hermit, I can as well.
How does having the mindset of a developer influence how you see the world?
As a designer, you may look at the visuals and things like that. I would say being a developer makes me more analytical.
I like to think about how things work and whether or not those things are made to be sustainable. Most developers don't need to think about how sustainable their code is unless it powers a large portion of society or contributes to vital systems in our infrastructure. Just like how developers build and maintain software with the environment in mind, I would like for the rest of the world to consider what's built and how it's maintained. Everything developers create has to be maintained and if there's not enough focus on maintenance during the life of the software, then that technical debt becomes a burden on anyone who utilizes or builds on that system.
If you could work on any project, what would it be?
I'd like to work on a lot of open source projects. A few things that I'd be interested in working on are technologies related to wireless networking social networks with physical devices.
Think of a Facebook type social network that doesn't rely on a company or internet infrastructure to exist. The term for these types of applications are called decentralized applications.
Bitcoin is an example of a decentralized ecosystem or application. There are applications that are built off of the bitcoin model, what’s called a blockchain, which is a way of tracking bitcoin transactions over time.
Do you think the internet is a neutral platform?
I think it inherently is a neutral platform, but when you start to rely on middlemen like your internet service provider and your governments to police or set policy on the internet, then I think it becomes increasingly difficult to stay neutral.
I don't think you can keep the internet neutral just like I don't think you can keep traffic on the road neutral – you have HOV lanes for a reason. Some people want to drive around their large trucks with just them in it. Just like we want to have websites that have huge homepages with lots of content and visuals, only certain users with fast enough internet connections or stable enough connections will be able to enjoy the website.
I guess my advice would be to make the web a sustainable place by ensuring everyone has equal access to services and technology available on the web.
What's your view on internet security?
I think there's not enough of it. Going back to building a sustainable internet, security is at the root of it. Security ensures that everything you do online is tamper-proof and private between you and the web service you're communicating with. If internet companies did more to anonymize people's data, secure people's personal information via encryption, and be more diligent in securing their services from outside intruders, then I don't think we'd be faced with the same concerns online as we do now.
What's your view on social media?
I think social media can be cool. I think the idea of everyone communicating globally with each other is great, but I don't think current social media websites have created something I want. For me, I like social platforms that encourage communication with each other, like GitHub or Stack Overflow.
On Stack Overflow, people are posting problems, solutions to those problems, and having discussions. And Stack Overflow is part of the Stack Exchange, which can be design focused or not related to technology at all.
For sites like Facebook, I feel it's less of a social media platform and more of an advertising platform. Scrolling through Facebook feels like you're stuck on a highway and you've just got billboards for the next 50 miles so that's all you're seeing. Not the people you are surrounded by, just the advertising that's being sponsored. Even the media that is posted by other people, you question your time being spent just scrolling. To me, it’s just too much noise.
My opinion about social media is that it could be improved. A lot. I think right now too many people are putting their skin in the game for the wrong reasons. For example, WhatsApp was building a really cool application, but when they were bought by Facebook it just turned into messenger. Then the WhatsApp creator left the company because they didn't like the direction that Facebook was taking their application.
What do you want to improve on or learn about this year, work-related or personally?
Work related, I'd definitely like to learn more about system administration and developing for our Fusion platform. Outside of work, I would like to work on systems for a decentralized internet and decentralized applications.
Favorite aspect of efelle.
I'd probably say my favorite aspect is the openness of the company. I can communicate freely with colleagues or find a quiet space to focus on work. I love that I can snooze notifications for an hour or two and just focus on my work.
What are your desk essentials?
My desk essentials are my computer, monitor, keyboard, mouse, headphones, and a water bottle. I enjoy a simple desk environment as it helps me focus on work.
To see more of Haley's awesome drawings, view her Instagram account, haleydrewthis.