liquid labs | 01.10.2018
Zach is a full-stack software developer with diverse experience in applications, hardware integration, and developer advocacy. At Liquid Labs, the American expat brings his knowledge of new technologies to the table and employs it for his work in an IoT-startup. To us, he explained what his tasks are, what he's passionate about in his work and how others can learn more about software development.
What exactly are your tasks as a senior software engineer?
A software engineer observes the tasks people (and machines!) perform every day. These tasks are then broken down into smaller units of work, grouped, and visualized in the form of user journeys. A user journey can be very simple or exhaustingly complex. As a software engineer, you work with others to streamline these workflows by developing and plugging in tech solutions where they make sense. It's very important to never lose focus of your users.
You are a so-called “full stack” software developer – what does that mean?
The “full-stack” title has become quite popular (and somewhat controversial) in the development world over the last five years. I would describe a full-stack developer as someone with a horizontal experience of technologies, one who is able to rapidly prototype solutions from frontend, backend, to DevOps using a wide range of techniques. They are also able to help everyone on the team, which greatly reduces the cost and time of onboarding. You will often find full-stack developers become entrepreneurs and/or solid technical partners in startups.
What do you do at Liquid Labs?
With smart home devices like appliances and speakers becoming more prevalent, the platforms that connect them to online marketplaces for replenishment are few. I work full-time on an IoT project, OrderThis, focused on bridging these devices with e-commerce; more specifically, the Otto.de marketplace.
What is the best part of your work?
The best parts of being a software engineer are working with people from all cultural and business backgrounds, the new and exciting opportunities the tech world has to offer, and seeing solutions come to fruition. It's very humbling to witness your team's work pay off with positive user feedback.
What would you like to do without in your work?
Barriers and bureaucracy. People are creative. Invest in them. Empower them.
How can we imagine a normal day as a software engineer?
A typical day for a software engineer can vary wildly. However, one constant we have is our “daily standup,” where the team meets for 10 minutes to discuss what yesterday’s work entailed, what obstacles might exist, and what the current daily tasks are. Beyond this meeting, you can expect both solo and pair programming sessions, architecture and design discussions, user feedback evaluations—and of course, an endless supply of coffee.
Why did you decide to work as a software engineer?
Software engineering is just as much about creativity as it is critical thinking, math, and analytics. I became a software engineer because I enjoy building things as well as leveraging technology to streamline both personal and professional veins of life. There is always something new and exciting to tackle.
And why did you decide to work in a startup?
I chose the “startup life” for the stake, the pace, and the risk.
In a startup, you’re much more aware of your stake in laying the foundation of a company, creating a lasting impact on its culture, business, and processes.
Because startups often operate under limited resources, maintaining velocity is crucial. The fast-paced environment is demanding but extremely fun and fulfilling at the same time.
There’s no doubt that startup life can be stressfully precarious. However, you learn to embrace risk and strive towards a common vision with your team.
What should one bring along to work as a software engineer?
Coffee, a fast computer, and a passion for pressing buttons. But really, first and foremost, you should bring an open mind and a willingness to listen. Communication is key. You also need to bring the ability to think critically and objectively, to develop pragmatic solutions.
What are your tips for people who would like to learn more about software development?
There are thousands of technologies focused on solving similar problems in slightly different ways. It can be daunting for both new and experienced learners—but fret not! It’s important to bring a willingness to learn and a little patience. Like learning a foreign language, I’d recommend speaking with someone directly who writes software, or better, shadowing a developer for a few hours. Outside of work, I would spend some time educating yourself on what the essential parts of a stack consist of (frontend, backend, etc.) then following live coding exercises online. A few American universities now provide free full-length courses online, too. The best way to learn is to dive right in!
What is the latest trend in software development/tech that you are excited about?
I’m excited about the bleeding-edge prospects of augmented and virtual reality (AR/VR) applications and their integration into IoT sensor networks; cars, airplanes, sidewalks, etc. As humans, we constantly use tools like smart phones to streamline our lives. I foresee an even more connected world with new social implications.
You are very passionate about Empowerment. What do you think, how can we empower people more?
If organizations don’t foster creative outlets for their employees, work becomes monotonous and meaningless. I believe there are two keystone methods to empower people more and modernize your company:
1. Invest in employees by designing a framework for them to explore and learn about the ins and outs of the business. Once workers realize their stake in the bigger picture, work regains purpose. This positive shift in attitude is often reflected in their work, too.
2. Eliminate the “top-down” management approach. Start small and combine both top-down and bottom-up strategies. It’s easier to understand and implement than many think. The problem with “big picture” solutions is that by nature, the tiny details which are critical to finishing the job are completely missed. The minutia is abstracted away while endusers experience the nuances of the details firsthand. This disconnect ensures failure so you should establish a feedback loop and never lose sight of your users.