How did you get into development?
It started fairly early, when I played video games and got interested in computers. When it came to picking a subject for university, I chose computer science.
From the first moment, I realized that more was expected of me than I initially thought. At first, I was barely passing the programming classes.
After the first year, I stopped and reflected, and told myself that if I wanted to be an engineer, then I couldn’t nearly fail the subjects.
The next year, I passed with the best marks which built the foundations of my software development knowledge. This became my source of income during my studies, as I took on tutoring of others. I had a relaxed schedule in the next semester and decided to work at LogMeIn to gain experience as a tester, as this was not taught at university. The goal was to learn about automated testing but there was no chance to do that, just manual testing. One day, Viktor's (Craft co-founder) email hit the university mailing list about an opening at a mobile agency called Distinction, announcing that they were looking for a mobile software tester. I thought it was perfect and that I could shift into becoming a mobile developer.
Beginnings
I planned to work 16 hours per week, but really enjoyed the work and fitted in well with the team, so very soon, I was working 30 hours per week as I wanted to spend all my free time there. I became addicted to it! I spent a bunch of time in the office, left for class, and then returned straight afterwards.
As Distinction grew, we needed more testers and it was in this period that I started building my line management skills in my early 20s. It was a great challenge, and my first-ever mentee was Distinction’s first non Hungarian-speaking employee, who was also older than me. I had to help them fit into the team, and teach day-to-day technical stuff.
During this period, I think I worked 60-hour weeks, but it was my passion, not a requirement. Often times I stayed long after work, to play foosball with the others (classic startup behavior 😅). Things changed after Skyscanner acquired Distinction, and in that much bigger organisation I tweaked how I approached daily work and my contributions. We were finding our way within a big company.
What changed after the merger into Skyscanner? I could move from testing to release process automation and management. It took 1,5 years to achieve automated iOS and Android releases every 2 weeks. This is something I was really proud of. There were release trains: on Wednesdays, it was the Android release one week, and the next week was the iOS release. Multiple teams worked on the apps, and if you didn't deliver on time one week, you could get on the next “train” in a fortnight.
This was the peak of the tester/release automation part of my career.
With the arrival of a new CTO, there was a new mindset that testing was part of developers' job to create end-to-end ownership and better quality. Of course, I agree with this principle, but it meant my job wasn’t needed and I had to either transition to another role, or leave. This was the time for me to move into software engineering. First, I worked as an Android engineer, then after a year I became a product manager.
How did you get into web development?
I took a three month break after an intense period at Skyscanner and got busy with my hobby project of creating things with electric cars. I had an Excel sheet with car types, all sorts of data like ranges and prices, but I realized a web page would be more suitable.
I’d never done it before, so I started at zero and learnt until I could do it professionally.
I also gave Product management another shot, but I felt the focus was more on management and less on product, so even though they were satisfied with me, I decided to leave.
How did you join Craft?
I was contacted by Viktor and Bálint while working as a freelancer about joining the stability team.
I was really interested in Craft, the product, and the people, but I did not want to go back to testing and release management, as I didn’t have motivation for it.
I said I'd love to join as a web engineer when the opportunity arose, and said I was a junior because I had experience in product development, but not in web development. I mentioned I was working constantly to improve my skills, and we agreed to keep in touch.
Six months later they reached out about an opening on the web team. They couldn't guarantee a position, just an interview with Sipi, the Principal Product Engineer on the Web team, who was leading it at the time. I went through the interviews and thankfully my knowledge proved enough to start in a junior role.
How have your projects and the role changed?
I was part of Craft’s closed beta, then the open beta release, then the public release of the web version, and in total I’ve worked on 30-40 features. Maybe it's easier to say which parts I haven’t been involved in; probably only the core data sync. 😄
What was the biggest challenge when you joined?
Probably picking up technical knowledge. I had never worked with React, so before I started, I spent time getting up to speed, to be able to work effectively in the codebase. I remember the team was surprised I arrived with a good level of knowledge.
The second big challenge was the complexity of the Craft product, and understanding how parts of the product were affected when you touched one part of it.
Which project is your “baby”?
I don't think I have one because I love many parts of Craft. But I could pick two candidates.
First, I'd pick published pages' share analytics. Maybe it's less relevant now, but it was a great feature, delivered fast. It's a standalone component, which holds complex analytics charts about published pages’ usage and the number of visitors. I remember receiving great feedback that I had developed it effectively, beautifully, and faster than the same thing in the app team, while achieving good quality. I was also interested in user analytics and visualization, so it was a perfect project for me, even if it was a feature for specific use cases that aren’t used every day.
The second candidate are the page background and page sections, introduced to the web editor and shared pages. It had a huge visual impact and the pages looked completely different after that was added to documents.
What does end-to-end ownership mean to you?
I describe myself as a product engineer, not a software engineer. I'm not the most technically skilled software engineer, was never known for my deep technical expertise, and I never wanted it as a priority.
I'd rather use my focus and knowledge to build the best possible product: from the idea, to building a prototype, seeing if it works, understanding where and how to cut scope, the edge cases, solving bottlenecks, scaling it to all users, building it into to pricing package, bringing it to release, and then following up on user feedback.
Most intense times at Craft?
There were two. The first was the “One-Click Team,” which was released in summer 2022 and changed to a team-based subscription and organization model, where we also involved mini apps which handled teams and team subscriptions. It wasn't just the web development part that was challenging, but also integrating into native apps. “Craft Reloaded” release this February, which started last September with an intense document-based sharing project that included huge layout and UI structural changes to the web editor. In January, we still had to implement pricing and packaging, and we didn’t want to prolong the work, so it was a rapid development which we did in 2 weeks, which we wanted to learn from. This period was the only time when overtime was needed at Craft.
Can you say more about working extra hours?
I have a wife and daughter, so I don’t want to spend too much time away. I like to be with them for dinner and enjoy quality moments like baths and bedtimes.
This gives me a good framework, but I never had to do overtime. I always try to leave work in a way that when I leave my desk, I don’t have to return until the next morning. Overtime is not even an expectation which gives a good work/life balance. The way we work is extremely focused and intense, but I don't feel more is expected other than giving my best effort during core hours.
What was your biggest mistake?
There aren’t any big ones, but I made smaller errors which led to RCAs (Root Cause Analysis,) or post-mortem meetings. When we make a mistake that goes into production, we discover it, fix it, then discuss what happened, and how to avoid it in the future.
I'm an advocate of RCAs, and I encourage people to talk about mistakes.
This is a well-known method of improvement. It’s a friendly topic for me, and I try to make sure that if someone is not used to these meetings, that they don't see it as blaming, or nitpicking about what went wrong, but just as something to learn from.
What's the secret to being a good product engineer at Craft?
Mainly, a wide overview and understanding of your task.
Technical knowledge is one thing, it's a tool we use for product development.
If I could tell ChatGPT to develop something for me and I could articulate my needs well, then I wouldn't code because it wouldn't be needed. Programming is just a form of product development, but I don't think any AI tool will replace them soon, as it's just the execution part of the whole process of product development.
Figuring out what to work on, exactly what we are doing, the communication and planning, integrating to the current system, understanding user feedback, following up on how the feature or component is used after release, and then bringing it back to product development; these are more important than just coding in itself.
Here it's an expectation, especially as you grow, to pick up business and user understanding, as it’s part of our core competency framework, which involves understanding the business, which direction we’re headed in, what’s important to the company, and what matters to users.
Of course, we get help but it’s everyone's responsibility to be proactive, to understand things, put time into understanding analytics, read the customer support team's feedback, work with product designers to understand how we reach conclusions, and to just be curious.
Note: the competency framework is a matrix that helps us at Craft understand our levels within the current setup. It serves as a guideline to understand people’s strengths and areas for growth.