Lucas van Dongen
- Senior Mobile Developer at Booking.com, Insurance Team
- Freelance mobile lead developer
- iOS and Apple Community Leader at Toptal
- Father, husband, synthesizer noodler and snowboarder
I am a software development consultant with over 18 years of professional experience. During those years I have worked with a large amount of technologies in a range of project types in different roles. Some of the things that I have learned:
- Starting my own company. Nothing can put you better in the shoes of a customer than having been an actual customer from time to time. I have hired a lot of people, created teams and outsourced work all within the limits of my own time and budget.
- Writing new applications from scratch. I have written over 20 mobile applications and dozens of back-end or web-based projects through my career and maintained most of them. I know from experience what approach to creating applications, a development process and teams leads to the best results in longer term
- Removing ambiguity from your processes in my code. Processes should be encapsulated in such a way that a programmer that needs to interact with them only can go from one legal state to another. Using Swift's strong typing and functional capabilities as well as applying SOLID principles helps me creating software that simply limits the amount of possible erronous states it can have to begin with, making it much easier to test and maintain
- Taking existing applications that suffer from problems and getting them back on rails. Most applications start with the best of intentions, but then either through pressure of deadlines, a lack of skill or knowledge about the process within the (replacing) team or simply never adapting it's structure to new requirements lead to code rot. I am specialized in turning projects around by identifying the good parts, the bad parts and improving the situation without doing a costly rewrite or stopping shipping bugfixes or new features
- Analyzing the performance of teams and improving each member's output as well as the development process. The success of a new application or maintaining an existing one seldom just hinges on individual qualities or best practices. Rather, it's the interaction between individual team members as well as the management that can make or break it. I can assess the individual qualities of each team member quickly while observing what parts of the process fail and advise in how to optimize your team's performance
- Improving the User Experience of applications. A lot of small things are really important for your application when you all add them up. For example: how fast does your app start? Are all of the graphics consistent? Does the user always know what is happening or what is expected? Are you loading resources too often instead of caching making every screen wait on a network request? A well working application on all those points gains the trust of your users and will lead to better conversion rates
- Keeping it small and simple. Very important. I keep dependencies to a minimum and always try to write as little code as possible, because every line of code needs to be maintained even if it's not yours. Try to ship early and ship often instead of building the world both in architecture and features before anybody can touch it
Some interesting things I've done in the past few years:
- Maintained an autolayouts library for Swift that is now deployed in over 15 applications
- Worked at large scale at Booking.com
- Developed a macOS app that can analyze and summarize your productivity for ClockAssist
- Made a hybrid Android / iOS webview based solutions with an automated pipeline that can create, upload and deploy a new application purely based on a single configuration file
- Created an application that had to process huge amounts of data and show it in real-time on a globe
- Created a mobile Real-Time Massive Online game show built for hundreds of thousands concurrent users using Elixir
I always like to learn new things, but even more enjoy making other people better
I also write blogposts on this website:
I currenty bill on a weekly basis. I do not work on fixed-price projects but I can help you getting your work done within the expect timeframe and expected costs
- Want to hire me as a senior, staff or lead developer?
- Want to invite me as a speaker or educator?
- Have any question?
Drop me a line!