Hello. This article is part of a series where we speak with professional software developers, ask them what it’s like to write code for a living, and perhaps gain a few insights into the software development industry along the way.
Our guest today is a Delphi and C++ Builder developer who has an amazingly impressive set of pictures of him smiling nonchalantly on the slopes of some absolutely stunning volcanoes at various locations dotted around the world. Stephane Jordi, also known as Steve, is a Swiss geophysicist who made the move from computer geek to computing applied to real-life needs. He specialized in monitoring solutions, first for volcanic activities, then for nuclear power plant seismic surveillance, and enjoys porting all tools to most known platforms.
Hi Steve thanks so much for taking the time out to speak with us today – I think you just came off a long flight?
Yes after this I am off to bed. I woke up 26 hours ago and am jetlagged ?
Which Embarcadero product(s) do you use a) the most b) regularly?
I would say Delphi for my current cross-platform developments and C++Builder for scientific software. Since I’m involved in data acquisition, I need very low level access to digital boards and things like that. C++ is more inclined to do so as it is compatible with a very wide 3rd party tools environment.
How and/or why did you become a developer?
A little bit by chance. Back in 1980 (started very early), I bought a handheld calculator in New York and discovered overnight on the flight back to Switzerland that it was programmable. I had no clue what that meant. The idea that you could let it record and play back sequences of instructions was like magic. It was an HP-33C with 49 lines (keystrokes) that could be recorded. Then my High School was offering optional classes like cooking, theatre and also computing. That world was still very closed and not accessible. Believe it or not, but I came to software development using punch cards doing Fortran IV on big mainframes. I got hooked.
Do you think you will ever stop being a developer? If so, what would be next?
No. Impossible. Once you get this into your DNA, you just want more. I love everything that comes with development: understand a problem or a need, break it into small pieces, imagine what and how they would perform operations, write the code, swear a lot, and eventually see that it works. The road from complexity to delivery is marvelous.
What made you start using Delphi/C++ Builder?
I was hired for summer job by a company that had only TurboC v2 at the time. That’s how I discovered the C language and the Borland product line, from Prolog to C and Pascal. Then Delphi was released and I really did enjoy the RAD aspect of it. I did know Pascal so it was an easy jump. Then I used all flavors of Turbo C/C++, Borland C++ and then C++Builder which was a natural evolution to follow Delphi. I used Turbo C++ 3 to write my first volcano monitoring software in… Guatemala. I designed the full GUI framework under DOS graphic mode. That made me jump to object oriented programming and my life as a developer was never the same after that. It was a cornerstone.
If you could give some advice to a student who is considering a career as a software developer, what would it be?
To follow his/her heart and try. Find a goal, try to get a project that means something to you and then the end product you produce will be amazing for you. Development is a lot about abstraction, but also a lot about imagination. It’s an amazingly creative process. To me, development is art. It costs a lot of your time and resources, but the result, the satisfaction you get from it is priceless and so rewarding.
Stay informed of new trends and technologies. Discover new ways of writing code like MVVM, Dependency Injection…
Tabs… or spaces?
What’s the best day you ever had as a developer?
The last day of my first stay in Guatemala back in 1993 where I wrote that volcano monitoring software for my Master of Sciences. Spent 6 weeks there and everything was theoretical. Then I checked-in for the flight back to Europe and had time to kill. The observatory is across the street from the airport and I paid a last visit. 3 minutes before I left, we felt an earthquake and I saw my software react instantly, display the seismic wave, analyze it and qualify it as non volcanic. It was a last minute validation of all my work. A blessing. I knew it worked and would help people. [This is one of the most impressive validations I’ve heard of the power of software developers to help change the world for good – IanB]
What’s the worst thing about being a developer?
Being disturbed by persons who don’t understand you have to focus.
What’s the coolest development tip you know?
In my field, multithreading. Essential to acquire, analyze, classify and create charts all in near real time. But it’s tricky to debug.
Work from home, work from an office, work in an open plan / shared space? What do you prefer and why? Do you get to choose?
It’s nice to work from home as, besides family obligations and schedules, you can often organize your time to work when you want without being interrupted. But I could work in co-working or café spaces. When you feel inspired, just stop anywhere, get a coffee and start programming. Don’t let the moment escape you.
Open-spaces in offices though, no way: only distractions.
Tell us something interesting you think we might not know.
I’ve been invited at the Mt St Helens volcano observatory and they didn’t understand me at the time when I said that what they saw of my monitoring software was running under DOS and that I created everything, all gauges, screws, maps, buttons, etc… without any 3rd party framework. Windows was at version 3.1 and didn’t look so cool.
If you could wave a “fix the tech industry” magic wand what would you change?
Security. Today’s world is probably not aware enough of risks. Not only for personal data, but for sensitive infrastructures. Electric grid, hospitals, airplanes… all these could and will be hacked. We could minimize the risk by thinking ahead.
Have you been to Silicon Valley? If so, how was it? If not, have you ever wanted to?
Yes I paid some visits. My job as a geophysicist and computer scientist led me to some governmental agencies in Palo Alto, San Jose, Menlo Park. It was boiling there. I’d still like to visit Cupertino someday…
I have lived for some time a bit further South in Pasadena, CA, close to Caltech and JPL (Jet Propulsion Laboratory) where a lot is done too (Mars missions).
Have you ever met any famous/well known tech figures? Who was it? How did it go?
I was hoping to meet David I next week at his home place where I’ll visit friends, but it won’t work this time because of Thanksgiving. He’ll have some swiss fine chocolates another time.
I’d love to meet Philippe Kahn though. I owe him so much with the tools he provided. But he contacted me after I posted a blog about my career on my website where I thanked him for Borland.
If you could convince someone to consider Delphi or C++ Builder what would your method be, how would you do it?
For C++Builder it would be its close compliance to the language standards.
For Delphi the ease of use if, as a beginner, you want to jump into software development. That language just makes sense and works well.
And I’m thinking kind of like what Frank Lauter said in one of your interviews: why use managed or pseudo-compiled languages (Java, C#) when you can have the real thing? Don’t script, compile instead.
Which tech product do you wish you invented/designed and why?
The portable Tandy TRS-80 model 100 computer we used a lot on top of volcanoes to calibrate and check our instrument directly on the field. I life changer for scientists. It was rugged and had an RS232 interface. Everything you need in the field. It ran on batteries.
If you could live your life again would you still become a developer? Why?
Yes without hesitation, I love that. I was lucky enough to be able to wear two hats at the same time. Being able to write software for a field that I like. I don’t think I would be thrilled to write banking software, even if it’s useful. I was not interested by computing for the sake of computing. But computing applied to something I enjoy is wonderful. I mean, it’s totally crazy to program in the morning and see the results on the afternoon when in the field, inside a volcanic crater for example.
The one thing I would do differently though is not to tell everyone I’m a developer. To avoid becoming the de-facto hotline for all your friends and family computer problems.
How many coffees do you drink a day and is it enough?
Probably two or three, but I don’t need them. I skip them often, being more of a late bird.
Are you a night hawk who codes until late in the evening, a morning person who gets up early and right into or do you keep to some sort of regular office hours?
I always performed best between 10pm and 3am. I love to feel being active when others are not, even if it’s not very convenient. But I’m an evening person for development. I always joke about getting out of bed at 6am but waking up at 5pm.
In your career have you ever “pulled an all-nighter” to deal with something which absolutely had to be done?
Yes absolutely. Not by obligation, by enthusiasm on finishing something I find amazing.
Or by willing to really kill a bug. What’s the point of going to bed if you still think about what you could do? You won’t sleep anyway.
Describe some other things you’ve done in your career which might give readers a background into what makes a developer.
Keep learning, stay patient and always have chocolate near you. Staying up to date with technology is important in order to understand the market and current needs. Also understand future trends. It doesn’t mean blindly following them, but they might define your environment, and your job.
What is the most stupid question you get asked (none of these count!)
How many days will it take? Or worse, how many lines will that software require? Frankly, does it matter? Is it related to quality?
Do you quote for work with clients? If you do, without revealing anything which would make you uncomfortable what sort of process do you use?
It depends on the customers. I usually have a flat rate for a project. I sometimes work by the hour or the day for humanitarian aid programs.
How do you stop clients/program managers/managers from ‘feature creep’?
I always ask against which feature the new one will be developed. You can’t have both in the allocated timeframe and budget if you keep adding things, you sacrifice another one. Let’s first get v1.0 and then we’ll talk about 1.1, 1.2, etc. In that regard Agile concepts may feed feature creeping if carelessly used as they allow adapting along the road.
Describe a typical coding session for you. How does it start? Do you take breaks? Do you have any rituals/habits to accompany it?
I use paper a lot. I write a lot: graphics, flowcharts, ideas, diagrams. Then I do the typing and never stop.
Lately I have discovered that working in small sessions is very productive. I use the Pomodoro technique: 25min programming and 5 min rest, do this 4 times, and then take a 15min break. Try to achieve 10-12 sessions per day. [I also use the Pomodoro Technique – IanB].
Do you listen to music while you code? If so, can you tell us a few tracks/artists/performances?
Rarely. I think it is too much distraction. Some music is perfect though. Classical and I still listen to Peter Gabriel “Passion”. Only instrumental music inspired by African music.
I use a lot “Noisli”, an app that mimics nature environments that you can configure. Low enough not to distract but loud enough to cover ambient noise.
Do you use any methods or techniques such as Agile, Scrum, Kanban, TDD? If so, why? If not, why?
Scrum and Kanban when customers ask me to.
I always kind of used Kanban naturally even before I knew what it was: I had one of those notebooks cut into 4 horizontal bands. Turn it to landscape so the bands become columns and you can add to do lists to each of them, moving items around. Kind of Kanban. I now use DayMap.
Do you track bugs? If you do, what do you recommend?
Yes. I know that first results won’t be correct, but especially know that you can’t ignore them since they will strike sooner or later. And you’d better fix them when you are aware of them. Five years from now, you won’t know why your software is behaving badly and won’t remember the possible source.
Unit testing is capital. You’ll simplify your life and enhance your software quality and stability.
What’s the best question you’ve ever been asked at an interview and how did you deal with it?
Why us? My answer: because I’m going to be free to achieve my work to please anyone
Have you ever had a technical interview which went super-smooth – if so, what’s your advice for others? If you’ve had a disastrous interview what went wrong and do you need a hug?
Yes, a bank wanted to hire me. It went very smoothly. One thing for sure, always better to say “I don’t know” rather than pretend to know something totally new to you. You can add “but I’ll learn, seems cool”. Show that you’re open and not arrogant.
A good software developer:
Is open to others and new ideas.
A bad software developer
Thinks he knows better.
iPhone, Android, Other – and why?
iPhone for day to day use, I love the ecosystem.
Android for cross-platform development.
For a developer: PC vs Mac? Why?
Mac. For cross-platform development.
I like the look and feel of the Mac, but I spend 90% of my time on my Mac in a Windows virtual machine.
What is the one thing you would like to be remembered for?
That one of my software was part of the entire chain that saved just one life.
What is the best developer/hacker/tech/geek movie?
They usually quickly age very badly. But I loved War Games at the time. Not anymore today besides the nostalgy. It was one of the first tech movies.
No developer should be seen without:
A notebook, a pen and chocolate.
If a movie was made about your life, who would you want to play you?
Someone totally anonymous.
Do you have a book, product or service you’d like to mention?
The one that changed my life: Object Oriented Programming using Turbo C++ by Robert Lafore.
As I said, stay open. You always can learn. I’d add most webinars from David I., Nick Hodges or Malcolm Groves. Pretty famous in the Delphi/C++Builder world. But I learned a lot from them. Even after being a developer for so many years.
Do you have a website people can visit, if so, what is it?
If you use Twitter, what is your Twitter handle?
What’s your preferred method of contact from potential clients?
Email. This is not invasive and doesn’t bother about time zones. I travel a lot.
Thanks for taking part Steve – some excellent tips too! I was really taken by what you said of your experience in Guatemala; writing code which can impact lives, positively or negatively, is often an overlooked part of what it means to be a developer.