SoftwareDeveloper

One Day in the Life of a Software Developer

One Day in the Life of a Software Developer

by Carolin Dirks

To be honest, most maths students who are just about to finish their studies have no specific plan of what kind of job they want to pursue after graduating. Up to that point, they might have realised what they did not know in their first semester, namely that there are plenty of opportunities in different areas of industry and academia for a mathematician besides the “obvious” choices, like the financial sector and insurance companies. Artificial intelligence, automation technology, big data, deep learning, computer vision – just a few fields of great interest for modern industry, and all of them are very closely related to maths. Most of them seem to promise a much more exciting job opportunity than an insurance company – with so many possibilities, why did I finally decide for a job as a software developer in an insurance company? The short answer: Because it offers a huge lot of fun, exciting tasks, complex mathematical and computational problems, and besides, great colleagues and an outstanding working atmosphere.

Let’s have a look at the long answer. For me, during my last years at the university it became clear that I wanted to be a software developer. Solving specific tasks using logical skills and computational tricks and contributing to something “useful” were the important parts for me, in addition to a strong desire for a preferably stress-free and enjoyable working atmosphere, while I did not really care about the specific application behind my work. The job advertisement at a big and well-known German insurance company sounded exactly like what I was looking for, next to the very good reputation of the employer regarding the labour conditions. So I took the chance, honestly without a specific imagination of how a “typical day” as a software developer would look like.

Now, 1.5 years later, I am still not able to say what a typical day looks like, simply because every day can be very different. Every day can pose different tasks and new challenges, with almost no repetitions, with lots of new things to learn, with lots of new insights – and the more I understand how things work, the more I can participate actively in new areas of responsibility. A developer is not only the aimless “executor”, but also needs to keep an overview of the whole software architecture, stay in touch with the “client” (in my case, the company itself, especially those who are going to work with the new software after its release) and other departments and work together with the rest of the team in order to develop a viable product. Thus, the best way to describe what I am really doing is to divide my tasks into three “areas”: The learning part, the conceptional part and the implementational part.

Carolin Dirks

My first year in my new job was dominated by the learning part. A mathematician is typically not educated in many practical skills, a mathematician is educated in independence, learning receptivity and frustration tolerance – in being able to understand complex problems and find smart solutions by her- or himself. Basically (and hopefully not sounding overbearing) a mathematician is able to understand almost every problem, and this is in my opinion one of the main reasons a mathematician is hired. Consequently, I needed to learn a lot, about programming languages and especially about state-of-the-art tools and technologies in software development. This was a whole new world for me – before, I had literally only implemented “plain code” without a suitable development environment, without fancy testing tools and without connecting to databases. And for me, there are very few places which are more suitable for getting a wide insight into so many different fields connected to development. Learning is not only considered to be necessary, but also promoted – and everyone in my department is encouraged to spend time on learning. Additionally, we have the philosophy that, roughly speaking, every developer in my team should be basically able to do every task – of course everyone has some kind of focus, based on his or her knowledge, but everyone is also encouraged to undertake tasks where he or she is a complete beginner.

Today, learning new things is still a daily business in my job. Another part which becomes more and more important is the conception and discussion of particular features of the new software. The “clients” (in our case, the “specialist department”, those who, in contrast to me and my team, know how an insurance as a product needs to work) decide about new features they want. This can be a very small and simple request like “I want this button to be green instead of blue” or a big new feature like the possibility for the customer to report a damage case. The developers (like me) discuss the technical requirements and details, check if everything is technically possible, roughly figure out which parts of the software are affected and what has to be done and wrap everything up in one or more specific tasks. In addition, the developers can contribute their own ideas or write “IT-only-tasks” (tasks which do not bring a visible new feature, but are necessary for some other reasons).

Consequently, the last part is the implementation part – namely solving the tasks. This (mostly) means implementing new pieces of code, integrating them into the complete software (after a quite strict reviewing process by other developers) and writing automated tests for the new features. One task can take from a few minutes (like the green button) up to several weeks, often accompanied by further discussion rounds with the “insurance experts” or with other developers. Besides, a task can be done completely alone or even in a team of several people – in every case, the whole team discusses everyone’s tasks in a daily meeting together, where problems can be put on the table or opinions can be exchanged. All in all, everything is based on teamwork: If you don’t know the answer to a question, lots of phone calls and sometimes a whole bunch of people staring at the problem later always lead to a solution.

All three parts together make this a perfect job for me. As an applied mathematician, I am still able to make use of the skills I acquired during my studies and still solve complex problems. The job does not only require programming skills, but also the ability to “delve into” specific issues and to analyse all sides and effects of a problem, while always raising new challenges and opportunities to learn new things – but without the pressure of exams and the question of “what should become of me” in the future.

Posted by HMS in Blog
Carolin Dirks

Carolin Dirks

Born in Steinfurt, Germany • Studied Maths at the University of Münster, Germany • Highest Degree Doctorate in Maths • Lives in Steinfurt, Germany • Occupation Software Developer at LVM Versicherung (insurance company)

When I started studying maths, I was frequently asked what I was planning to do after graduating. “Who wants to hire a mathematician? Do you want to end up in a boring job working in the financial sector or in an insurance?” Of course, like most of my fellow students, I did not have a satisfying answer to these questions. Today, after several years of studying and struggling with lots of formulas, proofs and theorems, I have learned two very important lessons: First, that there are thousands of opportunities in very different branches of industry and academia a mathematician can take, and second, that having an inspiring and exciting job and working for an insurance is not a contradiction.

And what came next finally took me to the decision to stay with maths for the rest of my life: I realised that I was not the worst student (though not the best either), and I was fascinated by the clarity and pure logic of mathematical problems, forming a huge contrast to the, in my opinion, very unclear analysis of poems and classic literature (sorry to those who would disagree with this point).

In my experience, studying maths is a decision made out of the interest for logical structures, for clarity and puzzles, but not for a particular future job. Unlike many others, the presence of this interest was not clear to me until I reached the last years of high school. Thus I cannot claim that I had always been fascinated by mathematics, though I was never a bad student, my interests lay elsewhere – largely in learning languages, which I still try to spend some time with beside my current job. This changed due to a sudden and, at least in retrospect, very fortunate coincidence: When I had to choose my advanced courses for my last two years at school (every German academic high school student has to decide for two), due to organisational reasons I ended up in the advanced maths class. For a few weeks, I was quite depressed, being sure that I would be the most stupid student next to all those maths geniuses. And what came next finally took me to the decision to stay with maths for the rest of my life: I realised that I was not the worst student (though not the best either), and I was fascinated by the clarity and pure logic of mathematical problems, forming a huge contrast to the, in my opinion, very unclear analysis of poems and classic literature (sorry to those who would disagree with this point). Out of this fascination I finally made the decision to study maths, without having a specific career aspiration and even without having any idea about possible careers.

Although in my opinion, society made great progress in overcoming gender-specific obstacles, I also made the experience that women interested in computer stuff are still a bit unusual. This caused me to be suspicious – would I be good enough, would I be able to establish myself in this branch and would I find a job as a mathematician?

At the university, I fought my way through the first few semesters without a specific plan – but instead with lots of very close new friends with the same mind-set, since studying maths is not least a matter of team work. In my fourth semester, I first encountered the field of numerical mathematics, which, roughly speaking, can be explained as the area of intersection between maths and computer science. I realised how closely related these two fields are: Computer science can be used to solve lots of mathematical problems, while every computer program uses the “language” of mathematics and logics. I was fascinated by the variety of applications and decided to concentrate on this field in my further studies. And slowly, very hesitantly in the beginning, I started thinking that maybe I could become a software developer. Hesitantly because up to this point, I never had any points of contact with computer science in my life, not because I was not interested, but simply because it never came to my mind. Although in my opinion, society made great progress in overcoming gender-specific obstacles, I also made the experience that women interested in computer stuff are still a bit unusual. This caused me to be suspicious – would I be good enough, would I be able to establish myself in this branch and would I find a job as a mathematician? To find the answers to all these questions, I needed to try it out – so I tried, and it was worth it.

Before this rough idea could emerge to a specific plan, a few more years had to pass by. After graduating, I was still insecure about what I wanted to be. Not only, but also not at least in order to postpone a “final” decision, I decided to stay at the university and do a PhD, despite again fighting with my doubts of being good enough. This turned out to be a great idea – I was now able to contribute my own ideas and, in this way, further develop my interests and strengths, all the time attended by a great, supporting and understanding scientist. And although I was for sure not the best student (thanks to my supervisor’s patience at this point), I finally made it, having learned one of the most important lessons in life: You can do it if you really try.  

At this point in my life, I knew what I wanted: To use my mathematical logical knowledge in combination with my (at this point, quite acceptable) programming skills to contribute to something “tangible”, something someone could really make use of […].

After finishing my PhD (and now, with a particular plan, namely to become a software developer), I applied for my first job outside of academia. At this point in my life, I knew what I wanted: To use my mathematical logical knowledge in combination with my (at this point, quite acceptable) programming skills to contribute to something “tangible”, something someone could really make use of (sadly this is something missed by many maths students during their studies). The explicit sector was not important for me, since I found for myself that those really deep and specific programming problems are fascinating no matter if the application behind is just a web-enabled water boiler. So I thought, why not an insurance company? The job advertisement sounded very interesting. The company was looking for developers for a completely new contract software, which would be used by the insurance agencies all over Germany. This promised not to be the boring insurance job every first-year maths student is afraid of, so I took the chance. Retrospectively, I am very happy about the path I took, and proud of having had the courage to take it, regardless of my doubts and fears of not being good enough. Although this is something several maths students have in common, most of my former fellow students also share the ability of tenacity, they do not give up easily, but make their way and realise that it works – in the end, the struggle was worth it and I would strongly recommend to just give it a try.

Posted by HMS in Stories
Carolin Trouet

Carolin Trouet

Born in Trier, the oldest city of Germany Birth year 1966 Studied Business Mathematics at the University of Trier Highest degree Diploma in Business Mathematics Lives in Mainz, Germany Leading teams in Software Development and acting as Chief Agility Master in the Airline IT Industry

In primary school, I struggled with math. My mother put a lot of effort into making me understand the difference between “plus” and “minus”. We were the first kids in Germany familiarized with set theory, working with books but also with these small boxes with plastic shapes of squares, circles, and triangles in different colors. My fascination for math started with geometry, with divisibility rules that our primary school teacher encouraged us to identify by ourselves and with the first mathematical proofs. When I was at grammar school, our teacher in mathematics told my mother: “She will never study mathematics, she is too lazy.” He was right about the laziness. My nickname is sloth, as I love lying in my hammock reading books. But I was fascinated by the ability of mathematicians to transform one problem into an equivalent one we can (easily) solve. The University in my hometown organized an open day and I attended some lectures. That’s when I decided to study math. It was a lecture about infinity and one on how to describe oscillations. This convinced me finally. When I was at university, our professors told us: “Later in your job most of you will never deal with mathematical problems like at University.”

Contrary to my professors’ prediction, I was one of the rare species among my fellow students who applied what we learnt at University.

My professor in numerical mathematics gave me the opportunity to work in a research project on optimization in robotics. Moreover, I received the opportunity to present the project at the industry exhibition in Hanover. He gave me trust, which created self-confidence I never had before. He changed my life. At this exhibition, I met my later husband. As he was living in the Rhine-Main-Region, I skipped my plan to obtain a PhD at my University. Instead, I searched for a job. This is how I started working in a very fascinating industry, the airline IT, as a software engineer in the area of flight optimization. Dijkstra for many years was and still is the algorithm of choice for solving shortest paths problems. At least it is a good basis. It is no longer sufficient due to many influencing factors such as regulations of air traffic flow. Cost optimality means reduction of fuel consumption, but also of overflight costs that are very hard to model. Contrary to my professors’ prediction, I was one of the rare species among my fellow students who applied what we learnt at University. Of course, not all problems in our industry are of this complex nature. However, developing algorithms and implementing software was complicated enough to keep me enthralled. So finally, both were wrong, my math teacher who said I would never study mathematics and the professors. Or did I want to prove them wrong?

It is a welcome change in a captivating profession of forming high performing teams, of dealing with trust-building and the soft facts of human interaction.

After 7 years, I decided to do something completely different. With my knowledge about software production, I joined a small team, the staff in the strategy department of our company. I gained insight into many different departments, sales, production, evaluation of acquisitions and business plans. Finally, I realized software production fascinates me most. So I returned, working in the role of a project manager for a completely new product development. Growing more and more into the leadership role, I was responsible for forming teams to build and operate many of our software products, applications managing the schedule preparation and operation of our airline customers worldwide. After 20 years, I returned to my roots, flight optimization. Developing algorithms for trajectory optimization is not my occupation any longer. Today, I am acting as a sponsor for our projects with the Zuse Institute in Berlin. It is a welcome change in a captivating profession of forming high performing teams, of dealing with trust-building and the soft facts of human interaction. I feel privileged, working in an international environment with diverse teams. Enhancing my knowledge by newest research in neuroscience and systems thinking is combining my private interest and profession.

The combination of rationality and empathy is not only possible; it is the theme of my story.

My favorite shape is the circle. Or is it more an upward spiral? Trust creates self-confidence. This is what I learnt in the research project at University and from my professor and my husband, who encouraged me very much in my professional development. Feedback and reflection create learning and improvement. The most amazing teams I know learnt from their mistakes and never stopped deriving actions to improve. Fearlessness creates the willingness to take responsibility. This describes very well the environment in which I could and still will grow from one role to the next. I had and still have colleagues and superiors I can talk to very openly, speaking my mind. I am not “punished” but supported in case things go wrong. As a mathematician, I have shown my ability to solve complex problems, as a leader I need to support teams to grow in a changing world. I love the following quote from Virginia Satir very much: “We get together on the basis of our similarities; we grow on the basis of our differences”. The combination of rationality and empathy is not only possible; it is the theme of my story.

Posted by HMS in Stories
Kristina Thurmann

Kristina Thurmann

Born in Lippstadt, Germany • Birth year 1988 • Studied Mathematics in Münster, Germany • Highest degree M.Sc. in Applied Mathematics • Lives in Friedrichshafen, Germany • Occupation software developer (automotive sector)

I have always been fascinated by mathematics, to be precise by calculations and computations. My parents first noticed my interest in maths at the age of 5. We often played a game called Kniffel/Yahtzee where at the end all points had to be accumulated and that was my favourite part of the game. I just loved adding up all these numbers.

My interest got even stronger during high school: in the year book one of my descriptions by class mates was „i = √(-1)“. This expression summarised pretty well my time in high school. I adored mathematics and I never had any problems in studying and understanding the subject and its concepts. But then I decided to study mathematics in university and the problems began…

We motivated each other and I slowly started to love mathematics again especially the beauty of mathematical proofs.

In the beginning, I struggled a lot in how to study. I know that sounds weird but in school I never had to study to get good grades. In school we never proved any theorem, we just used all these formulas resulting from them. However, in university I learned why these formulas are correct. In the first years of studying mathematics, I learned the basics of analysis, linear algebra, stochastic, logics and numerical analysis. I failed a lot of these exams and at some point, somewhere around the fourth semester, I even thought about quitting and doing something else. Fortunately, at this point I realised that most maths students struggled with the same or similar problems. This common issue and uniting quest created a strong sense of community among the students and that was one of the best parts of studying mathematics for me. Everybody, even the professors, were very helpful and supportive and I never felt alone. We motivated each other and I slowly started to love mathematics again especially the beauty of mathematical proofs. At the beginning of the master studies, I attended courses in applied mathematics with practical applications in the field of biomedicine, e.g. image processing in MRI, PET and CT; in numerical analysis classes I learned to write code and implement algorithms. That was my first experience in coding but to be honest I was not expecting to be a software developer one day.

I also conducted job interviews and I have learned that it is not important what you did, it is important what you love and where you want to be in the future.

After finishing my master thesis, I did not have any clue about where to go or what to do, it was hard to find job advertisements where mathematicians are mentioned. So, I signed up in several job portals and got job offers as a software developer. First I started in a consulting and engineering company and gained work experiences as a developer and a project manager. I also conducted job interviews and I have learned that it is not important what you did, it is important what you love and where you want to be in the future.

At the moment, I am working for a company which is a worldwide supplier of driveline and chassis technology for cars. Specifically, I am responsible for shifting strategies. That means I am getting a so called “change request”. Within this change request I get a specification about the functional change of the software. For example, the customer (automotive manufacturer) wants the car to behave in a certain way, like shifting to second gear only when engine speed is above a defined threshold. My task then is to understand the request, to change the software/code, to test the new software and to document everything I did. Of course this is an easy example and the reality is much more complex but the complexity and the diversity of my job is what I like.

Looking back, I am so happy that I studied mathematics because it got me where I am right now. If I could tell my 20-year-old self a piece of advice: “Just do it, you will learn so much about yourself, about logical thinking. It is a long way, be patient with yourself, surround yourself with like-minded people, they will help you to stay on track and enjoy your time at university. Do whatever you like and makes you happy.”

Posted by HMS in Stories