One year ago, I landed my first job as a full stack web developer at PayFit.
A french startup who is reinventing the online payroll system and the way we manage HRIS (HR activities and processes that occurs electronically).

I’m currently working in the iTools squad, in charge of building apps and tools to make a PayFiters’s life simpler.

When I arrived, they told me that I would be working with the marketing, the lead generation, sales ops, payroll experts, customer success, product, HR teams and probably others in the future. Awesome ! I’ve always been concerned with not wanting to feel locked into one single team.

PayFit had never asked developers to work with this many teams before, so it took a lot of time and effort to make sure that it worked well for everyone involved. But after some trial and error, I now find myself every day working on new but very specific business needs.

And because my position here doesn’t look like that of any other developer’s, I’ve decided to share my thoughts on how we do it.

Here is my practical guide for the Swiss-army knife developer job @ PayFit:

You have an idea? Oh wait, I have an idea too!

First Step: Listen to each other and gather information

Having to work with a lot of different people means everyone becomes a project or product manager without actually being one. ¯\_(ツ)_/¯
We all have different backgrounds and various previous experiences (sales, payroll experts, marketing, communication, development etc).
With so many different inputs, the need or the issue we are facing must be defined from all possible angles and each person must understand the stakes at risk both technically and for the product.
This step might take a bit of time but it is fundamental for the sake of the project itself. But we need to make it efficient too, which can be very time consuming.
We have learned over time how to do it properly.

Can we do this and how are we building it?

Second Step: Is the information persistent and how can we scale it?

This is the part where I have to play the role of a technical consultant and have to understand the exact need, then translate it into a technical solution, with actual code.

My consulting job can be summarized as follows :
Search, test, and suggest new apps, new APIs, or new way to use the current ones, while surveying the technological landscape as it always changing.

There are a few tasks that need to be fulfilled so we can jump to the next step.

What is the use-case, how can we make it work on both sides (tech and product) and most importantly, can we make it scale ?

We have to be very vigilant here, we have to discipline ourselves to use a certain solution or tool only if it fulfills at least three requirements:

- Can we make it scale?
- Is it flexible?
- Can we maintain it?

We have a lot of code that we are able to review, store and version control, but we also have some code that we implement in other tools cannot be reviewed as the one we push on GitHub. It also can’t always be tested in a sandbox or in a development environment. So this requires that we create code that has to be understandable by anyone that could come across it in the future.

We also have to be able to make it scale quickly as well (ie, how many countries will it impact in the future ? how many users ? how many requests etc).
Luckily we have the chance here at PayFit to work with the latest and most efficient apps:

Our landing page content is 100% distributed by the Contentful API, which allows anyone here to create, manage, and distribute content whenever they want to, such as creating new pages (urls, updating HTML tags for SEO improvements, managing assets on live pages etc).
As long as the API can be parsed and interpreted upstream then it’s good to go (which is my job to handle).

We also develop integrations for tools like Hubspot (marketing and sales teams) or Zendesk (payroll experts and customer success team) and Zapier to give to all of our PayFiter’s the information and context they need.
They provide us a complete api which allows for all of our ideas to be fulfilled.

And last but not least, we all have to walk in our users shoes. There is an UX aspect that we cannot neglect, and everyone in our teams has to be aware of it.
So far, every team is doing a great job at this, we all need to step out of our usual tasks even if it’s hard hard and frustrating at first.

Thank Zeus for APIs!

Third Step: Code DRY, KISS, YAGNI

This one is on me, now that everything has been defined, I have to go through our various tools’ APIs and documentations and make the magic happen.

Once everything matches the specs we listed earlier and I’m done with the coding part, it needs to be tested, broken, approved, re-tested, fixed, and tested again.
We have several testing environments we use to achieve this, so that we can improve our work again and again.

Certain features such as SEO improvements, or temporary marketing events must be shipped and deployed ASAP. This has been very challenging for all the concerned teams.
But this step has now been made easy thanks the our amazing SRE and Scale squad, who provides us with great tools for our deployment environments.

Wait! It’s actually working as expected?

Fourth Step: Data is beautiful

The last step is about monitoring, checking, tracking, and learning how to use and gather all our data.
I also train others on how to use these new tools, where to look to get the info we are sending or receiving, how to manage the content, what metrics we need to monitor, how we can anticipate behavior to make our product scale, etc.

Once again we have to arrange meet-ups and share our knowledge. Some are using the tools via a certain interface (product side) while other might use it on the tech side and we all need to understand how data is collected and used.

What’s interesting about doing this?

When I started this job a year ago I wasn’t expecting such a difficult learning curve. Working with so many different teams has given me the opportunity to face a new challenge with every new task; a new app to discover, to suggest, a need to fulfill or simply a chat with someone who has very different skills and tools than me but the same goal.

I have to popularize the way we (developers) handle data and create web apps, everybody is learning from each other and I get a better view of the product and the actual need.
This taught me an immense amount.

I have no borders with my daily job, when a need comes from a team, I can just grab my computer and spend a whole day or week working with them soaking up everything about the issues they come across or the needs they have.

We can work everywhere at PayFit, and this spirit shows how much we value teamwork.

What does it lead to?

This way of working leads to something new for me, and I hope for others as well.
I’ve always been interested and implicated in the general life of a product, this gives me the opportunity to do what I love (web development) in a new way with various interlocutors and a lot of information about our needs and goals.
Why we do it, how we want to use it or it to be used, how everyone is going to handle it on each different step of it’s life-cycle etc.

I think involving developers is very important when our work is impacting the people we work with and not only our users.
Every person using our services needs the same treatment whether they are inside or outside users.

Where are we going after?

More and more developers are getting involved with the product and not only a few features in it. This is a very good start to improve our teamwork as a whole and it sure helps people to understand things out of their scope which can be a very useful talent in an industry where everything changes almost everyday.

Our company is growing pretty fast and so is the iTools team, it’s always a pleasure to welcome new members, developers, sales ops, designers, digital marketing, customer ops and probably a lot of new roles to come.
Come have a look at our current open positions across Europe: payfit.com

Thanks

Huge thanks to my squad-tech-lead Jeremy Fauvel for trusting me since day one and giving me the opportunity to write this article today.
Clement Spiers our digital marketing manager, Margaux Lajouanie our brand content manager, Thomas Alibert, Clémentine van Dijk, Morane Shemtov, Emmanuel Bourmalo, Ghislain de Fontenay and everyone else working at PayFit.


-- Paul Kerckhove, Software engineer