Blog

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
One Day in the Life of two Mathematicians Juggling with Data

One Day in the Life of two Mathematicians Juggling with Data

by Mara Hermann & Marisa Mohr

The daily routine of a mathematician in the field of Data Management & Analytics can be diverse: Data collection, preparation and analysis, the design of artificial intelligence (AI) models, and much more. The opportunities to get involved in a data project are usually not limited to one’s own field. We, Mara (Senior Big Data Scientist) and Marisa (Senior Machine Learning Engineer), are two mathematicians who juggle data in a variety of ways every day. In this blog post, we describe what a day as a data juggler is like and how we use mathematics in our everyday lives.

If you study maths, you are faced with a wide range of possible career paths. But you should definitely take a look at the field of data management & analytics – not just because the Harvard Business Review called the data scientist’s profession the sexiest job of the 21st century [1]. In recent years, many specialised job titles have emerged, for example “Data Engineer”, “(Big) Data Scientist” and “Machine Learning (ML) Engineer”. However, they all have the same aim: to process data in such a way that useful information can be extracted (learned) from it and computers can act intelligently based on this knowledge. In particular, working with and implementing AI algorithms requires more than just AI experts – it’s a team sport. Regardless of their job title, it takes many different specialists working together as a team and complementing each other. Other areas of computer science such as database management or software engineering are also becoming increasingly important. 

Marisa, what is your role as an ML engineer in the team and when do you still use maths?

Due to the above-mentioned diversity and the numerous connections to other team members, it is difficult to describe a typical day of an ML engineer because every day is characterized by new challenges – fortunately. However, even with the most complex challenges, our mathematical-analytical approach does not make us despair.

The mathematical modelling of data in a learning algorithm, be it through a slightly more applied, specialised linear regression, or through a fancy artificial neural network, usually takes up no more than the last 5-10% of a whole data project. For a prediction to work really well, the end-to-end idea is crucial. Where does the data actually come from? And what data do I need to arrive at a valid result? Do I have the right data? Can I get to more profitable data, or do I have to change the prediction goal? It’s crucial to understand the big picture. After all, you need exactly the data that fits the problem you want to solve. 

All of AI […] has a proof-of-concept-to-production gap. […] The full cycle of a machine learning project is not just modeling. It is finding the right data, deploying it, monitoring it, feeding data back, showing safety — doing all the things that need to be done to be deployed.

Andrew Ng [2]

In general, an ML engineer is a person who helps deploy machine learning or artificial intelligence algorithms in a productive environment so that they can be used in the day-to-day business without difficulty. That sounds like a lot of infrastructure operations and software engineering, and yes, that can be a big part of an ML engineer’s job. You have to understand the existing IT landscapes and systems at the customer level to decide how to build a pipeline in those existing systems between the data and the output of a prediction, and how to deploy everything at the end. But as mentioned before, AI is a team sport. Of course, as an ML engineer, I’m not the specialist in everything, but it’s important to stay on top of everything.

Marisa Mohr

Now, how much mathematics is needed in this interdisciplinary field as an ML engineer primarily depends on the level and interest of the individual in the mathematical-statistical techniques that are being used. There is this type of ML engineer who spends all day building infrastructures or programming software to make an intelligent algorithm run productively in the client system. This kind of ML engineer is certainly more influenced by computer science than I am as a mathematician. I admire that, but I could never get lost in coding, and the good thing about being an ML engineer is that you don’t have to. The profession is so multi-faceted and multi-dimensional that everyone can follow their own passion and take their personal role in the team – with the bonus of dabbling in other roles every now and then.

As a mathematician, I have taken on various roles over the years. During a project phase, I often take on the role of a general strategist or project manager, ensuring that the team follows the same vision to bring together input and intelligent output in the productive environment. Then, when data modelling specialists are required in the project, I have the opportunity to follow my mathematical passion in the form of smaller data explorations and visualizations, through the evaluation of mathematical relationships in the data, to the selection and training of learning algorithms. The latter also includes consideration of accuracy, training time, model complexity, number of parameters, and number of features. In addition, parameter settings and validation strategies have to be selected, underfitting and overfitting have to be identified by understanding the bias-variance trade-off, and confidence intervals have to be estimated. A deep dive into maths for ML can be found on Medium [3]. As a mathematical minded ML engineer, my role can therefore be similar to that of a data scientist from time to time.

This role change and diversity is what I love about working as an ML engineer, or working in a data project team in general. Another ML engineer could certainly take many more technical roles, especially when it comes to gathering the appropriate data without which no ML or AI model works. And that’s where Mara comes in.

Mara, what do you do all day as a data engineer and when do you still use mathematics?

After my studies in mathematics, I started working as a data scientist for an IT company. When I applied for the job, I was asked in the interview what title I would prefer: data engineer or data scientist. At the time, I was convinced that the latter was the only reasonable choice for a mathematician like me. Even during my studies, I was a working student in the fields of data science and in addition to that, I also attended lectures on data mining, neural networks and other related topics. 

The connections between mathematics and data science are numerous – in fact, data science is mainly the application of mathematical models to various use cases. And I wish this fact would be taught  more often and more emphatically at university.

Have you ever wondered what all that mathematical theory is good for? If you are a mathematics student – have you ever been frustrated about all the types of matrix factorizations one has to learn in numerical mathematics? Or perhaps you are a high-school graduate contemplating the high art of analysis and algebra but you fear it will end in nothing?

I can soothe you: The use cases for mathematics and its theories are boundless. 

Mara Hermann

One of my favourite examples that I encountered during my job as a working student are recommender systems. A great introductory article on this topic can be found on Medium in which recommender systems are defined as “algorithms aimed at suggesting relevant items to users” [4]. Those items could be for instance products in an online shop or movies on a streaming platform. The interaction between items and users can be represented by a sparse matrix where each entry describes e.g. how a user rated a specific movie or if a user bought a given product. One approach to retrieve information and learn recommendations from this matrix is to decompose it into two smaller and denser matrices, the so-called matrix factorization. One matrix then describes the user representation and the other one the item representation – a great illustration of how a mathematical framework can be used in practise, just to name one example. Also other mathematical methods find use in the theory of recommender systems.

Now I fancied about how various and “sexy” [1] the applications of pure (and sometimes dry) mathematics in data science can be. But if you read this article carefully, you may have noticed that I wasn’t asked about my work as a data scientist but as a data engineer. Why?

As already mentioned, working on AI or – generally speaking – a data project is a team sport and in this course you also get in touch with other roles and switch positions from time to time. With my mathematical background I always had great respect for the role of a data engineer which I thought would be reserved for “real” programmers with an IT background. In the beginning of my studies I wouldn’t have thought that I would ever be interested in coding and, like Marisa, I will probably never be as much into programming as someone who studied computer science. But data engineering is so much more than sitting in front of the laptop, producing green letters on a black screen while typing at the speed of light.

The “unsexy” sibling of data science sure inherits more aspects from computer science than from mathematics [5]. As a data engineer, one designs, implements and monitors data pipelines which may feed a Data Scientist’s ML models. Additionally, data storage and quality are a huge part of the cake. Programming skills and willingness to permanently learn new technologies are indispensable in this job.

With this role description in mind, it’s true that you don’t necessarily need maths for being a data engineer. But that doesn’t mean that mathematicians can’t be good or even excellent data engineers at all. Their education entails a lot more than knowledge in algebra, analysis and many other subjects. It is often said that mathematics and philosophy are closely interrelated, some universities like Oxford even offer lectures combining both disciplines [6]. Even without attending such a course, a mathematics student acquires a lot of soft skills which are basic tools in the everyday life of a data engineer: One has to handle complex systems consisting of different data sources connected through various pipelines. With logical and analytical thinking one can better understand and design ETL (extract, transform and load) processes. Thoroughness and checking for accuracy are key to monitoring data pipelines and ensuring high data quality. Resilience, deduction and reasoning are of great help during performance tuning or debugging data pipelines. With some of these capabilities in your tool kit you have a great foundation for the role of a data engineer, practical experience comes with time. 

Thus, the opportunities for a mathematician in the data sector are broad. Different types of people and skills are required and there are numerous further training possibilities. Also, data projects can be very diverse, since data is everywhere: e-commerce, food and fashion retail, logistics, mobility, smart buildings,… One can always find a use case which fits one’s taste. I can definitely recommend taking the chance and gaining an insight into this branch. 

Regardless of which field of study or career path you choose, I can only encourage you to look beyond the horizon and also get a taste of other roles and fields than the ones you are already familiar with. Be it positive or negative, it will be a learning experience for you. And you will be an enrichment for every team if you can think out of the box.

Literature:

[1] https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century

[2] https://spectrum.ieee.org/view-from-the-valley/artificial-intelligence/machine-learning/andrew-ng-xrays-the-ai-hype

[3] https://towardsdatascience.com/the-mathematics-of-machine-learning-894f046c568

[4] https://towardsdatascience.com/introduction-to-recommender-systems-6c66cf15ada

[5] https://www.stitchdata.com/blog/5-things-you-should-know-for-career-in-data-engineering/

[6] https://www.ox.ac.uk/admissions/undergraduate/courses-listing/mathematics-and-philosophy

Posted by HMS in Blog
A Feminist Rant

A Feminist Rant

Or a Plea for Change

by Joana Sarah Grah

Do you still come across the common stereotypes against mathematicians in general and women mathematicians specifically? Maths is boring, maths is for loners, maths is unsexy (and done by unsexy people – I just stumbled upon this again recently when reading a quote-retweet by Hannah Fry replying to someone who claimed there are no “hot” people that are good at maths – just for the record, I know quite a few), maths is dry and above all – maths is for men!

I don’t know about you but I’m so tired of it. When did we exactly start to think that being good at a subject at school is something to be made fun of or to be ashamed of? I have heard this so many times: “Oh, I’ve always hated maths.”, “Only geeks and losers like maths.”, “I always sucked at maths.”.  But in a – you know – kind of proud way? What’s wrong? Do you like not being able to calculate the appropriate tip when you’re eating out? Do you enjoy not understanding probabilities, hence not being able to evaluate risks for instance? Did you never see the exponential growth of infections during the pandemic – which has always been exponential in the first place – coming? It’s always easier to deny things we don’t understand but are afraid of. In the current situation this is particularly dangerous and even probably harmful for others. Nothing to be proud of if you ask me.

A solid foundational education in mathematics is essential, no doubt. But maths is so much more than being good at calculating stuff. In fact, I couldn’t name any area of application where maths doesn’t play a role. Natural sciences like physics, chemistry and biology, earth sciences, astronomy, medicine, economics, arts restoration – those are just some examples that come immediately to mind. The variety of mathematical fields and the respective methods is similarly vast – there’s so much to explore and really something to be passionate about for everyone. In addition, maths is absolutely no discipline where teamwork isn’t encouraged. In fact, you discuss and brainstorm with colleagues day-to-day (although there are exceptions of course). Interdisciplinarity is key to most problems and projects arising in applied maths.

Now let’s get to the point that bothers me the most and that is the reason we set up this webpage. Unfortunately, it’s still a common misperception that maths is not for women. Pretty pathetic given that we’re living in 2021 you ask? Yes, absolutely, but it turns out we’re still living in a patriarchy. That is why we need to be feminists. 

At the beginning of your studies, you probably won’t realise the disproportion between women and men in maths. You’ll notice that you have very few or even no women professors. Most of the academic staff is likely to be men. The gap becomes more obvious the further you get. Finding women working in the same field at conferences is probably much more difficult than finding men. Seeing women on discussion panels and giving talks will be the exception rather than the norm. It is getting a bit better though and many people are aware of the problem and encourage diversity. Yet the majority of women seem to decide at some point of their academic career that they don’t want to pursue it further. Why is that? Anti-feminists, mostly men, often claim that it’s their personal choice to leave because they prefer a part-time job, a job in a less competitive environment, a job that fits their “abilities” and “interests” more, because they want to have a family and won’t be able to have children and an academic career. Nothing wrong about any of this but the crucial point is having the choice. It is indeed possible to both have a family and a professorship. And it is indeed possible to be a professor while still prioritising your leisure time, your mental health, your family, your friends. Not all women are given those opportunities. Most women don’t have the choice. It is a structural problem, an institutional problem, a societal problem. Maybe you missed the important discussions because you left an informal meeting after a conference day, as you were the only woman and felt uncomfortable, or because you didn’t have childcare for the whole night. Maybe you risk a huge fight with your family, or even ending the contact altogether, or you lose a relationship, because you’re spending too much time writing grants (instead of attending family events, going on your long-planned vacation or caring for your kids – or having kids). Maybe all the people in power making decisions are men and they like to surround themselves with like-minded men.

We need to make women in maths visible for the next generation who are desperately searching for role models because they don’t see them. We need to amplify the voices of women in maths because oftentimes the voices of men in maths are much louder. We need to showcase the variety and – more often than not – non-linearity of career paths including failures, doubts, setbacks, maybe starting all over again, maybe changing fields completely, maybe having children. We need to raise awareness for the lack of resources in schools and universities to highlight women in mathematics, for the fact that mental health is actually physical health and just as important as making sure you stay up-to-date with the literature and back up your work regularly. We need to normalise not working crazy hours on a regular basis, having a family, not having a family, admitting that you don’t know something, asking “stupid” questions (I know it’s stale but there really are no stupid questions, most of the time those are the important questions to ask) and having interests that have nothing to do with maths.

Why do I write this now rather than at the time when we launched our page at the beginning of the year? Because I was afraid I would sound too aggressive, I would probably exaggerate things and because I’m sharing very private opinions and experiences. On the other hand, it was about time. I reflected a lot about this recently and realised how much of it I suppressed or dismissed as innocuous. What really fuelled my anger was when I saw injustices happening to other women, to friends, to the next generation. Most of the time they seem subtle but they do impact your day-to-day work life significantly. I experienced women suffering from imposter syndrome that came across so strong and confident yet still being at the mercy of the broken system and socially acceptable misogyny. Besides the structural problem, there is the everyday sexism all of us are familiar with. Do you find it hard to literally be heard in a discussion? Do you have to raise your voice a bit extra? I certainly had to sometimes. Another classic is when a man paraphrases something you just said and gets all the praise for it. Is this something we just have to cope with? What about strangers at conferences asking you out for dinner during a poster presentation? Uncomfortable to say the least. Something we have to  bear? I have once been told that I should apply for a professorship simply because I’m a woman and these days it’s super easy for women to get a position, basically everyone is accepted. I don’t think that’s acceptable and I wish I had been more assertive in this situation.

I don’t want to close on a negative note though. Thankfully, I had so many more positive encounters during the past years in academia than negative ones. Men and women who were genuinely interested in discussing research, appreciated my advise, gave me very valuable advice, motivated people – especially women – who were struggling and doubting themselves, facilitated socialising and networking at academic events, showed their own vulnerability and insecurities, shared their failures and how they overcame hurdles, educated themselves and were feminists. Let’s take them as an example.

Let’s try to be a bit more understanding, a bit more empathetic and a bit more supportive in this already stressful, fast-paced, competitive environment that academia mostly is. Let’s speak out clearly if we witness any kind of bullying, sexism and harassment. Of course things have to change on a much bigger scale and first and foremost systemically. But every one of us can make a difference – no matter how small – so let’s start today!

Posted by HMS in Blog