I became a developer more or less accidentally. After school, I worked for several years as a sound engineer for German television. I reached the point where every day was the same. Go to the location, set up the equipment and mix the show. Honestly… I got bored.
Being in my early twenties, I had to find something else to do for a living. One of the local universities offered the course Media and Computer Science which seemed to be a good fit for my television background. And I was always good with computers so why not give it a shot. I learned basic Java programming and discovered that programming is like solving puzzles. There is a problem, and there are countless ways to solve it.
I loved that and the fact that there are so many technologies out there is still fascinating to me. Going on from there I was hooked, started an internship, and this internship led to my first job as a web developer. Luckily, I got in a team with very knowledgeable developers. We became friends and they got me up to speed quickly. Half a year later I was involved in my first single-page app with Backbone.js. Good old times…
I try to keep my home screen clean. Only my podcatcher and calendar are there. The apps I use daily are in the bottom line. There is Todoist (I use it to plan and structure my day), the Twitter light PWA and Whatsapp.
I keep two additional folders in reach. One with all the apps that I use regularly but not every day and one folder for travel, because I travel quite a bit to conferences and events.
I keep notifications to a minimum. There are very few apps that get my attention. Additionally, I use Google Digital Wellbeing which turns my phone into greyscale after 10 pm. Not looking at the screaming colors leads to a night of better sleep for me.
Also, my phone is always in silent mode. There’s no buzzing and ringing – that’s very important to me. My friends and family know that they can’t reach me anytime and that’s okay.
Looks like I use way too many apps. 🙈 These are the apps that are running while I answer this interview:
The following are always in my dock
- iTerm2 as a terminal (as you see I’m giving Hyper another try as my terminal though)
- Several browsers for development and testing
- Wavebox as my mail and work client - it’s an app that wraps web apps. Trello, two Gmail accounts, and other daily work sites are in there
- Fantastical 2 as my calendar
- Slack and Whatsapp
- Dashlane is my Password manager for many years
Open when I need them:
- VSCode for development
- I’m giving Notion a try to keep work notes and a list of what I did during the day
- Journey to write my private journal
- Pixelmator Pro as a Photoshop replacement
- Keynote for most graphical work (I love this software, and I do everything in Keynote 🙈)
Additionally, I use Rocket for Emoji handling, Menu World Time to know when my colleagues are awake, Clipy for my clipboard, Bartender to keep my top menu bar clean and Alfred as a tool for all the rest.
I work mainly from home in my living room. The room is full of dark wood, so I got myself a big fitting table, too. On it is an LG widescreen monitor (when you tried widescreen once you’ll never go back) and a 13’ MacBook Pro. A Yeti blue is there for podcast and video recordings.
Thinking of frameworks, I don’t have a preference. I feel good with the main ones these days – React or Vue. I have to say though that hooks in React are a very valid reason to build my next project in React.
For most Frontend-related projects I go with Netlify for hosting because the service is tailored for static sites and a breeze to work with. For more complex serverless function setups the serverless framework in combination with AWS is my go-to choice. I’m not an AWS expert but with this framework it becomes fun, and your project can grow because AWS has a service for everything.
That’s a very interesting question because I’m not sure I have a “go-to repo”. What I can say is that years ago I spent some time setting up proper filters in Gmail which allowed me to finally follow a bunch of repositories without getting distracted all the time. I disabled GitHub in-app notifications and manage everything via email. I have filters for work projects, private repos and also several “watching only out of interest”.
If you follow these two repos, you’ll automatically discover new things that are supported by browsers and the web platform itself. Very often I read an email notification about a thing I’ve never heard of.
These emails (and a few newsletters) are my way to catch up with the way too fast-paced web.
Additionally, I follow two repositories about Node.js and Frontend things which are valuable to keep track of common best practices:
Lastly, I keep an eye on a few awesome lists and use these to discover new libraries and tools.
As you see, GitHub plays a meaningful role in my inbox. :D
I’m very excited about the JAMStack and serverless technologies. When I started developing for the web, there was a clear separation of Frontend and Backend.
For Frontend related projects I often use Netlify which allows you to build and deploy a static site quickly. It provides all the good stuff like HTTP/2, serverless functions and a global CDN. When I first tried it two years ago, I was impressed by how easy it was.
These hosting capabilities paired with progressive web apps get me very excited in general. I mean think of that... you can deploy a scalable site in a few hours, build a few endpoints to handle data, and then make it run offline. That still feels like magic to me. It’s a perfect time to be a Frontend developer.
If it’s a side project do whatever feels right. Mess around. Try new technology. Have fun!
If it’s in a business environment be more careful. Think clearly about what the project is about and evaluate how much pressure it includes. Don’t choose a cool new thing for your project when you know you have a tight deadline.
Start building, have fun, but also, watch yourself and how you feel closely. If you have a team with you, be transparent and honest about if you’re on the right path or not. If you don’t feel good about something, say it and maybe take a step back to evaluate. Don’t build up technical dept in the early phases of thinking that you can fix it later. You probably can’t. I missed massive deadlines in my career because I wasn’t honest with myself up to the point that I had to admit that I messed up a day before launch.
If you know that you’re on the right track bring proper tooling in place. I’m a big fan of automated testing and quality controls. Start implementing unit tests, code quality checkers and end-to-end tests before it’s too late. Your codebase will grow, and if there are no automated tools in place, it will be tough to establish a testing culture later. Code becomes cleaner when you write tests for it, too.
Additionally to code quality, consider your users and make some tests if your project is received as you think. Is it fast enough? Is it accessible? Does it work on a low-end phone? Once you shipped a bloated inaccessible app, you usually won’t be able to make it right.
Then, ship a product you are proud of. It will feel awesome!
Haha – I think I went a bit off-rail here and it sounds very dramatic. :D As an explanation – I worked for several startups here in Berlin, and we followed the “lean principle” a few times too often which lead to products that weren’t great and me being super stressed. I was far away from an ideal workflow and the reason for that was clear. It was past-me not pushing back when he should have.
I just recently started a new job at Twilio which means that my core focus the last months was learning all things communications. All this new stuff keeps me rather busy.
Apart from that, I can’t wait to build my first app Svelte. It looks fascinating and very powerful. I wonder if it really could evolve to a serious React/Vue alternative.
I have a few projects that made some more GitHub stars but the project I’m most proud of is my blog. I made it a habit to document my learnings. If you’re following Twitter and have seen “TIL” tweets (Today I learned), writing these learnings down instead of only tweeting them is what I'm talking about.
Today, my blog includes 140 pages, and 80 of these pages are documented learnings. These are sometimes longer articles but very often only ten sentences. I write these down to remember things in the future. When you spend more time than only posting a Tweet with a topic, you’ll be more likely to remember it. And then, you can share your learnings with the world, and when only one person learned something, it already makes my day.
In addition to writing on my blog, I use it to learn new technology. Right now it’s Vue based and runs on Nuxt. Let’s see when I’ll rebuild it with the next “cool technology”. ;)
That’s a very hot question these days. I’m not into framework wars or the daily discussions around if you should know how the CSS cascade works or not. Use whatever works best for you. Enjoy building!
That’s a tough question for me to answer because I work in the developer relations team at Twilio. Our team is not writing the code going into Twilio’s products. Our job is to keep all our developers happy. This includes writing great docs, coming up with inspiring tutorials and helping developers online and offline to succeed.
Sometimes I spend hours bikeshedding the tools I could use for a new project. Picking the right tools is tough these days. 🙈
I write a monthly newsletter that includes my documented learnings but also a quote, a song, a favorite talk, and one or two excellent articles. So if you’re not going under by being subscribed to too many newsletters give this one a try. :)
Additionally, I do occasional pair programming sessions with people that do cool things in the web development scene. The way it works is that I jump on a call with someone and let them guide me through a library/framework/… I try not to prepare which leads to many noob questions. It’s a lot of fun and if you’d like to have an intro to a tool in this format, let me know. I’m happy to reach out to a person.
Oh yeah, and one last thing. If you’re on MacOS and use Netlify for your static sites, you might want to check out a menubar app that I built. It helps me to monitor build progress and statuses on the platform – I wouldn’t want to miss it anymore.
If you wanna get in touch, Twitter is probably the best approach and definitely let me know if you plan a project with phone calls or messages using Twilio. Always happy to help with these. ;)