Can you tell me how you got into coding?
I started getting interested into coding in the first year of high school. We could pick different workshops on our school and I chose technics, which ‘programming’ was also a part of. Unfortunately we didn’t really get a teacher that was able to teach coding, meaning that we had to teach ourselves nearly everything. Which is something you can only do if you’re motivated enough. Before the workshops I was mostly interested into the hardware of computers, which of course changed when I tried out coding. It sparked an interest in me, which led me to take an appropriate follow-up education.
Can you tell me more about the company and what you will be working on at the project?
I’m currently working at Royal HaskoningDHV. An international company, that has about 6.000 employees worldwide. They have offices all around the world, for example in countries such as the United States, South-Africa, the UK, India, Australia, Brazil, Nigeria, Singapore and the list goes on and on! It’s an engineering consultancy company, active in aviation, buildings, energy, industry, infrastructure, maritime, mining, rural, urban development and water. In broad lines, I’m working on a web-interface that is connected to an API, which is in turn connected to a database (I also work on both of those). The purpose of it is to make employees able to input their data in the web-interface, and access the data in a third-party application using a plugin. Now, they’re using excel sheets for this, which they (understandably) want to get rid of.
What is the biggest difference between working at the project and working at Competa HQ?
There are quite a few, it’s difficult naming the biggest one. So I’ll just name the two that come to mind first. First of all, since it’s such a big company, everything is top notch and the offices are huge. Almost everyone works with three screens or more, and there are coffee machines around every corner. There are pool tables, table tennis tables and there’s even an indoor pond with small turtles! But another big difference is that there aren’t any interns here, the average age here is a lot higher than at Competa. This creates a completely different work atmosphere, and the professionalism is on a higher level, as expected. Of course this doesn’t mean that there is no place for jokes, but you’re expected to take your work seriously and share your input on work related matters.
I’m assuming you are coding right now, can you tell me a bit more about what you’re working on?
Right now I’m working on a template system. We are able to have several projects in the database, each project can contain objects, and each object has a set of properties and/or another object. I’m making it possible to predefine an object via a template; so that you have to define what properties it has only once. Then you’d only have to specify its property values and how many instances you want when you want to add it more than once. Quite a few things have to be changed in order to support this, so I’ve been busy with it for a while.
Which techniques are you using?
For the back-end we use Python, and a MVT framework called Django. A MVT framework is basically the same as a MVC framework, but with Django your View is called a Template, and your Controller is your View. Hence; Model View Template, instead of; Model View Controller. We use GitLab instead of GitHub. They are comparable, but GitLab has extra functionalities, like an issue board, which operates something like Trello. Unfortunately it is also less stable, which is quite noticeable. For the front-end we don’t use a framework, since at first glance it seemed that we wouldn’t need one thanks to Django’s templating system. But as time moves on, a front-end framework would have been increasingly welcome. Meaning that the front-end is currently being developed in ES6 and SCSS. For compiling we just use Webpack, which is not that surprising I guess. We also use Heroku and Docker for CI (continuous integration). Every time you push, it will build a container and show whether the build succeeded or failed. If you merge into master, it’ll build a container and automatically push it to Heroku, Heroku will then deploy your container and make it accessible just like a normal website.
What is one thing you have learned at your project so far?
Amongst other things, Python. I already knew a (little) bit of Python before I got here, but due to certain circumstances the back-end had to be written in Python. And since I had to build everything from the ground up, my knowledge of Python grew really quick. It also helped that I was the only one working on the back-end for quite some time. So I had to learn everything, instead of just some bits.
What does your average day look like?
I work two days a week in Amersfoort (the HQ of RHDHV), which is quite a trip, where I work with people from a hackathon team. They want to automate certain work processes that they normally have to do by hand, by writing scripts. Meaning, that these people are not full-time developers and can only devote two workdays per week to developing. So usually during those two days I spend some time helping them and answering questions, showing good practices and explaining them what could be improved, like being in a team of three and all push to master (yes they actually did that). The rest of the time I just spend there working on my own, sometimes we have demo’s, but since their sprints take four weeks they aren’t that common. The remaining three days I work in another office in Rotterdam. There I work with only full-time dev’s and most of them I would call senior, I spend some time each day just listening to them while they are discussing some certain problem. There is, I think, a lot I can learn from them. Every now and then someone comes by to give a presentation or to talk about a project, but other than that my daily routines here aren’t that exciting.
What skills do you need to have in order to work for a client like yours?
A lot. You need to know a bit of everything, RHDHV is not a software/web development company and only has a small team of developers, but a lot of potential projects. Plus, they don’t have designers or UX people. I, for instance had to know how to design a database and realize it, how to make an API, make a front-end without a design while not making it look completely horrible (I think I succeeded), while also playing my own PO and scrum master for the biggest part. Don’t get me wrong; it’s a ton of fun like this. You get a lot of freedom, which is great, and it’s not like it’s disorganized (even though it might sounds like that). You just have to be a ‘flying keeper’, like we say here in the Netherlands and be able to respond to certain situations quickly.
How do you keep in touch with your Competa colleagues?
I use Slack a lot, some colleagues work on the same location, so that’s easy, and I also try to go to every Competa event in order to catch up with you guys!