An Interview with senior software engineer Tomasz Szlagowski; I’d like to keep building cool things
Position: senior software engineer
Joined: 2018
- What was your major in college?
I’ve been into computers since childhood, so studying computer science was the default choice for me. I majored in software engineering at Jagiellonian University (in Poland, where I’m from).
- Could you please tell us about your career after graduation? What kind of experiences did you gain and in which industries did you work?
My first IT job was during my second year at the university. I worked at a tiny web agency, mostly building websites for small businesses. That gave me a lot of practical experience with web technologies and, especially, taught me how to build websites that work on all possible browsers. I worked there for a year until I temporarily moved to the Netherlands (to participate in a student exchange program).
After coming back to Poland and getting my undergraduate degree, I was looking for an internship where I could get some experience with Ruby — the programming language that I enjoyed using. I found it — at Antenna Software (later acquired by Pegasystems) — and ended up staying there after the internship too, although I was working on a graduate degree at the same time. The company provided enterprise solutions related to mobile applications — building, managing and deploying mobile apps for a customer’s internal use. Compared to my previous experience of building many different projects within a short time, there I could focus on one product for a longer period of time. I learned a lot not only about Ruby, but also various other technologies related to web and mobile apps.
When I got my master’s degree, I wanted to try something new. I moved to London to join an education technology startup called RefME (later acquired by Chegg). I really enjoyed the startup culture and the ability to wear many hats — this time I would not only develop an application, but also deploy it and see how it performs when real people use it. I learned a lot about databases, monitoring and data-driven decision making.
I’ve always been interested in Japanese culture, but it was only when I went on a trip to Japan that I realized it’s a real place where I could live and work. After 2 years at RefME, I decided to find a job in Japan. I joined GMO GlobalSign, an IT security company, to work on an authentication-related product for enterprises. The experience there taught me a lot about security, browser extensions and Japanese work culture.
- What motivated you to join Bespoke? Why did you choose this company?
There are a lot of companies that build data management applications in Ruby, but not a lot that use this language to build a chatbot system. The product was unlike anything I worked on before, which meant I would be learning new things.
Furthermore, I met many members of the team before joining and all of them made a very good impression on me. Coming back to a startup environment also sounded good to me.
- How long have you been working at Bespoke? Please tell us about your experiences since joining the company.
In a month, it’ll be 5 years that I’m working here. The company changed a lot during this time. One big change was when we increased the size of the tech team significantly and split it into 3 smaller teams. Since Bebot was originally built for the hospitality industry, we’ve had to pivot a bit during COVID-19, when there were no foreign tourists in Japan and even domestic tourism was in a bad shape. I feel that despite the changes, the main values of the company stayed the same.
-Could you share your current position and role? What tasks and responsibilities do you handle?
I’m a Senior Software Engineer here, part of the application development team, which is a kind of do-everything team. Other teams are responsible for our infrastructure and AI/research, but everything else is built by my team — all the UI, backend services, integrations with external APIs.
The main things I focus on are developing features, fixing bugs and reviewing code, but I also often answer questions other team members have, estimate how much effort is required to develop a feature and occasionally help with hiring.
We’re still a startup, so I often end up doing things that, at a bigger company, would be the responsibility of a different role — like coming up with UI/UX design for the feature I’m working on.
- When do you feel a sense of fulfillment in your current work? Please provide specific examples.
When I solve a difficult problem, or build something really cool.
By difficult problem I mean some wrong behavior that the team has known about for a while, but couldn’t really explain why it’s happening. As an example, recently we’ve had a bug in the database software that we use. Normally, using one of the major databases, if there are any issues, 99% of the time it’s us (app developers) that made a mistake — the probability of a bug in a popular, mature database is tiny. I investigated under what kind of circumstances it’s happening, found a workaround and reported the problem to the database vendor. Being able to contribute to big projects that many companies rely on (even if just by reporting a bug) feels great.
As for building cool things, we have a company event just for that — internal hackathons. It’s organized twice a year on average and every time we test a lot of interesting ideas. The tech team is free to work (individually or in teams) on whatever is interesting to us. Some projects are very experimental, but quite a few of them ended up being used after the hackathon, improving the internal data management workflow or user experience. Coming up with your own idea, designing and implementing the entire feature and seeing it have a big impact is very fulfilling.
- What has been the most challenging experience for you since joining the company? How did you overcome it?
Before joining Bespoke I never had a fully remote-friendly job and I like working in an office environment where I can feel a work atmosphere and have social interactions with co-workers. Bespoke doesn’t have a typical office, but before the pandemic most team members would work at the same co-working space. Being surrounded mostly by strangers (from other companies) was already a new experience to me, but then the pandemic happened. Suddenly everyone had to work from home, which meant no social interactions and no work atmosphere — my productivity dropped considerably as a result. After the COVID-19 restrictions were lifted, most people stayed remote except for special occasions, so even if I come to the co-working space, it’s rare that I meet any team members.
At the same time, I wouldn’t want to force anyone to come back to the office (especially people who feel more productive at home) and I highly value the remote-first nature of the company. I use it myself from time to time — e.g. traveling back to Poland and working remotely for a month or so. With some self-discipline as well as having friends/activities outside of work, my problems with remote work can be reduced to a minimum. Even if my productivity is not at 100% in this environment, it’s a good trade off.
- Could you describe the dynamics within your team? If there is a cooperative atmosphere or any notable characteristics, please share.
We’re a startup and I believe we manage to avoid a lot of the problems that big companies have thanks to our culture.
For example, we are very pragmatic — rather than spending time on useless meetings or discussing things that don’t really matter, we tend to focus on delivering value.
Another big thing is that we have a great deal of autonomy. If I notice a bug and it’s annoying me — I’ll just fix it without asking for anyone’s permission.
When working on new features, a lot of the time the requirements are not very clear. Developers have to gather all the information they can by talking to the stakeholders and then figure out the best way to solve the problem on their own. We come up with our ideas/designs, get feedback from the stakeholders and build the features. Nobody is saying “this is not my responsibility” — we just do what’s necessary. Sometimes the features we build are completely different from the original request, but they solve the same problem. Of course it’s not like everyone does whatever they want — every change is reviewed by other team members and stakeholders need to confirm that the change solves their problem.
This may sound chaotic from the outside, but I feel it’s been working very well — everyone shows good judgment while staying motivated.
- What are your future goals? What plans and aspirations do you have regarding your career and personal growth?
I like the kind of role I have right now — an individual contributor with a lot of autonomy. I don’t think becoming a manager would be as fulfilling or a good use of my skills — I’d prefer to keep building cool things instead.
I admire people who can give good talks at conferences, so that’s something I’d like to get good at if possible.
For more information about employment at Bespoke, please visit https://www.be-spoke.io/careers