John Braun's blog

About

I'm John Braun, living in The Netherlands and currently finishing up my PhD in Organic Chemistry in the Sythetic & BioOrganic Chemistry group (SyBOrCh) at the Vrije Universiteit Amsterdam. You can find me on Twitter, LinkedIn and GitHub. Since May 2019 I'm a Laravel Certified developer.

How I got into programming

Chemistry

While I was in high school I was already fascinated by programming, however at a certain point my interest in chemistry took over. The science which describes the incredibly tiny particles that make up our world: from the air you breathe to your DNA and (unless your standing) even the chair you are sitting on while reading this. My desire to understand how all of this works, was a motivation to dig deeper. After studying chemistry, I eventually got a chance to start a PhD in the field of organic chemistry. At the moment of writing, I am doing some final lab work and finishing things up.

A better workflow

During my PhD, I discovered the potential to enhance our workflow, by writing custom made tools. Since I had some experience in PHP, creating web applications seemed the obvious choice. Aditionally, one of the huge advantages of web applications is that they're device agnostic: it works in the browser and doesn’t require any knowledge on building Android or IOS apps. On top of that, I learned that — in the era of mobile-first applications — it is really easy to make the site look great on phones and tablets.

New technologies

I hadn’t been keeping up with all of the changes in the “programming world” since leaving high school. Therefore, all the greater was my surprise when I discovered what had changed in 13 years: PHP was back in business and a wide variety of frameworks had emerged.

One of these frameworks called Laravel, made by Taylor Otwell, was especially getting more popular. Laravel’s philosophy is aimed at developer happiness, which is immediately evident from the superb documentation. On top of that, first party companion tools like Laravel Valet (enabling fast, easy local development) and Laravel Forge (easy deployment of projects) really take away the hard work to develop and host your Laravel applications. This blog is also powered by a Laravel specific product: blogging platform Wink, which is developed by Laravel's first employee Mohamed Said. In addition to Laravel's own solutions, I also want to pay attention to the amazing people at Spatie which create amazingly useful packages and empower the Laravel ecosystem.

However, I'll have to admit that it were the amazing video tutorials by Jeffrey Way on Laracasts which tremendously lowered the entrance barrier to Laravel and motivated me to just get started.

How Laravel made things better

The first Laravel project I worked on was aimed at improving our inventory database holding a little over 2000 in-house chemicals. The software we used at that time was sharing a Microsoft Access database file in a shared Dropbox folder. Everyone had reading rights (so they could search) and only our lab manager had rights to write changes to our database. Meaning that our lab manager would need to be notified for each and every update to persist the change (!).

As a consequence, at our yearly ‘lab cleaning’ everyone would get handed out to them a printed list. Next, we would run through all chemicals on that list, checking if a chemical was still present, wrongly located or consumed. In the latter cases, adjustments were added on paper and the list would then be returned to our poor lab manager, whose task it was to make all the changes in the actual database file. A horrible task, I aimed to eliminate by employing Laravel.

Chemical Inventory Database

Chemical Inventory Database

I'm proud that our research group now uses this chemical inventory database application on a daily basis, offering a better experience for its users: everyone can add, update and (soft) delete chemicals and the yearly "labcleaning" now only takes 2 days, instead of a week and provides a simple wizard guiding the users through chemicals in a certain cabinet.

Labcleaning Wizard

Labcleaning Wizard

Programming is fun!

After programming this inventory database, I made a couple of other tools for the group, amongst others: a reservation system for booking our equipment, calculators for our NMR analysis and a Supporting Info Manager (S.I.M.) for managing and automating writing up the Supporting Info section of our papers, based on the synthesized (new) compounds.

I re-experienced how fun and satisfactory programming can be and I am eager to keep learning. Through this blog I want to share tips and tricks for (beginning) developers.

Internal homepage of our research group, featuring the software tools

Internal homepage of our research group, featuring the software tools