About René

My name is René van Mil, and I’m a software engineer. I create iOS apps and web applications, with SAP back-ends. Which means I spend a lot of time programming with Objective-C, JavaScript and ABAP.
I live in ’s-Hertogenbosch, The Netherlands.



At my first job, me and about ten co-workers had to work with very complex, slow and annoying ERP software. To avoid working with the terrible software, first I almost completely automated my own job, and then I continued automating stuff for my co-workers. After a while it saved them hours of work each day, and literally made them happy and enjoy their work more.

Ever since it has been my goal to improve the lives of those working with enterprise software. I cannot change the managers who buy this kind of software, but I can change the software itself.

And that’s exactly what I’ve been doing the past decade; building intuitive, efficient and pleasant software for customers who are using an SAP system for their business.

Ofcourse, like any other enthusiastic developer, I have a bunch of side projects as well, some of which you can find published on GitHub, others which you can buy in the App Store, and most of them somewhere in my own /dev folder.

Things I’ve built

iOS Apps

Wine Journal
Wine Journal allows you to store your entire wine collection and all wines you have ever tasted.
Enigma
The Enigma app allows you to communicate encrypted messages with people who also own the Enigma app.
Passwords
In-house app used to remotely access the corporate passwords database through a RESTful API.
Planning
In-house app used to maintain your personal work schedule and submit it to the corporate resource planning system.
Time
In-house app which displays an employee’s current leave quota, retrieved from an SAP CATS system.
Conference Scanner
In-house app which allowed the salespeople to scan QR codes on the conference badges of the people they’ve spoken with, saving their contact details along with additional info such as follow-up actions and conversation notes.

Frameworks

  • ABAP Bitwise Operations and Shifts
  • ABAP CSV Parser
  • ABAP JSON Parser and Serializer
  • ABAP SAP Application Log Service
  • ABAP RESTful Web Services
  • ABAP ports of common Java classes
  • ABAP XML Parser
  • Objective-C SAP client for RESTful Web Services

The ABAP frameworks are available in this repo.

Other

LemonStand Webshop
  • Module which enables full integration with SAP
  • Custom B2B theme
ABAPdoc
Web application which reports similar information like Javadoc does. The big difference is ABAPdoc has a search engine, and shows „realtime” information instead of generated HTML documents. Can be installed on any SAP system, uses a custom built RESTful API to retrieve the information.

The languages I know

The more languages you know, the easier it becomes to learn new ones. Unless you start with ABAP, then you’re doomed ;)
Joking aside, I try to learn a new language each year. It helps me broaden my thinking by exposing myself to new concepts and approaches to solving problems. Early in my career, after spending two years writing mostly ABAP code, I switched to writing mostly Java code for two years. The experience completely changed the way I wrote my ABAP programs. Currently I’m writing mostly Objective-C code, and it’s changing the way I approach things all over again. These are the languages I’ve learned so far:

  • ABAP
  • CSS
  • HTML
  • Java
  • JavaScript
  • Objective-C
  • PHP

How I work

Besides building new things from scratch, I’ve spent quite some time maintaining existing software, written by other people. If there’s one thing I’ve learned doing that, it’s this: there is absolutely no excuse for writing low quality, quick and messy code. It will make the lives of those who have to maintain your code miserable, but even worse, it will make maintaining your software very expensive. Customers will be forced to waste a lot of money on maintenance, which they could have spent on letting us build fancy new stuff instead.

Building high quality software is really hard and requires a lot of discipline. Luckily a lot of smart people have thought of several different ways to make things easier. I have embraced the following approaches/methodologies/concepts to help me make better software:

What I’ve read

Like many other developers, I spend a lot of time reading. There is obviously a huge amount of extremely valueable information to be found on blogs, community sites such as SO, forums, IRC channels, etc. But sometimes a book is the best way to really learn to understand something. Here’s a list of books which have taught me lots of interesting things:

What I’ve taught

I’m a big fan of sharing knowledge. I’ve worked as „coach” and team lead, teaching my co-workers all kinds of things, ranging from very basic stuff like syntax, to entire OO programming courses. Here are some of the most recent things I’ve done:

Domain-Driven Design with ABAP
This was a two-day course for groups of developers with decent OOAD skills. Among the topics was a recap of the SOLID principles, explanation of the DDD approach, and designing and building an application using this approach. Ever since this course, DDD has become the company-wide approach to software engineering.
High Quality Software Engineering
For a developer community day I’ve been asked to talk about the process of building high quality software. I discussed topics such as how to deal with constantly changing specs, working as an agile team, DDD, OOAD, extreme programming, and code quality benchmarks.
Agile Software Development (for ABAP teams)
This presentation was an explanation of the agile manifesto for a non-technical audience.
Web & Mobile API’s in SAP
A developer workshop explaining how to efficiently build a maintainable RESTful web API on SAP systems.
Regular Expressions
A developer workshop explaining the basics of regular expressions along with a bunch of practical examples and exercises.

Contact

Since you’ve made it this far, you might want to get in touch with me :)

Email
rvanmil at Apple’s iCloud service