7 min read

A day in the life of a Software Engineer at Linkfluence

Don't forget to share this post!

blog-post-example-media

Linkfluence combines artificial intelligence and human expertise to turn social data into valuable insights. Our Software Engineer team is vital to the success of the company.  In this post, Mohammad, our Platform/Software Engineer, shares a day in his life in the engineering team at Linkfluence.

What does your typical morning look like?

In the beginning I had to go to the office every day to get to know everything about the company, the work, and the team I’m working with. As the company is located in the heart of Paris, I had to travel for about one hour to get to the office. At first, it was difficult to spend so much time traveling, but then I became used to it. The first thing I do when I reach the office is preparing my desk to connect all my stuff, say “Hi” to my colleagues and then I grab a coffee and sometimes I find some tasty pastry and sweets left by some colleagues near the coffee machine. This is not unusual at Linkfluence, colleagues always share such pastries and sweets with others, as well as many other things.

Life at Linkfluence is very flexible as they adopt a flexi-work policy, which allows staff to work at home four days a week. This indeed helps me save some time in the morning for more sleeping and relaxing instead of wasting it on public transport. It’s pretty cool sometimes to stay at home working in your comfortable place. I do as I feel today, for instance, if I feel like going to the office, I go, otherwise, I stay at home.

I start by checking my emails and Slack channels so I know precisely what’s going on, and if everything is alright. After that, I resume the work of the previous day, looking at how I can make it done in the best way possible by checking the different online sources for more information to get better results. In brief, my mornings are more about coffee, readings, and following up where I left the day before.

A happy software engineer.

 

What does your work involve?

As an engineer working on some recent tech, I struggle more than others to make the task well done. Thus, I need to read many blogs and documentation, try different code, and test if it works or not. When it is done, I will be so glad that I made it work despite all the difficulties it involves. 

In general, my work involves some research work concerning the different technologies, tools, and methods that are available in the market nowadays to tackle the different problems we’re facing, like solutions to deal with similarity search between embeddings to explore more the images we got at a very large scale. Not only that but also a lot of work on the technical side to test those findings in real-world scenarios in development, staging, and production environments. 

Thus my work as a platform engineer involves dealing with the data at a very large scale from A to Z, including all the different steps where we have to build some services and deploy them on our AWS Kubernetes cluster. Then integrate those services inside our core framework that is responsible for serving the main queries of the user interface, and deal with all the storage and querying tools to be able to store and query unstructured data, especially images and text.

My work is not limited to dealing with one challenge at a time. I never have to worry about what to do next because I have a well-defined plan for almost the next six months or more. For example, I need to build another solution for managing the execution of the cron jobs at scale in which jobs need to be scheduled and executed generating alerts and precise information in case of failure. 

This work involves a lot of research and benchmarking for current technologies that tackle this challenge but, in case more refinement is required, we may go for building a new solution that involves a couple of other technologies such as AWS SQS and AWS cloud watch besides other integrations.

At Linkfluence, as a platform engineer, I have full access to the AWS infrastructure in which I can use unlimited resources, deploy my applications, and do the benchmarking and testing at the scale that is needed. For instance, I am currently using six large servers with 64 GB RAM each just for doing a proof of concept. It is as easy as that, if you feel that some experiment may be beneficial for the product, go on deploy it on AWS, as much as it costs, observe the results and then build a new plan on top of it.

At Linkfluence we work on all the new tech in terms of different big data technologies and tools. Our solution is built on a mature stack of technologies and tools such as Elastic search, Kafka, Spark, Redis, Kibana, Grafana, and a couple of other interesting ones.

What do you like about your job? 

Working at Linkfluence is a challenging experience for me, pushing me towards new levels in my career through gaining more experience and developing my skills (soft and hard). It consists of a variety of tasks that do not let me feel boredom. Every day I learn new things and deal with new challenges in terms of storage, querying, development of applications at scale, benchmarking different technologies, and sharing my experience with others through presenting my work in front of the team or the engineering department. 

The topic I work on is very recent, it is the epic future technology that will access a lot of applications and fields. That made me more interested to explore it and work more to enhance it as much as possible. Besides that, the team I am working with is pretty amazing, they are experienced people that I can learn a lot of stuff from and I enjoy their discussions during the regular meetings. They’ve always got my back, ready to help and give suggestions to overcome any obstacle I am facing. 

The manager is open to discussions and to listen to anyone at any time even not only on a professional level but also on a personal level. The company does a weekly stand-up meeting letting everyone know what’s going on in the different perspectives including production, sales, and other departments, and that makes me feel involved and valued and not just anyone doing the job and that’s it. I feel valued and appreciated at Linkfluence, I can do a change and propose whatever I find suitable to optimize the product. Despite my short time so far at Linkfluence, I feel that I belong to this big family that can provide the help and support needed to evolve and progress in my career. It also makes me feel comfortable while doing the job. 

I will mention once again the flexibility at Linkfluence, as I am allowed to work at home up to four days per week, go full remote at some point and get four weeks per year to work from another country outside France.

In brief, you feel like a Linkfluencer -part of a family- with a lot of interesting tasks to do, you learn on the go so many things and you can be part of the decision-making process valued and appreciated.

A happy software engineer, and a serious software engineer.

What are some challenges you face on the job and how do you deal with them?

Most of the challenges I face at work are technical but still, I have a couple of research challenges as well. These research challenges include the following:

  • The ability to search images and at the same time ask to filter based on specific fields. The query holds both the query image along with the standard query and the result should be another image with its metadata. This challenge can be formalized as “What is the best way to perform a hybrid search involving both similarity search over images and filter on specific fields?”. This question leads to the benchmarking of different methods and technologies used in the market and some of them already answered this question by implementing their frameworks. Despite the existence of those technologies, still we had to make sure that they work with our data that is collected from so many different social media platforms with different parsing formats and can work for real at a billion scale.

 

  • Scheduling jobs at a large scale in which we have to make sure that the jobs are being executed regularly on time, the alerts are being triggered and ensuring monitoring the full execution of those jobs including the cause of failure in case it didn’t go well. This challenge can be formalized as “What is an ideal multi-layered architecture that facilitates the scheduling and execution of the jobs with full monitoring?”. This question is not a trivial one as it requires a lot of study, research, testing, and development to integrate multiple useful technologies in the field to make sure that it performs the task without getting into any bottlenecks.

On the technical side, I face some difficulties in dealing with few other challenges. The first technical challenge is that I am new to Scala and we use mostly Scala at work. I take my time to learn more about it and how to implement using such language, and I use the help of the rest of the team when needed. 

The second technical challenge can be related to the CI/CD pipeline and terraform to deploy the web services on AWS Kubernetes. To cope with such an issue, I ask and note all the steps required to perform the deployment and try to read more to get more information on how things work and what is needed. Also, it is worth mentioning that processing the data at scale and moving it from one storage system to another (such as moving data from our main database to another data storage on AWS) can be painful as we have a huge amount of data.

 

Two software engineers, engineering software.

What attracted you to Linkfluence?

At that time when I heard about Linkfluence, I was finishing my Postdoc at CEA. I was a good fit for different positions such as “Machine Learning engineer”, “Data scientist” and “Data engineer”. 

I was looking for a new experience and something different from regular research work where we spent so much of our time writing research papers, something more industrial and more practical. I was applying for different positions without having a clear sight of what I wanted to do. I was more into a Data Engineering position as I like to play with data and do some cool things and at the same time understand how the ecosystem that performs all kinds of transformations works. 

I was interested to know how things work, not just apply certain machine learning algorithms or some black-box model (e.g., transformer model) and get the results out of it like magic. It was more like I wanted to cope with different technologies, configure it and access it through different modes. And then, I found the attractive Linkfluence announcement on Welcome to the Jungle website where they mentioned the role with the different tasks, background, etc. As I found it an interesting opportunity, I applied for it.

It was a Platform/Software Engineer position which is a very precise description of the job that the candidate will have to do standard software development and at the same time deal with everything related to the platform at scale. I was lucky enough to get called to the interviews in which I met the team, all were speaking out of knowledge and experience. They made me feel comfortable and valued while they described my role saying that “if you want to try anything, just feel free to try it. We are open for any new enhancements in terms of technologies and methods”. They told me how much I can be impactful on the product and that I can be involved in the decision-making process.

And here I am after a few months at Linkfluence, I agree that all they told me was true.

Can you tell us about the culture or values at Linkfluence?

It is extremely multi-cultural including so many different nationalities and people from everywhere all sharing the same goal which is the success of the company and the reputation of the product. Everyone is respected, no one is judged by any means, and all are listened to leading to making a difference.

I learn a lot from others while running discussions during coffee breaks and lunchtime.

What would you say about Linkfluencers? 

They are cool, friendly, professional, experienced, dedicated, passionate and open-minded. Just ask freely about anything and they are ready to help and support you. Knowledge is leveraged from everyone to take the proper decisions and make the best of what they got.

Any hobbies outside work?

Work is one important part of our lives, but still, we have to do other stuff like enjoying our hobbies to stay healthy and focused. 

Every Thursday afternoon, I play football with my friends. On weekends I either go out with friends walking through the streets of Paris and end up eating some delicious meals in some restaurant or stay at my friend’s place and play cards all night. 

When I am not with friends, I like playing video games. I used to play “League of Legends”, they can help pass the day with a lot of fun and joy.  

What would you say to someone considering a role in the Engineering team at Linkfluence?

It is not easy at the beginning, but you’ll learn a lot and will interestingly develop your skills. I think it works if:

  • You are passionate about tech and working with different technologies
  • You are seeking challenges that can blow your mind off
  • You would like to work in a company where the product is built by engineers 
  • You would like to deal with an extremely huge volume of data 
  • You see yourself as part of the decision-making process in every step related to engineering
  • You're always willing to learn and got a team spirit in your way of thinking and working

Don't forget to share this post!