Mental health at work: it’s a topic we’re used to hearing about. But how can we actually make space in our working lives to promote our mental wellbeing? 

What risks are there?

Let’s consider the risks posed by our jobs. Yes, as developers or tech professionals, there are inherent risks posed by our chosen trade!
Firstly, let’s acknowledge that there is still a stigma attached to talking about mental health, particularly at work. If you ever have concerns, speak with your Taxdoo people team and also your health practitioner who can advise you of the best route to take.
Secondly, tech is inherently fast-paced, projects are tied to go-live dates and communication can be pressurised. Let’s face it, the stress of deadlines and implementation unknowns are inherent to software engineering. Furthermore, the nature of remote work or even hybrid limit social interaction- often a boon for productivity but not for your mental health in the long run.

So, what steps can we take to care for our mental health as busy tech professionals (a heavy hint dropped with ‘steps’)?

Read on for suggestions.

What can tech professionals do?

Mind and body are connected.

Movement helps.

The theme of World Mental Awareness Week 2024 is Movement: Moving more for our mental health’, according to the Mental Health Foundation.
Based on the concept that the mind and body are connected, movement helps to boost mood and promote feelings of empowerment and stress release. As desk workers, we lead sedentary lives which poses not only physical but also mental health risks if not managed properly.
Taking this year’s theme into account, why not consider ways to get up, out and about to help keep your brain healthy?

Some fantastic suggestions include:

  • Create a playlist that motivates you to go for a walk or a run 
  • Set a timer to do work and do some chair yoga every time it pings
  • Associate movement with a break or treat: plan things to look forward to like a lunchtime walk to a new coffee shop or a hike with friends at the weekend

If you are someone who lives with a long-term health condition or disability, you may find movement difficult. Not to worry! Focus on what you can do and how you can create a mind-body connection that can limit the effects of stressful desk jobs. The Mental Health Foundation shares the lived experiences of staying active for your mental welllbeing, despite living with a long-term health condition.

According to the British Medical Journal, Poor nutrition may be a causal factor in the experience of low mood…’ This is not to say that you should never treat yourself to a packet of crisps or your favourite chocolate bar, more to consider the entirety of your diet and whether it is balanced and that you are eating regularly.
Although more research on the link between nutrition and mental health are needed, why not consider whether incorporating elements of the Mediterranean diet into your cooking routine may be beneficial. How come? As a non-restrictive diet, it’s easier to adhere to and boast benefits such as better sleep as well as improved mental health. Either way, any balanced diet that improves gut health is good for boosting mental health and combatting the effects of stress.
Speaking of stress, many of us have been there: when a deadline looms, it’s tempting to reach for some comfort food. This isn’t a bad thing but if it becomes a habit, you might need to be more treat-aware. Afterall, we know that excessive consumption of trans fats can wreak havoc on our gut microbiome and immune system, so it might not hurt to keep an eye out for a healthier choice the next time you reach for a snack.

As much as working remotely can be flexible, allow for travel and more time with family and friends, it can also mean spending most of your working week alone. But alone doesn’t need to mean lonely, especially if you focus on building connection with your co-workers, as well as being productive. At Taxdoo, we encourage employees to go for in-person and virtual coffees- we’ve installed an app that reminds colleagues to reach out and schedule time to socialise.
Interestingly, Scott Stockdale from Gun.io recommends encouraging employees to give, which can promote connection and takes the focus away from personal feelings of detachment towards feel-good memories of helping others out.
Given this, why not offer mentoring or coaching to junior developers? It’s a tough job market, especially for those with little experience, and they would benefit from your help and guidance.

We all know how stressful it can be when the end of the sprint is coming up or the project deadline is on the horizon, and we somehow have more work than we expected.
It’s normal for humans to not always accurately predict how quickly work can get done, but it’s important to be realistic when communicating this. If the project turns out to be more complex than expected, speak up soon- it will help your project or product manager know that you are invested in delivery as much as they are and will contribute to perhaps getting more time or resources to complete the work. Viktor Iyomipo shared his personal experience of a project that focussed on rebuilding an entire web app based on legacy code, how it impacted his mental health and how he recognises his own triggers and project ‘red flags’ to guard against experiencing burn out again. Stockdale also mentions that he finds ‘fear setting’ helpful: made famous by Tim Ferris, fear setting is the practice of writing down your worries, rating their impact on your life if they were to ever happen and writing down how you could prevent or repair these situations if they were to ever come to fruition. Perhaps when the mid-project meltdown rears it’s head, perhaps getting a pen and a piece of paper out might help you to be mindful that you are resourceful and able to handle even the worst scenario, despite the slim chances of it occurring. 

Conclusion

At the end of the day, nothing is ever worth sacrificing your health for. We are lucky to work in an industry where we will always find great opportunities: the same unlimited chances cannot be applied to our health and that’s why everyone should make their own health their top priority.
On Mental Health Day this year, what intentions will you be setting to keep well? 

Like the sound of our culture? We’re hiring! Check out our open roles here or subscribe to our newsletter to get the latest updates and new roles delivered straight to your inbox.

We at Taxdoo use an array of testing techniques: unit tests, integration tests, end-2-end tests, contract testing, browser-based tests, tests against Docker environments as well as tests against real AWS environments, canaries, … and of course some manual testing when automating a test simply isn’t feasible.

Looking at the possible techniques, browser-based testing often gets a bad reputation as being slow, fragile, and needing constant maintenance. It is the technique that can provide the strongest guarantees though and is the easiest to understand (and be valued) by non-technical stakeholders. For example, a browser-based test might ensure that a certain critical functionality always works, even taking browser specific quirks and subtle aspects like infrastructure specific aspects into account. While browser-based tests have the major benefit of being as close to actual user behaviour as possible, they have the major downside that most engineers are not familiar with them. They pose a new set of tools and techniques that an engineer has to master while for example unit tests are much closer to the coding techniques an engineer uses anyway.

In order to minimise effort and avoid typical challenges of end-2-end tests, we have developed a set of best practices and troubleshooting tricks we are happy to share here.

Maintainability of Browser-Based Tests

A core principle of automated testing is to create tests that test behaviour, not implementation.

This is in particular true for browser-based tests as UIs are often subject to change, both because of voluntary changes in design and layout or involuntary changes by updating the component libraries in use. Many developers have had bad experiences with browser-based tests because they seem to easily break as soon as someone changes a control or the timing of underlying backend functionality changes. This however is not inherently a problem of browser-based tests, but incorrect usage of them.

In fact, browser-based tests can be among the most stable tests requiring the least amount of maintenance while performing large refactorings in the underlying implementation, precisely because they act on the “top layer” and can be unaware of large architectural or implementation changes. Changes in APIs, serialisation formats, code structure/organisation, database schemas and so forth often cause a need to adapt unit tests. But when used correctly, browser-based tests only require updating when the actual behaviour changes.

There are two key principles to achieving stable browser-based tests that many software engineers get wrong:

  1. The correct usage of the data-testid property to identify elements of a page instead of using HTML ID properties, CSS classes, or textual content.
  2. Writing tests in an event-driven way that is independent of the actual timing of the application.

The first is rather obvious: the exact HTML tags and properties used to render an application are often in a flux while the application’s design evolves. It is quite common to move controls to different places, change margins, etc. Similarly, user-facing texts get updated and typos corrected. In these cases, we want the tests to still be valid and run without the need for change. If on the other hand a text control is replaced with a drop down, the actual behaviour of the application changes and it is to be expected that browser-based tests would need adoption. Still, when using data-test ids, only the test code that manipulates the control has to be adopted instead of the code that tries to locate the element, making what needs to change much more transparent.

Using an event-driven approach to testing seems to be a much less commonly known practice. In practice, many browser-based tests incorrectly use sleeps/waits to wait for a predetermined amount of time before continuing. This not only unnecessarily slows tests down but also can be the source of flakiness as tests might get executed on different CI job runner machines from run to run.

In an earlier generation of browser-based testing tools (such as Puppeteer), the commands often waited for network traffic to stop as an indicator that an operation such as pressing a form submit button was completed and the test could continue. This caused numerous hard to diagnose timing issues.

A much better solution is to actually wait for application events, such as a confirm notification, that are shown to the user or the changed data becoming visible in the UI. If that is not possible, our recommendation is to use Cypress intercepts to define an alias for them, and then wait for the respective XHR to be complete. This is probably the most robust way to design tests but it has the downside of needing updates if the request’s API path changes (which luckily only happens infrequently).

Using Custom Commands & APIs to Create Test Data

A technique that has shown great promise internally in Taxdoo is to have tests create their own test data using our internal service APIs and wrapping this in Cypress custom commands. From a test perspective, this leads to easy to understand code, e.g.

cy.createClient(…);

cy.addToAccount(…);.

cy.addFiling(…);

but it also keeps the tests easily maintainable. Since the commands just fire simple GraphQL queries against our internal APIs, any changes in database schemas or similar that would break tests that use SQL inserts to add test data no longer are an issue. Any new logic added to the client creation code is automatically invoked as well every time the test runs, as it just uses the internal APIs.

Compared to direct database insertion of test data, the effects on test runtime are mostly negligible and as a nice side effect, the tests also notice if there are any unexpected breaking changes in our APIs, something that can be very relevant because we expose some of our APIs to our customers as well.

To wrap up this post, here is a list of dos and don’ts we have developed internally for when we write tests using Cypress.

Things to Do

  • Keep defaults: Be wary of changing Cypress defaults lightly, such as disabling test isolation, extending timeouts to higher than default values, changing the default folder structure because most of them exist for a reason and the majority of applications will work fine with them. Having to change a Cypress default can be an indicator that the application does something unusual and would benefit from moving to common web application standards.
  • Don’t assert for things that can be checked implicitly: There is no need to validate the test has navigated to the right URL if it then continues to search and click on specific elements anyway. Adding such asserts just adds more points that can break during refactorings that don’t actually change the applications behaviour. Use .should(…) for the things that really matter and are at the core of the test. That makes the intent more clear and the test easier to read.
  • Have tests create their own data: Don’t rely on predefined data in some database (e.g. a specific test user in a test environment) but – where feasible – have tests create their own data. This a) allows the tests to actually modify the data without side effects to other tests and b) doesn’t run the danger of some external effect changing the predefined data and thus failing the tests for unrelated reasons.
  • Fixtures & Config: Put predefined values such as environment variables or subsets of test data into their appropriate places in the Cypress structure instead of hard coding them in the test themselves. This makes it easier to run the same test in different environments such as locally, in a Docker environment, and in an AWS test environment.
  • Data Test IDs: Use the HTML attribute data-testid (be careful of consistent spelling, not test-data-id, not data-test-id) to mark frontend elements and then reference them from the Cypress tests. Values should be defined as a constant that both the frontend and tests use instead of duplicating the string in the tests.
  • Create test data via APIs: don’t do raw inserts into databases if it can be avoided. Using APIs a) is usually less subject to change and b) also nicely tests that the underlying service doesn’t introduce breaking changes without anyone noticing.
  • Clear data before test run: if the test is not only running in a temporary Docker container but in an AWS environment, a test must clear the data it created before the next execution. The reason to clear before instead of after is that this makes debugging easier when a flaky test fails as one can see what state the test was in when it aborted.
  • Integrate into CI pipeline: When using the Cypress junit reporter, CIs such as GitLab can be configured to pick up the results automatically and show them in the pipeline. Also the screenshots Cypress takes upon error should be stored as artefacts of the pipeline run. This makes searching for the cause of errors much faster.
  • Write tests so they can be run anywhere: Ideally, the difference between running a test against a local Docker environment and running it against our AWS test environment is just a change of the Cypress configuration / environment variables.
  • Don’t use intercepts to return fake data: While Cypress’ capability to intercept requests and return predefined data is very convenient, it adds more places that have to be adapted if the underlying API changes.
  • Use Typescript instead of Javascript: for writing tests, it usually doesn’t make that much of a difference in practice. However, when trying to establish a culture of “every engineer writes tests” (as opposed to only dedicated QA engineers), using a more modern language like Typescript increases the chance that engineers will accept tests as part of their ownership.

Things to Avoid

  • Do not use cy.wait for fixed amounts of time: Timing will change depending on where the tests run. One CI runner might be faster, another slower, your local machine completely different. Therefore use of things like “wait for 5 sec” must be avoided. Instead, use cy.intercept(…) to wait for the event that needs to finish before the tests should continue.
  • No side effects: Tests should be able to run in any order or in parallel. If the setup for each test would be prohibitive, have the data created by the test suite (e.g. a single Cypress test file) and then run multiple tests (=it(…)) against it.
  • Increasing Timeouts: Be careful of increasing timeouts. If a long timeout is needed, this usually is an indicator the application/frontend itself is slower than a user expects.
  • Too many Custom Commands: Don’t overdo it. Usually only very few custom commands are actually needed and wrapping some basic stuff into commands makes the code harder to read for people that don’t know what the commands do.
  • Don’t check for specific text: Strings presented to users often change when for example typos are fixed or translations adapted. Define a data-testid on the element that shows the text and rather test for that.
  • Don’t check against URLs: URLs are always subject to change. Instead, simply check for the content that is presented on the page.
  • Don’t use Cypress-if: This is an anti-pattern, as stated also in the Cypress documentation.
  • Don’t assume a certain cookie is set: Unless the test itself sets it, assume a blank browser with empty local storage and no cookies. e.g. the cookie consent form might show up depending on the environment, the test might have to switch to a particular user language, …

Conclusion

End-2-end tests are a powerful tool that is often underutilised because of misconceptions and suboptimal implementation. To employ them successfully in a project, one needs to be careful that certain fundamental principles are adhered to as otherwise they quickly get a bad reputation and will ultimately be rejected by much of the engineering team. Used correctly, they can be fast, provide strong, easy to understand guarantees and require little maintenance. We hope the ideas in this post might inspire you to use them if you haven’t done so so far or re-consider them if you had poor results using them in the past.

There is a lot of research around happiness at work. The claims are bold too: workers are  more productive and happier, colleagues are more efficient, take fewer sick days and stay with their employer longer.
Can this be true? Yes! At Taxdoo, we believe in the power of friendship. We spend so much of our lives at work, so we’ve shared some tips from the seemingly serious and dull world of taxtech on how to have fun at work.

Celebrate small wins

It’s normal to sometimes feel unmotivated or overwhelmed with our workloads.  Especially in the fast paced world of tech!
The trick is to break down the work into smaller tasks and reward yourself when you complete them. As humans, we love a checklist and get a kick from ticking off tasks- science backs this and even suggests that we derive mental energy from completing tasks (Frontiers Psychology, 20 August 2021). So the next time you feel stressed with work or a deadline, try slicing up the tasks into manageable chunks and decide how you’ll treat yourself once you’ve finished.

Our software engineers share a few tips on how they weave in mood-boosting treats throughout the day, including fresh air, meditation and taking a break to stroll around the block. Your manager and your brain will thank you for it!

Find a work bestie

Everyone needs a friend- especially at work. Workplace culture and norms have changed a lot, so strict or formal boundaries between colleagues have melted to create opportunities for authentically showing up and getting to know the people you work with. 

The post-pandemic world of working is definitely the new normal, be it remote, hybrid or back to the office. What hasn’t changed? The need for human connection. Getting along with colleagues remains really crucial for enjoying work and feeling like you belong there. Gallup’s research confirms that having a trusted best friend at work means that you are you are 12% more likely to stay in your job than someone who doesn’t, as well as highlighting other benefits such as being more engaged, productive, more likely to promote safety, be more innovative and you guessed it, have more fun at work.

Some of you may be wondering about how to approach the subject of making friends at work. After all, making friends as an adult can be awkward. It can take you back to being at school again, which isn’t always a vibe. But as we spend more waking time with people we work with than any other group of people in our lives, it seems a shame not to try and see if being friends could work.

So, how do you make friends at work? To start with, say hello when you arrive in the office or start a Zoom call. It’s so simple, yet friendly small talk is often the way that conversations start. Another good trick is to ask people about themselves and remembering that detail in later conversations- it shows that you care and that you’ve actively listened to what they’ve said.
If your company offers sponsored events like afterwork drinks or lunches, accept the invite- it’s also a conversation starter in the event run up. If you work remotely, invite a colleague for a virtual coffee.

At Taxdoo, we encourage everyone to make friends at work. From day one, we pair new starters with a buddy to show them around on their first day, check in on them during the week and catch up for coffee regularly during their first few months. We also use the Slack app, Donut, to promote conversation and connection. Donut pairs colleagues on Slack randomly, then sends them an invite to schedule a thirty minute call during that week- ideally, with a coffee and a doughnut. During the pandemic, this was a great way for people to meet others from different departments and it’s been so popular that we’ve kept it as a firm Taxdoo favourite.


Of course, work friends are to be cherished as much as personal friends, however there are a few things to keep in mind so that you and your work besties stay bosom buddies. The Muse has compiled a list of the top five rules of work friendship– our favourite is number four: be yourself.

Learn to love professional growth

Growth means trying to improve and become better at new things.
New things can be scary, unpleasant or just something we don’t want to try for fear of looking silly. Being nestled in the comfort zone is cosy, right? But comfy and happy aren’t the same.
At work, the key to being happy is to avoid monotony and embrace change. This can mean volunteering for that high profile project, leading a workshop on an area you are an expert in or mastering a new software tool that your company has introduced. Why have this mindset? The psychologist, Rick Walker, completed research that studied ‘30,000 event memories and over 500 diaries’ and found that ‘people who engage in a variety of experiences are more likely to retain positive emotions and minimize negative ones than people who have fewer experiences’ (Time.com, ‘Health and Happiness’). 

Professional growth looks different for everyone, so a good exercise is to list some areas that you feel confident with and areas that you feel less confident in. Rank each area. Then write down skills or achievements that inspire you. What could you do to improve the skills you feel less confident with? How can you achieve the goals that you aspire to? If you feel comfortable, share this with your line manager or a member of the HR team. This conversation will centre around creating a plan for you and will help to identify immediate to long term opportunities within the business that suit your goals.

Learn a new skill

It takes between 20-10,000 hours to learn a new skill. Yes, the breadth of time to become a master is significant, however everyone has to start somewhere. If it’s transferable to your role, why not pitch the idea to your boss and get the company on side to support you with training and time to master this skill? At Taxdoo, every employee is gifted 10% of their time as ‘innovation time’. Taxdoo encourages employees to be creative, so this time is dedicated to learning and experimenting. One amazing outcome from this was bringing Taxdoo tax experts and software developers closer together through Domain Driven Design, an idea that started from a book club started by Senior Software Engineer, Maximilian Heß, through his own ‘innovation time’ budget.

Learning a new skill keeps you interested in your day to day, keeps your marketable skills up to date and sparks solutions that may never have been found.

Struggling to think of where to begin? We have some ideas for you that require just the click of a link! Have you also been interested in coding? We asked our developers for tips on anyone starting out as a newbie developer. Already a seasoned pro? There’s always time to sharpen the basics! Why not check out how clean your code is on your work or side project?  Wondering what on earth EI is? Check out this article that Marie Canero, Engineering Team Lead, wrote on how you can improve your tech career by developing emotional intelligence.

We all deserve to be happy every day, even at work. Can these science-backed happiness tips help make our jobs more fun and less glum? There’s only one way to find out!
We hope these tips have been useful and have sparked some ideas of making your work life even more enjoyable!
We’d love to hear if you have any other ideas or tips to add- feel free to reach out on X, LinkedIn or Instagram.

Oh, we almost forgot! We have another tip on the theme ‘fun at work’…

…checking out our jobs board! We’re #hiring!

We’re happy to announce that the Tech Radar we have been using internally is now publicly accessible! It can be found here.

So what is a Tech Radar? The concept was first popularised by the software consultancy Thoughtworks as a means to share knowledge between their teams working over a wide range of companies and projects. It quickly turned into an industry standard, with many engineers each quarter checking out what new technologies would be recommended or which no longer should be used.

Inside Taxdoo Engineering, we use our tech radar mainly as a tool of discussion and alignment. Any engineer can suggest an update, which naturally leads to discussions on what the collective wisdom is. We see it as important that any engineer can suggest changes, not just certain roles or titles, but of course our architect and lead engineer review the radar periodically to make sure it’s aligned with Taxdoo’s long term strategy as well.

The visualisation that can be seen on our website is based on the open source Zalando Tech Radar Github project with some minor additions to also be able to show our reasoning behind each decision. While we tried to add meaningful descriptions to each point, here are a few high-level trends we have been noticing:

AWS Serverless at Taxdoo

Taxdoo has always been heavily relying on AWS Serverless, in particular API Gateway + Lambda, and that’s a trend we foresee to continue. When we talk to people outside of Taxdoo, we are often met with two questions: Isn’t that quite expensive and why are you not using Kubernetes?

The simple answer is: because AWS Serverless just works for us! Of course, for a lot of the number crunching and heavy lifting we do use Docker + ECS, but the main parts of our applications our users are interacting with are almost completely serverless. This greatly simplifies our infrastructure and makes topics such as security or compliance much easier to handle. As an example, a recent recurring audit performed by one of our external data suppliers went much smoother because we have so few servers in our production environment. Less servers, less security updates and firewall settings to worry about.

Serverless also fits perfectly to the usage patterns our customers have. They need 100% reliability, but we do not see high loads over long stretches of time. Matching our motto “Taxdoo and done”, users jump into the application, are able to quickly perform their tasks, and then jump out again. Due to the nature of our business, we also see usage peaks around monthly filing deadlines as prescribed by the various countries’ tax authorities and a lower usage during the other days of the month, because things simply work. As a result, AWS Lambda + API Gateway is an almost negligible amount of our operational cost, especially comparing it to the storage cost of the large amounts of data we are processing every single month.

Speaking about Kubernetes, it is a great tool. However, we have so far not come across any use case that would warrant the additional complexity over basic API Gateway + Lambda. We are not only avoiding additional costs of operation and training required to properly use Kubernetes but are also completely avoiding a whole class of Kubernetes-specific issues. So while we are often met with a lot of enthusiasm for Kubernetes (for example while talking with potential recruiting candidates), for our use cases, it simply doesn’t add any value.

Increased Usage of Docker for Local Development & Testing Setups

We had been using docker as part of integration tests for a number of years, but often only to simulate individual parts like our product database. We have now reached a tipping point where so many of our services are also available in dockerized form that more and more projects start to build more complex e2e/integration test setups that can be run isolated for each MR or locally. Once a project is at this point, it is easy for it itself to offer a docker image, thus continuing to spread our coverage. We just recently reached the important milestones of being able to run our main user-facing application completely inside docker with only a few dependencies being mocked.

There are of course areas where a docker approach runs into issues. We have faced this in particular when using more AWS-specific features such as AWS AppSync or AWS Step Functions. In the case of App Sync, we had put it on hold for other reasons already and we use Step Functions mainly in our non-user facing parts of the application where we can use different testing approaches. Still, it is important for us to be conscious in which areas Docker will be able to help us and in which an overreliance on it might severely limit us.

AWS Step Functions & Consolidation

Speaking of AWS Step Functions: so far, we have had very good experiences using Step Functions in some of our production workflows and am excited to use it more whenever the matching use cases arise.

In a lot of other areas though, we see a trend of consolidation and simplification rather than one of adding new tools to our belt. We are for example actively pursuing removing the last remnants of our PHP code, not because modern PHP isn’t capable of doing what we need, but because removing it further simplifies our setup. Having one less language involved will make it easier to onboard new engineers to the project, especially for those of our teams that usually don’t work as much with UI and just want something where they can quickly jump in, add a few changes, and get back to their core tasks.

In a similar vein, AWS App Sync turned out to be enticing at first but not worth the added complexity of an additional AWS service in the long run for us. To fulfil our real world use cases, we had to add some custom code and we also ran into issues that were hard to diagnose. We had only used it in the limited context of a single micro service though and thus moving that functionality to our more traditional API approach will be possible during the next iteration of that part of our application.

Want to thrive in tech? It might come as a surprise that hard skills alone are not enough to progress your career as a developer.


At Taxdoo, we believe that nurturing Emotional Intelligence (EI), as well as technical skills, is the key to a healthy, productive environment.

Why care about EI?

The stereotype of a good developer coding alone in a basement surrounded by empty pizza boxes is outdated (was it ever that realistic?!). Modern tech companies thrive when their teams are diverse, communicative and feel comfortable. The former archetype of a developer is narrow, promotes an unhealthy work/life balance, and requires little emotional intelligence or social interaction. The reality of working in tech is that you need to be a people-person, because creating software for humans is about understanding humans and most of all, understanding yourself.

You may be wondering, in such a results-oriented role, where code quality and features deployed are often used as measurements for success, how is it possible to cultivate and demonstrate emotional intelligence?

Worry not! We’ve compiled some practical tips on how you can boost your Emotional Intelligence on the job.

Self-awareness

This one is a big one. And for that reason, it’s an uncomfortable one. As a developer, it’s a good idea to reflect on who you are and how you show up in day-to-day life.

Example:
You write comments on a merge request that is detailed yet succinct. You send a message to the developer let them know that you’ve submitted your feedback.
Silence. They don’t respond to you for a day. You send them an email, just to make sure they know you’ve reviewed their work. In the next stand-up, you directly ask why they haven’t responded. They give a blunt answer about being too busy. You feel irritated by their response- don’t they want to get this work done promptly? You decide to complain to your tech lead about this. They listen to your concerns however seem bemused that you are taking this instance so seriously. You start to feel alienated and disinterested in your role.

It is completely normal to not be fully self-aware. In this instance, it pays to consider the perspective of the person you are working with. With this example, it would help to ask for feedback from your colleague who wrote the MR or your tech lead to understand how your behavior is influencing the environment.
Sure- you are doing your job, reviewing code and communicating efficiently- but the way you do this will impact how other humans react towards you. Could sending a Slack message followed by an email (without a response from the initial message) be perceived as pushy or passive-aggressive? Was your tone neutral, friendly, or aggressive? Was stand-up the best opportunity to address your concern? Could it have come across as accusatory or as if you were ‘throwing that person under the bus’?

Instead of complaining to your tech lead about the lack of communication, this would have been a great opportunity to ask a trusted colleague for feedback. By asking for feedback from a trusted friend or colleague, you hear another person’s perspective and start to train yourself to proactively consider how you can positively impact others and therefore be perceived as a reliable and trustworthy colleague who people love to work with.

Looking for more advice on improving self-awareness? The Harvard Business Review outlines great tips and examples for improving self-awareness as a business leader, all of which can be applied to your role as a developer or tech professional.

Self-regulation

Let’s face it. 2023 was a tough year for the tech industry. Layoffs, instability, reduced resources, and increased workload are all factors that contribute to feeling stressed and overwhelmed. Whilst these conditions are far from optimal, the way we react during these times will have long-lasting effects on our careers, our relationships, and our health.

Self-regulation to the rescue!

Learning to self-regulate is not about repressing feelings or sugarcoating hard times; it’s about feeling those feelings without letting them control your behavior. According to Psychology Today, ‘self-regulation may be behavioral or cognitive, or both’. Put simply, you are either self-regulating behavior or thoughts. Here are some ways you can manage these feelings healthily and productively.

Example:
It’s the last day of the sprint. You’re the most senior developer on your team so you’ve picked up the most important piece of work. And it’s not finished. Nowhere near ready to go to a Quality Assurance Engineer for review. Your Product Manager pops up to your desk after stand-up and is visibly stressed. They start quizzing you about why this valuable feature isn’t ready yet. Why didn’t you give more updates on this sooner? Why didn’t you ask for the deadline to be extended? Don’t you realize how much revenue we might lose if this feature is delayed? The client wanted this a month ago!
Everyone on your team is silent. It isn’t fair that you’re being publicly grilled. You feel yourself clamming up. Then getting really angry.

Deadlines and stress are common in tech. Whilst you can’t control how fairly your colleagues will treat you, you can control how you react to their behavior. In this example, you can start by acknowledging that you feel angry. Why wouldn’t you? Their behavior is unpleasant and unreasonable. Then, take your time to decide how you want to react or if you want to react at all. Saying nothing is also a response.
Regardless of how you decide to react, make time to reflect and journal afterward. Were there particular words or patterns that triggered you? By making a practice of understanding common themes that you find triggering, you will become better at understanding how you can observe those feelings in the moment, process them, and react in a way that is authentic to you yet also appropriate for the environment.

As a developer, how can you do this?


1. To start with, make it easier to stay in control. Got a deadline? Mute any distractions (Slack, put your phone on flight mode) and dedicate time to purely focus on completing the task before the deadline. Also, communicate to your team and other stakeholders what you need to focus on so that they are aware and can support you.


Remove anything that breaks your focus or could cause you to become distracted.

2. Acknowledge your feelings
Feeling worried about your job security? Schedule some time to worry. Write down all of your thoughts and fears. Make a plan and set a date to take action. This plan might include having a frank conversation with your tech lead or HR, it might include updating your CV or looking for a new role. Whatever the action involves, commit to it and after this scheduled time of worrying is up, move on and do something else.

These examples are ways that you can acknowledge negative emotions and react in a way that is practical and measured. This cognitive skill is highly prized and if you want to become a respected leader, self-regulation is something you should try to master.

Motivation

Motivation drives actions. Motivation is often linked to highly productive and resilient individuals. Staying motivated as a developer can be a challenge. For quick ways to regain focus and stay mentally well, you might want to try the Pomodoro technique. This technique splits time into chunks of just under half an hour, which helps you to stay motivated and avoid becoming overwhelmed.
However, this hack won’t solve a deeper lack of drive. Most of us code because we love it, some of us code because it brings a steady paycheck.
Regardless of career choice, it’s important to understand what motivates you intrinsically, regardless of financial compensation, status, or any other external reward. The saying goes that if you find a job you love, you won’t work a day in your life.
If you find a job that matches your personal goals, values, or beliefs, you will find it a lot easier to stay motivated when the going gets tough. As developers, we are so lucky to have an abundance of opportunities available to us, so understanding ourselves will make us better employees and help us to make choices that create a career we love.

Example:

You’re applying for a new role at a company that is a completely different product with a completely different tech-stack, some of which is very new and you’ve never worked with it before. It offers a huge pay rise, a flexible hybrid working environment, private healthcare, your potential new boss is ex-Google, and share options are also available after passing probation. This company invites you to submit a project using a framework you’ve never used. You invest a lot of time in the project and you manage to submit it within the deadline. Success! You are invited for an interview with the hiring manager. They explain that this company has significant technical debt, and is a bit understaffed however the culture is good and senior leadership is understanding and supportive. A few days later, they offered you the role.

From this example, can you discern what the intrinsic and extrinsic motivators for this role are? Extrinsic motivation would be feeling excited about getting paid more, getting better benefits, and enjoying a flexible working policy. All of these factors are important, however, they have little to do with actually building software- they could be offered with almost any computer-based role. Intrinsic motivators would be relishing the thought of learning a new tech stack or hacking away at the tech debt to offer better solutions for the company. Conversely, an understaffed team might be enticing as you’ll not be short of exciting work to do. As long as there is a hiring term plan and supportive leadership, a high workload for a short amount of time can be rewarding.


A question that helps you understand whether your motivation is intrinsic or extrinsic is asking yourself: when was the last time you experienced joy when coding? Regardless of whether this was at work or in your time, an important part of coding is being excited to code and learn. Tech is a fast-paced industry where frameworks, languages, and business needs change rapidly. If you are intrinsically motivated to solve complex problems and keep learning, you will find your career a lot more enjoyable.

Empathy

Empathy is a skill that is becoming ever more sought after. Why? Humans are drawn to empathetic people. Empathy is not the same as sympathy; the latter is often about pitying and therefore distancing yourself from another’s situation. Empathy is about finding the similarities in a human experience and understanding what that person is going through.

Example:
A new front-end project is on the horizon. As your team has a strong suite of front-end development skills, it’s looking likely that the project will be assigned to your team. The assigned Product Manager set up a kickoff meeting. It’s time to gather requirements. In this meeting, do you ask questions about how current users experience the app? Do you ask questions about which framework or component library will be used? Do you enquire about data that outlines pain points for users? Do you ask about how much time and how many developers will be allocated to this project?

These are all great questions when gathering requirements and defining the scope of a project. Yes, as a developer, it is important to lead on how a project will be technically built and implemented. Yes, most revenue-focussed companies require a specific delivery timeline. However, by exercising empathy at the requirements-gathering stage of a project, you put the user’s needs first, which means that the solution delivered will be most valuable. It will also demonstrate that you are open to the wider context of the business and that you care about who uses the tool that you are building.


In addition, communicating authentically is part of leading with empathy. Can emojis help? They might well be able to foster engagement and build happier teams, according to Forbes. In digital communication, emojis make it clear what sort of tone you wish to convey and inject humor into communication that can otherwise be transactional or impersonal. Of course, use them with caution and not in formal settings, however, you may want to consider using emojis to bring more personality and warmth to your everyday communication style.
Remote, hybrid, or in-person, asking your colleagues about themselves and actively listening to their responses also shows that you are empathetic, and care about them as individuals whilst also respecting professional boundaries.
A good way to show empathy is to simply ask your colleagues how they are, check in on them and every time you speak to them, actively listen.

It is a simple tip, but listening and remembering details about your colleagues is a great way to show them that you care and are aware of what they might be going through.

Social skills

An often overlooked soft skill, having great social skills will propel your career forward hugely. Of course, businesses value individuals who deliver results but also those who invest in social capital by building networks with their co-workers. This not only facilitates efficiency but also promotes a healthy, collaborative environment.
And the best thing is… you don’t have to be an extrovert to have great social skills!
There are a host of ways that you can reach out to your teammates or colleagues (Slack, email, video call, or an in-person catch-up), however, the main thing is to communicate with them authentically and if possible, to make time to understand them aside from the topic of work. Be aware that some colleagues may view work as simply that and may not feel comfortable with getting to know other colleagues.

Example:
You’re in a meeting. Your senior, your team lead and the client are also in the meeting. After introducing yourself, you sit quietly and wait for someone to ask you a question. The senior fields most of the difficult questions that the client has, with your team lead backing him up where necessary. It’s an intense meeting and you feel quite overwhelmed by the client’s requirements. With a silent sigh of relief on your part, the meeting comes to an end, and aside from the introduction round, you’ve said nothing. You can get back to finishing your ticket for the day. You want to get yet another piece of work finished, especially as you have a one-to-one meeting with your team lead next week and you’d like to ask for a promotion because you’ve been delivering a lot of good solutions.

If this example is typical of how someone behaves in a collaborative setting, how likely is it that the individual will be promoted? True, being productive and consistently finishing work is part of being a good worker. However, staying in your comfort zone and being silent in meetings means that you lose out on opportunities to show that you are a team player, to showcase your work, and to support your team. Public speaking is daunting and is often not a skill that is taught, however by starting small, for example, to ask project-relevant questions in meetings or proactively offer a response if you know the answer, you can build your confidence and trust with your colleagues as you go. 


You might feel shy to begin with however with practice, you will feel more confident. Start by asking open-ended questions, then ensure to check in regularly and if you feel comfortable, attend work-organised social events.Remember, it’s not a popularity contest, more an opportunity to create a network of supportive individuals that will help you, your team and your organisation achieve success.

Emotional intelligence is becoming increasingly important. The tech industry is growing, and whilst there may still be a standard of technical skills that are deemed crucial for certain roles, it is always good to remember that these can be learned. Developing emotional intelligence can be learned, however it is most effective as a constant mindset.
After reading this, you may wonder where to begin. Self-awareness, self-regulation, motivation, empathy and social skills are all components of emotional intelligence- why not score yourself on each area and pick one to improve on? We all have our unique strengths, so we may as well make the most of them.

Would you like to work in an environment that values emotional intelligence as well as technical challenges and interesting projects? We’re hiring! Check out current vacancies here or learn more about Taxdoo culture.

Stay social and follow Taxdoo Engineering on X.

‘Inspire Inclusion’ is the theme for 2024’s International Women’s Day. In celebration of this day, we decided to shine a light on some of our amazing female-identifying colleagues at Taxdoo, to highlight their achievements and spark inspiration.


As the theme of this year’s International Women’s Day is ‘Inspire Inclusion’, we asked the question:

 ‘In terms of your career, what does inspiring inclusion mean to you?’

For a long time, white cis-men have been overrepresented and predominant in the startup world and the software (design) industry, and it’s up to trailblazers like Taxdoo to change this.

Our society is diverse, and our product is built to cater to various user needs and businesses, which is why diversity is crucial at Taxdoo. This also touches upon the issue of women in leadership roles, but it goes beyond that. We develop our product with a further developed team comprising different genders, age groups, nationalities, and backgrounds, with promoting inclusivity being paramount.

In my role, guiding through conceptualization and user experience of our Taxdoo product, I leverage my experience to promote and enforce inclusive practices, understanding that I need not identify individual barriers to promote inclusion. By advocating for integrative product development and design and championing these efforts, I aim to set a standard for equitable practices in the industry within my team, and Taxdoo.

However, we must not become complacent. We must continue to work on showcasing and incorporating diverse perspectives to create inclusive, accessible user interfaces, and simpler processes for Taxdoo’s users and customers, by listening and learning and then taking action.”

These inspiring words come from our Lead Product Designer, Christina Humpf. Christina is an exceptional product designer and leader, who combines her 13 years of experience in UX design, collaboration design, and inclusive leadership with holistic business needs, that bring useful and accessible product solutions to life in the hands of users and customers. Christina Humpf holds a “communication design” degree from the top-ranked HfG Schwäbisch Gmünd.

Inspiring inclusion is also very important to Julia:

“For me, everyone should have the same starting point. Show your dedication and we can achieve great things together. Your background – who cares? No matter what differences there are, these are opportunities, not obstacles. I love being in a diverse environment and would always encourage inclusion, in life and my career. Different perspectives and stories help to make us grow.”

As Team Lead Compliance Solutions at Taxdoo, Julia’s career at Taxdoo has been consistently brilliant; starting out as a Customer Support Associate in December 2020, Julia has been promoted three times during her tenure at Taxdoo. Her combination of drive, process-oriented results, and positive attitude make her a joy to work with. Originally a graduate of International Tourism, Julia proves that transferable skills and knowledge can get you far when applied correctly. Julia also holds a certificate from the University of Cambridge for Advanced English.

Laureen has achieved an impressive career transition from working in the hotel and hospitality industry to her current role at Taxdoo as an accountant. Proving the value of life-long learning, Laureen’s career switch was cemented when she achieved a professional qualification in payroll invoicing in 2022.

For many, inspiring inclusivity is a mindset, a view that Laureen Kainz and Britta Garbers both share:

“The words coming into my mind with regards to inclusion are respect, openness, but also self-reflection and communication. People are so diverse and at the same time, a lot of internalised biases exist. So inclusion should be inspired on every level of a company, the company per se and also each person.”

Britta’s background in marketing and international business lends well to our culture and business requirements at Taxdoo. As a senior in the Compliance team, Britta brings meticulous attention to detail combined with the ability to create articles that educate and inspire our customers and employees alike.

We also wanted to shine a light on the following outstanding tech professionals at Taxdoo, who shape and inspire our colleagues and businesses alike.

Elena is our leader, Chief Technology Officer, and shining inspiration. Elena’s stellar career thus far has seen her drive success by making products that are loved by humans. Elena values growth and is a regular writer and speaker. She also recently completed a qualification at the University of Cambridge where she could share and exchange expertise with like-minded peers. Elena brings reliability and a scale-up mindset combined with nurturing a best-in-class culture where each individual feels empowered to thrive and grow. Elena is someone everyone should have the privilege of working with.

Diana brings extensive Business Intelligence Analysis expertise from her career in the thriving Berlin tech scene and applies this to ensure Taxdoo delivers value, exceeds targets and remains market relevant. In addition to this, Diana brings an international mindset as she has also worked in Ecuador for the Ministry of Foreign Affairs, Trade and Integration.

We wish everyone a happy and healthy International Women’s Day and a hugely successful year ahead.

Are you inspired by these stories and would love to work somewhere where you can thrive too? Check out our open positions here.

It was March 2020; spring had sprung in Hamburg, the pandemic was about to hit Germany, and Carina had just started her new role as a Sales and Operations trainee at a growing taxtech company, Taxdoo.

Fast forward three and half years; Carina has scaled the career ladder and is now a Senior Sales Associate. We asked Carina about her time at Taxdoo and how she achieved her success.

What do you love about Taxdoo?

There are a lot of things! I am so lucky that Taxdoo allows me to work with so many wonderful colleagues, especially in the Tax Advisor Solutions Team. As our solution specialises in the field of e-commerce internationalisation and  accounting, there is always something to learn and get your head around. Of course, with most scaling start-ups, there is and will always be a place of change. For some, that’s uncomfortable, however for me, it means that I am constantly evolving professionally.

Taxdoo has a great culture that thrives on timely, open communication and tight feedback loops.

What is the difference between working Sales and working in the Tax Advisor Solutions Team?

Tax advisors and online merchants have specific requirements and ways of working, so the team structures and different roles at Taxdoo reflect that. You are required to have depth of knowledge of the Taxdoo solution yet also taxes and accounting so that you are able to offer the best advice to tax advisors using our software.


It also involves taking care of partners and building relationships with the tax advisor firms. The aim is to create a multiplying environment- if one firm is happy with us, then they are more likely to bring on more of their clients, online merchants, who will also use Taxdoo.

What is special about working in taxtech?

Taxtech is constantly evolving. You need to be ready to keep learning new things, be open to mastering new skills, and even as you progress, stay operational and hands-on. There is no better way to stay up to date than by speaking to clients regularly.

Tech is renowned for being fast-paced and sometimes stressful. What has your experience been so far?

It is definitely fast-paced, yet I believe the benefits we have at Taxdoo contribute to a healthy work-life balance that accommodates a lot of different lifestyles. I am very much a people person and I am happy to say that I have many friends who I am lucky to call colleagues, as well as a great social circle outside of work. All of this is possible when a company like Taxdoo puts people at the core of its culture. Yes, tech is fast-paced, however, when you work in a supportive environment with people who care about each other, it makes all the difference.

Taxdoo really wants everyone to be able to thrive, in a way that is comfortable to them and their lifestyle choices. This is also reflected in the benefits we have such as gym memberships, the opportunity to work remotely, and steady, personalized career progression.

What is it like to work remotely?

It is basically like having the best of both worlds. I’ve worked remotely in Greece, France, Portugal, Malta and the Netherlands. My sister lives in the Netherlands, so working remotely makes it much easier to visit family. These experiences are cool because you get to extend a holiday by a few weeks without using up your annual leave allowance.

How would you describe the Taxdoo culture? How has it changed since you joined?

There always will be a special Taxdoo culture, because the founders and management have always made team spirit a priority from day one. When I started at Taxdoo, I was beginning my career, yet I was never made to feel like a junior. Respecting people and encouraging them to voice their opinions has always been something that I admired at Taxdoo. This has undoubtedly played a big part in my success and progression throughout my career.

Has the culture changed? At its core, it definitely hasn’t changed. I still feel that the company is putting people first and prioritizing healthy, sustainable growth with a long-term vision supported by a well-considered and transparently communicated strategy.

Considering a move into tax tech? Do you have a background in tax or accounting? We’re hiring!

Find out more about our culture by checking out our blog, following Taxdoo Engineering or go straight to jobs page to check out the latest vacancies.  

Meet Joachim, also known as Joe, a vital member of Taxdoo’s Customer Success team for over 2 years. Joe excels in guiding new clients through onboarding and providing unwavering support. With a dedicated focus on customer satisfaction, he promptly responds to inquiries, leads meaningful conversations, and diligently works to win back customers. Beyond the office, Joe’s passion for adventure extends to dancing and staying informed about current affairs and politics. We are fortunate to have Joe’s expertise and genuine care contributing to our clients’ success at Taxdoo. Dive deeper into the interview we did with him.

Introduce yourself

I’ve been on Earth since 1965, arguably the best year. I did an apprenticeship as a bank clerk in 1984. After that I went to the German armed forces to do military service in 1987. Then I studied business administration from 1988 at the Leuphana University in Lüneburg. From 1994, I worked as an account manager in field service for a big IT service-provider for the Volks- und Raiffeisenbanken (cooperative banks in Germany). There I was responsible for migration projects in the core banking application. This was a great career and for twenty-five years, my role had me on the road traveling to and from projects. At some point, I decided that it was time to call it a day with the traveling. I started looking for a company that aligns more with how I’d like to live my life. Therefore, I am very happy to be at Taxdoo!

What does a typical day at Taxdoo look like for you?

A typical day for me is, well, never typical! And this keeps things exciting. I have a customer-orientated role, so I devote a lot of my capacity to understanding our clients’ needs, resolving issues, and helping them get the most out of Taxdoo with bespoke training and onboarding. Many people assume that working in my role is just about landing new deals, upselling, and preventing churn  which, to an extent, is true. However, I think the most important part of my job is building and maintaining relationships with our clients. Customer satisfaction is very important to our team!

What are the common misconceptions or misunderstandings about your work?

A common misconception is that it is a department where deals or upsells are made. 

Customer Success is a very important department, as it’s the hub of all client relationships and knowledge. In Success, you always need to ask yourself, ‘What does the customer want? What do they need?’
Be obsessed with the client’s point of view and be this voice that represents them within the company. This is especially important in a tech company where thousands of users rely on our software every day. We need to make sure we are building a product our customers love, need and want to use.

I take pride in every piece of positive feedback on my work from both client's and colleagues. It really motivates me to do my best and contribute to the Taxdoo team goal of keeping our customers happy.
Joachim Barber
Sr. Customer Success Associate

Which was the most challenging project so far, and Why?

The most challenging aspect of my role has been mastering the ins and outs of EU-wide VAT (Value Added Tax) compliance. Not only is this a deeply nuanced and vast topic, but it’s also an area that is responding to changing market needs, so I’ve gotten used to always learning to absorb compliance information and legislation.

How do you keep on learning?

At Taxdoo, any new feature introduced to our product is an area we need to learn so that we can advise our clients accurately. Working for a tax tech company, you always need to be thinking ahead. This means being aware of upcoming changes to compliance services in the EU, extensive knowledge of bookkeeping, data export, and revenue generation are just some examples of topics that you need to be an expert on in order to provide the best care to clients. How do you find this information? Firstly, work with your teammates and be ready to listen and share knowledge. Webinars and podcasts are easily accessible learning methods, but a variety of learning experiences tailored to your needs are offered. To help you achieve your goals, you also have an individual training budget.

A major learning for me is learning how to be a ‘farmer’, which is a more nurturing way of helping the client get the most value from Taxdoo and understand which services fit their business best. This approach sows the seeds of goodwill and realizing product value for every client’s needs, rather than aggressively upselling.

What tips would you give someone who’s starting out in Customer Success?

Be customer-oriented. Know how to communicate with your customer; via email, in phone calls, and meetings, always try to understand the customer’s point of view and communicate in a way that will help them trust you. I’ve had years of experience in this, so it comes to me naturally. It is possible to learn this skill though, if you are open to it.

What did Taxdoo teach you?

That mixed-age teams can work together very effectively, for example, in our team a self-declared “baby boomer” together with colleagues from generation “Y”.  

I really value and enjoy the fact that I can carry out my tasks mostly from home. Working from home means you can be productive and collaborate virtually, however I also appreciate the opportunity to work in an office environment. This mix is great for achieving a balance whilst establishing rapport with colleagues and clients alike.

Last but not least, what do you enjoy doing outside of work?

I’m really interested in current affairs, especially politics. But also I’ve been dancing with my partner at a dance school since 1996. For me, it’s a way of life. Dancing is so much fun; not only does it keep your body nimble, it also keeps you mentally sharp, improves your overall movement and when you have a girlfriend to dance with as lovely as mine, it makes learning new dance styles even more enjoyable.

‘Why dance when you could be resting from work?’, some might say. At the end of a long day, you should bookmark it with an activity you love. My role at Taxdoo is exciting yet demanding; it’s not uncommon for my day to be back to back with phone calls, completing tickets, onboarding new clients. I always strive to make the customer satisfied and deliver everything to a high standard (perhaps too high, sometimes) so committing to going to dance lessons in my free time reconnects me with the people and things that are most important to me.

If Joe’s interview has piqued your interest, I encourage you to explore our Customer Success Department page or take a look at our current job openings. By doing so, you can learn more about our department and the opportunities available within Taxdoo.