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.

Moving to management is fun when you know what it takes

It’s not easy being an Engineering Manager and it takes more than just a good work ethic. The first step in becoming a good leader is learning about yourself as an individual. Self-awareness and self-reflection are key if you want to be an empathetic and confident leader. Once you know what it means to be you, it will be easier for your direct reports and colleagues to figure out how they relate their own strengths and weaknesses with yours. They must be able to see how their work contributes to the whole and feel valued as members of a team.

What makes a good engineering manager at Taxdoo? With our Taxdoo values and culture in mind, here are some tips on becoming and excelling as an engineering manager. 

Motivation

One of the most important things you can do to become an engineering manager is to keep yourself motivated. And understand what motivates you. Motivation is a mindset that keeps you one step ahead of your competition and allows you to achieve more than what would seem initially possible. 

In order for motivation to have an effect, the first thing to do is to make sure that there is a clear goal or set of goals that need to be accomplished. From there on, it’s easy. Make a plan with small actionable steps that are part of the overall goal. Once something gets accomplished, ticking it off marks an incremental step toward completing your goal. Not only does it feel good to work in this way, but it also strengthens the resolve of yourself and others as progress is tangible and constant.

Empowering Others to do their Best Work

A good engineering manager knows that empowering their team is their primary role.

Good leaders celebrate and hone the unique capabilities and personalities of their direct reports and strive to support each individual to grow whilst delivering business value. By trusting their team to self-organize with day-to-day operational tasks (such as attending stand-up or organizing code reviews), an engineering manager can then focus on coaching engineers and inspiring them to do their best work by gradually assigning them more significant pieces of work which challenge them and with guidance, push them out of their comfort zone. 

Feedback is key

Constructive feedback is key to the success of your team. It’s about giving your team members the information and guidance they need so they can succeed, but also being humble enough to accept feedback from your team or your own manager. At Taxdoo, our culture fosters frequent feedback and this is one of the things our future engineering managers need to encourage as a constant.

To us, feedback is the cornerstone to creating a culture where mistakes are embraced and a growth mindset is celebrated. And encouraging our engineers to be brave enough to take action rather than avoid risk. It means setting up systems for continuous improvement and feedback loops between leadership and employees so that everyone knows what’s expected of them in each role on the team, or across teams. If you’d like to find out how we embed this from day one, check out our Onboarding blog post.

Celebrate mistakes

It’s important to remember that mistakes are encouraged when you’re an engineering manager. Think of it as an opportunity to learn and grow. No one’s perfect, so why should you or anyone else be punished for it?

In an engineering setting, we all know that the business of shipping code can be a risky business. Deployment failed? Major outage? Stay calm and fix it. Then assemble your team for a blameless incident post-mortem. Take the lead and share the results with the engineering department and the rest of the business. No one is more stressed than your engineers when something goes wrong; it’s your role as a manager to steady the ship, investigate what happened, support the solution, and show solidarity with your team in front of the entire business. This fosters psychological safety, which will unite your team when times get tough.

At the end of the day, we work in tech, not the emergency room.

Communication solves everything

Communication is so important when building a team. Something that people often miss though is that communication isn’t just about talking; it’s also about listening.

Communication in the workplace is essential because it facilitates collaboration in an environment that brings a diverse range of people together and helps them to harness their unique abilities to achieve success on projects and tasks that are important to the company. Collaboration is something we cherish deeply at Taxdoo. We believe that it allows everyone to simultaneously experience how their work impacts other teams, and how other teams’ work impacts their own. This builds awareness and makes the path to success smoother than ever.

Everyday is a school day

It’s important to keep learning, especially in a fast-paced environment like ours. You can learn from your team, and they can learn from you. Everyone has different strengths and weaknesses, so it’s best to understand each other before jumping into a critical piece of work.

For example one person might be great at writing code but not so great at understanding what their teammates are talking about; another person may have a very strong background in programming but not so much experience with business management.

We could go on and on, but the point here is that everyone has something unique to offer—and those differences should be valued as much as their similarities!

Learning is a lifelong process. You can’t stop learning and you never have to stop learning. The best thing about it is that it’s not just about reading, watching, or listening; it’s also about asking questions.

Learning isn’t something that happens once in your career—it’s a process of trial and error. Try new things and fail at them until you figure out why they didn’t work for you before giving up. Alternatively, you can try again with another approach or strategy to see if that makes sense for you as an individual, team member, and employee at Taxdoo.

At the end of the day, what you do matters more than what you say

As a new leader, you’ll face challenges that will push your boundaries and stretch your skills. You’ll have to learn new things and put them into practice, including how to empower effectively, motivate others, and communicate with the people on your team. Becoming a good leader is hard work.

If you’re interested in having a role that enables you to make an impact and grow as an individual as well as part of an organization, there’s no better time than now.

While becoming an engineering manager isn’t always easy, it’s definitely rewarding. The benefits of leadership are endless, and you’ll be glad you took this step when you see how much your team grows.

This article is written by the engineering managers at Taxdoo. 

André Kowalewski, Katarina Lang, Zeynal Zeynalov, Maria Canero, Alexander Klein and Gabriel Guimaraes.