Senior Engineering Manager | Brandwatch

Copenhagen, Denmark
Nov 2022 - Present (2 yrs)

I lead two software engineering teams: the first, consisting of 12 engineers organized into two sub-teams, which I manage directly; and the second, with 5 engineers, where I provide leadership through their engineering manager, who reports directly to me. Both teams are distributed and fully remote.

Responsibilites

  • Foster an environment of growth, collaboration, and transparency across multiple teams.
  • Coach and mentor team members and leaders, supporting their career development.
  • Oversee and evaluate bi-annual performance reviews.
  • Lead hiring efforts for multiple teams, with thorough experience in running interviews.
  • Offer technical guidance based on extensive engineering experience.
  • Drive the long-term technical vision and strategy and align with company-wide engineering initiatives.
  • Collaborate with senior leadership and non-technical stakeholders to facilitate clear, effective communication, bridging technical and business priorities.

Key Learnings

After stepping up into the Senior Engineering Manager role, I took responsibility for an additional team, led indirectly through their engineering manager. This required a significant shift in my approach, focusing on influencing outcomes indirectly. Key learnings include:

  • Adapting Leadership Style:
    • I learned to delegate more, trusting and coaching the engineering manager to become a strong people leader.
    • Transitioning to an indirect leadership style meant letting go of day-to-day involvement and relying on influence.
  • Balancing Time and Visibility:
    • Managing multiple teams required effective time management, especially with reduced visibility into the new team’s daily operations.
    • I collaborated with the product manager to gain insights into the team’s progress and challenges.
  • Driving Objectives and Progress:
    • Setting clear objectives and ensuring progress, even without direct presence, became crucial.
    • I developed the skill to navigate challenges with limited information.
  • Scaling Company Initiatives:
    • Leading company-wide initiatives across multiple teams required coordination and alignment to ensure consistent outcomes.

Engineering Manager | Brandwatch

Copenhagen, Denmark
Feb 2022 - Oct 2022 (9 mos)

I was an engineering manager leading a team of 8 engineers directly.

Responsibilities

  • Foster an environment of growth, collaboration, and transparency within the team.
  • Coach and mentor team members, supporting their career development.
  • Oversee and evaluate bi-annual performance reviews.
  • Lead hiring efforts for the entire team, with thorough experience in running interviews.
  • Provide technical guidance based on my engineering expertise.
  • Improve team processes, including planning, defining the technical vision, and addressing technical debt.
  • Conduct hands-on work as a backend engineer, contributing to codebases and technical solutions.
  • Drive the technical vision and strategy within the team and ensure alignment with broader company engineering initiatives.

Key Learnings

Transitioning from an individual contributor to an engineering manager was the biggest shift in my professional career. This role required me to adapt to managing a team with diverse personalities, ambitions, and career goals. Key learnings include:

  • Enhancing Communication Skills:
    • I had to significantly improve my communication skills to effectively interact with a variety of people and address their unique needs and challenges.
    • I developed skills to effectively communicate and present ideas to individuals from diverse backgrounds, including non-technical stakeholders, ensuring clarity and alignment.
  • Balancing Flexibility and Workload:
    • Managing the team offered more flexibility, but also came with increased meetings and responsibilities, requiring me to balance and own my time efficiently.
    • Prioritizing my well-being became crucial, as I learned that my ability to support my team effectively depended on my own state of well-being.
  • Developing Coaching and Mentoring Techniques:
    • I explored various coaching and mentoring styles, learning how to provide guidance, challenge team members, and navigate difficult conversations when necessary.
    • I learned to navigate career growth, offering tailored advice and support while balancing individual and team goals.
  • Shifting Focus from Technical to Soft Skills:
    • Stepping back from daily development work, which I enjoyed, allowed me to concentrate on developing my soft skills, such as influencing, delegating, and building rapport.
    • I realized the importance of letting go of having direct control, instead relying on delegation and influence to achieve results.

Staff Software Engineer | Brandwatch

Copenhagen, Denmark
2020 Nov - Jan 2022 (1 yr 3 mos)

I was part of a team of 8 engineers where I focused on backend development and also led cross-organizational efforts.

Responsibilities

  • Implement complex projects, participating in the entire lifecycle from requirement gathering to release and monitoring.
  • Coach and mentored less experienced team members, supporting their development and growth.
  • Document standards and guidelines to ensure consistency and best practices within and outside of the team.
  • Facilitate knowledge transfer through workshops, code reviews, and documentation.
  • Participate in and led cross-team projects, collaborating with other engineering teams to achieve common goals.
  • Act as a sparring partner for team members, providing technical insights and feedback.

Technical Skills

  • Programming Languages: Java
  • Application/Web Frameworks and Libraries:
    • Spring Boot & Ecosystem
    • Spring Security
    • JPA (Hibernate ORM)
  • Message Brokers: Apache Kafka
  • Federated Identity Providers: Keycloak
  • Containerization & Orchestration:
    • Docker
    • Kubernetes
  • Cloud Infrastructure Providers:
    • AWS
    • GCP
  • System Design & Architecture:
    • DDD
    • CQRS
    • Scalability, Resilience & Fault Tolerance
    • Microservices & Distributed Systems
    • Application Security
  • CI/CD
    • Jenkins
    • Drone
    • ArgoCD
  • Monitoring, Logging & Observability
    • Graylog
    • Sentry
    • Prometheus
    • Grafana
  • Database & Data Management:
    • PostgreSQL
    • Elasticsearch
    • Redis
  • Build Tools:
    • Maven
    • Gradle

Key Learnings

Stepping up as a Staff Engineer shifted my focus toward scaling knowledge and influencing beyond my immediate team. Key learnings include:

  • Scaling Knowledge and Impact:
    • I focused on creating documentation, standards, and guidelines to influence and support multiple team members simultaneously.
    • I ventured into other teams to share insights, learn from their approaches, and contribute to cross-team projects.
  • Technical Leadership and Roadmap Development:
    • I actively participated in defining our technical roadmap, ensuring alignment with long-term business goals.
    • Representing my team’s interests in front of a larger audience became a critical part of my role, allowing me to advocate for our technical needs and contributions.

Senior Software Engineer | Brandwatch

Budapest, Hungary
2016 Sep - Oct 2020 (4 yrs 2 mos)

During my tenure, I worked as a backend engineer on two teams: one focused on measuring content performance on social media, and the other responsible for enabling our customers to post to social media at scale.

Responsibilities

  • Execute complex projects, participating in the entire lifecycle from requirements gathering to release and monitoring.
  • Coach and mentor less experienced developers, supporting their growth.
  • Design components and services to meet complex business needs and system requirements.
  • Participate in code reviews, providing feedback and acting as a sparring partner for other team members.
  • Estimate and scope projects, ensuring they are delivered on time and within expectations.

Technical Skills

  • Programming Languages: Java
  • Application/Web Frameworks and Libraries:
    • Spring Boot & Ecosystem
    • Spring Security
    • JPA (Hibernate ORM)
  • Message Brokers: Apache Kafka
  • Federated Identity Providers: Keycloak
  • Containerization & Orchestration:
    • Docker
    • Kubernetes
  • Cloud Infrastructure Providers:
    • AWS
    • GCP
  • System Design & Architecture:
    • DDD
    • CQRS
    • Scalability, Resilience & Fault Tolerance
    • Microservices & Distributed Systems
    • Application Security
  • CI/CD
    • Jenkins
    • Drone
    • ArgoCD
  • Monitoring, Logging & Observability
    • Graylog
    • Sentry
    • Prometheus
    • Grafana
  • Database & Data Management:
    • PostgreSQL
    • Elasticsearch
    • Redis
  • Build Tools:
    • Maven
    • Gradle

Key Learnings

Working as a Senior Software Engineer, I gained valuable experience in an international company with distributed teams. Key learnings include:

  • Collaboration in a Global Environment:
    • I improved my collaboration skills by working with teams and individuals from different cultures, locations, and backgrounds.
  • Exposure to Cloud Services:
    • This role marked my first exposure to cloud services, particularly AWS and Google Cloud, which broadened my technical skill set.
  • Distributed Systems and Microservices:
    • I learned extensively about distributed, message-driven services and worked on microservices architecture at a large scale.
    • I deepened my knowledge of observability, including monitoring, alerts, and performance tracking.

Software Architect | Kolkida Zrt.

Budapest, Hungary
Jan 2014 - Aug 2016 (2 yrs 8 mos)

I worked as a full stack developer and software architect in a large team of engineers, developing a greenfield SaaS platform to help banks with credit risk assessment.

Responsibilities

  • Designed complex solutions to meet business and technical requirements.
  • Implemented business features across the stack, contributing to both frontend and backend development.
  • Owned specific subsystems, ensuring their architecture and functionality aligned with project goals.
  • Acted as the go-to person for security-related decisions, focusing on application and data security.
  • Participated in ideation sessions, contributing to discussions around project direction and technical strategy.

Technical Skills

  • Programming Languages: Java
  • Application/Web Frameworks and Libraries:
    • Spring Boot & Ecosystem
    • Spring Security
    • JPA (Hibernate ORM)
  • Message Brokers: Apache ActiveMQ
  • Federated Identity Providers:
    • CAS
    • Shibboleth
  • Architectural Patterns
    • DDD
    • CQRS
  • Database & Data Management: MySQL
  • Build Tools: Maven

Key Learnings

Being part of this greenfield project from the start was a highly enriching experience. Key learnings include:

  • Influence on Technical Direction:
    • I participated in many stimulating conversations and had the opportunity to directly shape the project’s technical direction.
  • Application Security:
    • My growing fascination with security allowed me to take ownership of the security domain, gaining deep expertise in application security.
  • Domain-Driven Design and CQRS:
    • This was my first exposure to DDD, and I embraced it fully, learning the importance of domain modeling and its impact on the overall architecture.
    • I gained hands-on experience with CQRS, learning how to apply this pattern effectively to separate read and write operations, which helped improve the scalability and performance of the system.
  • Architectural Decisions and Technical Debt:
    • I learned how important it is to make thoughtful architectural decisions early on, as they can greatly influence the long-term success of a project. While some challenges arose, we were able to overcome them and adjust our approach, ensuring the project remained on track. I also saw how technical debt can accumulate, even with the best intentions, and learned the value of addressing it proactively to maintain momentum and avoid bottlenecks in future development.
  • Technological Mastery:
    • This project allowed me to become highly fluent with Spring and its surrounding frameworks, solidifying my knowledge of the ecosystem.

Software Engineer | Statlogics Zrt.

Budapest, Hungary
Mar 2009 - Dec 2013 (4 yrs 10 mos)

I was part of a team of full-stack engineers delivering banking solutions for Hungary’s largest bank.

Responsibilities

  • Owned the development and maintenance of the mortgage module.
  • Implemented new features based on business requirements.
  • Provided direct support to the bank, both during and outside of work hours.
  • Collaborated closely with business analysts to better understand and translate business requirements into technical solutions.
  • Investigated and resolved issues within the application, ensuring stability and reliability.
  • Focused on evolving the application in a sustainable way, ensuring long-term maintainability.

Technical Skills

  • Programming Languages: Java
  • Application/Web Frameworks and Libraries:
    • Spring Boot & Ecosystem
    • JSP
    • JPA (Hibernate ORM)
  • Database & Data Management: Oracle, PL/SQL
  • Application/Web Servers: Oracle WebLogic
  • Build Tools: Ant

Key Learnings

Throughout my time as a Software Engineer, I gained several valuable insights:

  • Communication with External Stakeholders:
    • I learned how to effectively communicate with business analysts and other external stakeholders, ensuring that both technical and business requirements were aligned.
  • Strengthening Engineering Skills:
    • I deepened my engineering skills and advocated for the importance of automated testing to improve code quality and reduce issues.
  • Mentoring and Leadership:
    • Over time, I stepped up as a lead engineer, mentoring other team members and taking on a greater role in the technical evolution of the systems.
  • Providing Support:
    • I learned what it means to provide paid support for customers and recognized the critical importance of detailed logging and monitoring to identify and resolve issues efficiently.
    • I developed techniques for explaining the outcomes of complex calculations, making it easier to answer customer questions and provide transparency on critical results.

Lead Developer | Floyd Zrt.

Budapest, Hungary
Sep 2010 - May 2012 (1 yr 9 mos)

We were a team of three developers building a fleet tracking solution for one of Hungary’s private railway companies. I focused on the backend, another developer handled the frontend, and a third developer managed the hardware used for obtaining GPS data. Our system was initially designed to track real-time train movements, but it was later extended to include cargo planning solutions.

Responsibilities

  • Designed the backend architecture and integrated with the hardware devices for real-time GPS data.
  • Negotiated with the client to gather requirements, plan delivery, and ensure alignment with their needs.
  • Provided ongoing support to the client, ensuring system stability and addressing issues.
  • Implemented features based on client requirements and evolving business needs.

Technical Skills

  • Programming Languages: Java
  • Application/Web Frameworks and Libraries:
    • Spring Boot & Ecosystem
    • Spring Security
    • GWT
    • JPA (Hibernate ORM)
  • Database & Data Management: MySQL
  • Build Tools: Maven

Key Learnings

This was my first side hustle, and it provided a wealth of valuable experiences:

  • Client Interaction and Requirements Gathering:
    • I learned how to work closely with the customer, translate their requirements into actionable roadmap items, and negotiate the scope of deliverables.
  • Roadmap Creation and Work Allocation:
    • I gained experience in building project roadmaps, allocating tasks, and managing timelines to ensure smooth delivery.
  • Balancing Customer Needs and Technical Constraints:
    • I learned to represent our team’s interests during negotiations, push back on unreasonable requests, and explain technical challenges in a way that non-technical stakeholders could understand.
  • Building and Deploying a Production System:
    • Seeing something we built from the ground up go live in production and be used daily was incredibly rewarding.
  • Interacting with Hardware Devices:
    • I also gained experience working with hardware devices, learning how to integrate and troubleshoot real-time data collection systems.

Software Engineer | Dorsum Zrt.

Budapest, Hungary
Feb 2008 - Feb 2009 (1 yr 1 mo)

I worked on a team of full-stack engineers developing a portfolio management system.

Responsibilities

  • Implemented features based on clear requirements.
  • Investigated and resolved bugs, ensuring the system operated smoothly.
  • Focused on improving the automatic testing capabilities of the product.

Technical Skills

  • Programming Languages: Java
  • Java-based Enterprise Technologies:
    • EJB 2 & EJB 3
    • JPA (Hibernate ORM)
    • JSF
  • Application/Web Servers: IBM WebSphere
  • Database & Data Management: Oracle
  • Build Tools: Ant, Maven

Key Learnings

This role significantly contributed to my growth as a Java developer. Some key learnings include:

  • Application Servers and EJBs:
    • It was my first experience working with application servers, where I learned EJBs (starting with EJB 2 and later EJB 3, which was a major improvement), deepening my understanding of enterprise Java development.
  • Focus on Automatic Testing:
    • I took ownership of improving automatic testing for the product, building a tool that automatically tested complex interactions on the application server. The tool displayed results in a clear, actionable format, which helped streamline testing processes.
  • Test-Driven Development (TDD):
    • This experience also introduced me to TDD (Test-Driven Development), which became an integral part of my approach to writing reliable and maintainable code in future projects.
    • Working on automatic testing in this role laid the foundation for my later reliance on comprehensive testing practices, significantly enhancing my ability to deliver high-quality, reliable software.

Software Engineer | Hungary Network Zrt.

Budapest, Hungary
Feb 2007 - Feb 2008 (1 yr 1 mo)

I worked at a company building various Web 2.0 applications for a wide variety of customers. During my tenure, I was involved in the development of healthcare portals, financial products, and language learning platforms.

Responsibilities

  • Implemented features based on customer and project requirements.
  • Investigated and resolved bugs to ensure smooth functionality.

Technical Skills

  • Programming Languages: Java
  • Application/Web Frameworks and Libraries:
    • Apache Struts
    • JSP
    • JQuery
  • Application/Web Servers: Apache Tomcat
  • Database & Data Management: MySQL
  • Build Tools: Ant, Maven

Key Learnings

This was my first professional role as a software engineer, transitioning from coding as a hobby to working in a real-world environment. Key learnings include:

  • Transition to Professional Development:
    • I learned how to work in a structured development environment, improving my skills as an engineer and understanding how things operate in an actual company.
  • Collaboration and Communication:
    • I developed essential skills in collaborating with other engineers and learned the importance of clear and effective communication within a team.
  • Continuous Learning:
    • I realized the importance of staying up-to-date with new technologies and continuously learning to remain effective in my role.
  • Understanding Technology Internals:
    • I discovered that understanding the internals of the tools and technologies we use makes me a better engineer.
    • I learned the value of using proven frameworks and libraries rather than reinventing the wheel by developing custom solutions.
  • Mentorship and Growth:
    • I was fortunate to work with colleagues who mentored me, helping me get up to speed and guiding my growth as an engineer.