In this interview from the Developer bites series we have David De Winter - a senior developer and the CTO of Ziggu. He shares how he started with programming, what pieces of technology excite him at the moment and passes on valuable advice on how to advance as a software developer.
How did you become a developer, what’s your developer story?
I believe it all started with my fascination for technology in general at a very young age: thanks to my dad working in the IT industry early on, I was already tinkering with computers using MS-DOS during primary school, and then also gradually discovering the early internet with those beeping dial-up modems (that would also cut off the telephone access in the meantime, sorry mom!). Back then it was mostly just religiously reading the monthly technology magazines and playing the latest games, but that changed on my 12th birthday, year 2002, when I finally got my own dedicated computer: a Pentium 4, which also used to indirectly function as a heater in winter because of it’s excessive power consumption, quite crazy if you compare it with the latest insanely efficient M1 chips from Apple.
Anyways, at that point, I started dabbling with “the early days” of web development during summer holidays, by learning HTML and some very basic PHP (version 4), just enough to hack together a news management system (CuteNews, it still exists!) and a phpBB forum to create a new online gaming community for Dutch gamers! The rise and fall of that gaming community is a story in itself, but thanks to that I got very intrigued by programming and software engineering in general, which led me to studying computer science after secondary school, and I have been continuously learning and doing what I truly like ever since.
What excites you about software development?
The ability to quickly get started on something, and then continue to iterate on it to be able to eventually build something really meaningful and valuable for others, that still gets me excited, and I believe is something that is very rare, or rather much more difficult to achieve in other areas and professions.
You have a solid background as a data scientist, what does a data scientist do on a regular workday and how is it different from a software developer?
Data science is a very broad field that you could, despite there being no real general consensus (and it often being perceived as a hyped buzzword), define as a combination of statistics, data analysis and computer science, in the sense that it applies methods from these three fields to retrieve relevant insights from data. As a data scientist it all starts with acquiring the relevant and necessary data, typically this is the most laborious and time consuming part of the job, which is often underestimated: data is seldomly handed to you on a silver platter, so having proper software engineering skills to easily manipulate high volumes of data into the required format can be a lifesaver.
Next to that, you also need strong analytical and problem solving skills: being able to practically visualize data will allow you to more easily gain better insights, and having a solid mathematical background combined with software engineering skills allows you to turn your findings into an actual statistical model that can be integrated into actual real-life applications. To put it simply, being a capable software engineer just makes doing your job as a data scientist much easier!
What are the challenges of being a CTO? Besides coding what other responsibilities do you have and how is your time split between both?
In general, I believe the challenges of a CTO are heavily dependent on both the type of business as well as the phase you’re in as a business: in the beginning, without any real revenues as a mere startup, the initial challenge was determining what a first version of our product, typically called a minimum viable product (MVP), would be comprised of, and shipping it as quickly as possible to our first users, you need to just make it happen and you’re basically obsessively coding at that point. Post-launch, the focus then shifts to constant iteration based on user feedback, with the hopes of eventually seeing clear signs of product/market fit: once you see this, then you know you’re ready for growth as a team. From that point on, hiring becomes one of the most important responsibilities: you want to surround yourself with the best possible people (whom you also thoroughly enjoy working with!) to achieve your vision as a team.
At this point, my responsibilities as a CTO started shifting more and more from being an individual technical contributor/hacker to a more formal technical lead and architect, by strategizing about the general architectural development of our platform both in short and long term, as well as making sure any bottlenecks are swiftly resolved so our engineering team can focus on the core of our platform. Lately, as an example, I have been primarily focussed in particular on improving everything regarding devops so we can keep delivering updates to our platform regularly as both our platform grows in complexity as well as our team grows in size. Next to all of this, there are also my responsibilities as a co-founder. It’s clearly not always easy to appropriately balance all these responsibilities, I believe that is definitely the biggest challenge, and something I reflect on almost daily, questioning whether we are still making the right decisions (and trade-offs), because it’s easy to lose track of what is most important.
You’ve worked with many developers throughout your career, what makes one a 10x engineer and how do you think one can become a 10x?
Someone recently described it to me as follows: “a good engineer knows his technical stuff, a great engineer knows the business as well”, it’s quite blunt but I believe there’s a lot of truth in that. Being an engineer and passionate about technology, it’s so easy to get lost in what is known to most as “bikeshedding”, basically wasting time time and energy on marginal technical issues that regardless of the outcome have a negligible business impact. A great engineer however tries to keep the business interests (and impact) front and center, basically taking a holistic approach to problem solving, really thinking about the bigger picture: why are we doing this, and how are we doing this? In our team everyone is expected to act as a “product engineer”, giving them a lot of ownership and responsibilities, as I believe this is the perfect environment to grow as an engineer, and I honestly believe it’s also the most rewarding.
So my general advice in becoming a better engineer is finding your ideal work environment, one where you enjoy working in and can truly thrive in, and from this your personal growth will follow naturally as well!
How do you keep your technical skills sharp?
I love reading and I read a lot: throughout the years I have found Hacker News in particular to be a great entry point to stay up to date about technological advancements in a wide variety of fields. Next to that I also try to read (technical) books occasionally if I am not too immersed in day to day challenges, and checking my curated Twitter feed once in a while also sometimes gives interesting insights (or well-deserved distractions depending how you look at it).
How do you stay productive, what are your productivity tips?
I got a lot of inspiration from reading Cal Newport’s Deep Work book: society as a whole is becoming ever more distracted in this day and age, and having the ability to focus for prolonged periods of time without distractions is one of the most valuable skills to have nowadays, in order to make a real impact. Specific productivity tips that I can think off that have helped me significantly over the past years:
- don’t let your smartphone or any of those social media apps dictate your life: turn off notifications by default to take back control of when you want to be distracted, at your own pace, most notifications are irrelevant and not urgent anyways
- getting things done: get task out of your head and into some external system, I use Todoist, in which you basically consolidate and keep track of everything in time, this way you’re less likely to be overwhelmed and you can remain focussed
- sleep well and consistent: easier said than done sometimes, but a good night’s sleep can make a world of difference productivity wise
- running habit: running keeps me sane and refreshed, especially when things get busy it’s even more important to keep making time for it
Being a developer I know that often you might get stuck when you’re coding and can’t figure the way out for hours, how do you get out of those situations, any secrets?
Those situations are definitely relatable, and can at times be frustrating, however don’t let your frustrations get the best of you: it’s always best to stay calm and overthink the situation, as this will increase your odds of finding your way out of these situations. Taking a break and revisiting the problem a bit later can also help, and/or doing some rubber duck debugging (yes, I do have an actual rubber duck 🐥 on my desk just for this!).
What do you wish you had known when you began your career as a software developer?
Don’t focus/obsess too much on a single programming language, the quicker you get acquainted with multiple programming languages, the sooner you realize you can leverage a lot of learned skills from one language in another, and you’ll feel a lot more confident learning even more things over time, you could regard it as some sort of compound interest.
If you were limited to passing on one piece of advice to junior programmers, what would that be?
It might sound very cliché but I’d say “do what you love and the rest will follow”.
What piece of software/technology excites you the most at the moment?
Software wise, at Ziggu, we’re very excited about Vue 3, it was launched late last year, but we’re still eagerly awaiting general community adoption and tooling to make the switch, as it would be beneficial in a lot of ways, one in particular being able to swap Webpack (which I personally dread) with Vite.js to have more efficient builds and a more pleasant local development experience, we put a lot of focus on developer happiness (which is why we also chose Ruby on Rails as our primary backend framework).
Hardware/technology wise, I am very happy with my recent purchase of a Boox Note 3, which is a 10” eInk reader that also serves as a powerful Android tablet, it’s great to get more into a reading habit again thanks to this device, particularly for long reads.
What about the future? Do you have your sights set on something that’s yet to be released?
I am not sure if this counts, but when is Rockstar Games finally going to announce Grand Theft Auto 6? We have been waiting for years without any details.. come on!
To what extent are soft skills needed for a software developer?
Personally, I find soft skills at least as important as pure technical skills: great software engineering is typically achieved through teamwork, and for this communication and writing skills are invaluable. Most of the time, before you dive into the actual implementation work, there is often a lot of back and forth communication going on between different stakeholders, and it’s essential to get this right before you start the technical execution. Writing especially is often underestimated among peers I believe, writing is hard when you think about it, in order to write well you need to take your time to be really focussed and diligent.
What do you think about the future of remote work after the pandemic is over? Will the tech industry accept the distributed way of working and what’s your experience working from home?
At Ziggu, we were already remote-first before the pandemic, we were inspired by numerous successful companies which have been working like this for the past decade and who are thriving: especially for our engineering team, working as much as possible in an asynchronous and documentation-first approach we have really benefited significantly from this, as opposed to (previously) working in an open office environment where you often have constant distractions and it be really difficult to get work done. Next to that, as a remote-first company I believe you have a clear competitive advantage in terms of hiring great people (as there are no geographical barriers), and this still holds since the pandemic, because I think it’s rather challenging to suddenly force a non-remote company to become remote.
However, now, one year into the pandemic, I believe that quite some “newly remote” companies have really embraced the distributed way of working, and I am convinced that quite a few of those will stick to this indefinitely. On the other hand, I am also sure there’s going to be quite a lot of conservative companies that will shift back into their old habits by eventually forcing everyone back into the office, which I find very unfortunate.. but hopefully people who have become believers of remote working will by then have the ability to remain doing so, by switching jobs if needed.
What are the first 3 words that come to your mind when you think of ‘software development’?
- Naming (is hard and important!)
In the Picks section you can share any resource that’s worth checking out. Do you have any picks for us?
If you want to witness one of the most talented engineers build the craziest contraptions you can think of, and also step by step explain everything in detail along the way so you can learn a thing or two, be sure to check the Youtube channel of Stuff Made Here.
Your favourite developer joke?
If an engineer forgets to lock their laptop in my presence while they’re absent, they’re in for a treat (and a life lesson on security 😉).