First Impressions of Testing at LMAX

2023-12-08
7 min read

We have had some new starters within the test team at LMAX over the past year. Here are their thoughts of their first year.

Yuliia

I had the opportunity to join LMAX having had some experience being a junior manual tester, and it became an incredible learning journey. Working with middle and senior testers and developers presented challenges, but it also offered a wealth of knowledge and experience that I couldn’t have gained elsewhere.

One aspect that stood out to me is the company’s pair programming approach. It was unfamiliar and felt new and challenging, especially as a tester pairing with developers. But with the support of my colleagues, I gradually integrated into the team and the development process and I’ve come to appreciate its productivity and reduced stress levels. Tester-developer pairing is a common practice at LMAX, with testers contributing to code and developers writing tests. This approach fosters excellent knowledge sharing and collaboration.

Another unique aspect of working at LMAX is the practice of writing tests first, followed by the code. This approach was quite different from my previous experiences, where testing was a separate stage after development. After a year at LMAX, however, I’ve grown to appreciate the efficacy of this process; it’s hard to imagine doing it any other way!

During my integration process I had personal sessions with other testers and I continue to receive their support even after a year of working at LMAX. The culture of assistance and knowledge sharing is commendable. The company embraces a buddy system culture, which adds to the sense of community and support among employees.

Knowledge sharing comes in many forms including regular TechTalks allowing team members to share their discoveries, project updates, and things they have learned. The talks are recorded so they remain accessible to anyone who missed the session. Particularly as a new joiner, it’s great to have the history available.

Although, one area that I found challenging is the “our code is our documentation” approach. As a newcomer, I struggled with this approach because I hadn’t worked with code before. While the team is always ready to help, it can be inconvenient if the person who knows the answer is unavailable. Over time, I’ve started documenting information for myself, and it seems that people have started to do it more, which is a positive change.

In summary, my first impression of the testing process at LMAX has been overwhelmingly positive. The challenging aspects have contributed significantly to my growth and development, and the culture of collaboration and knowledge sharing within the company is truly remarkable.

Hans

One year gone, one year on…

I’ll start by saying my experience at LMAX has been fantastic. What spurred me on to look for a new job was to find somewhere where I can better myself and develop. I had never heard of LMAX before applying, the first time I got a real flavour of who they are was the interview process.

The interview process was unlike any other I have experienced. Aside from the typical, ‘Tell me about yourself’, the questions were interesting and engaging. A personal favourite was an interactive debugging scenario. It immediately gave me a good impression. I could tell that these guys are serious and know their stuff. They actually wanted to help me understand too! I remember thinking these are people I want to learn from.

What piqued my curiosity was the approach to automate everything. The result of this approach has compounded over the years: leaving a set of tests that act both as a safety net allowing for fast agile development, and as documentation for how every aspect of the exchange works. At a surface level it’s impressive, but when you look deeper into how these tens of thousands of tests are written, how they are run and the metrics that come out of them. The feedback is amazing. I even discovered they have testing in live.

So we get feedback, now what? The fact we get all this information is one thing, acting on it is another. LMAX has built tools to interpret the feedback we get from CI. What this means is that as a development team, we are able to deduce if changes made to the codebase have a positive or negative effect to the performance of the system. It goes without saying, if the change made has had a negative effect, we revert, analyse it and do it again.

For me, feedback is a key part of the LMAX culture and it’s why I love working here. Like our tests give feedback, our colleagues are encouraged to give feedback too. Whether it be how we approached a specific technical problem and what to change for next time, or even directing people to blog posts or source material to improve a specific skill set. I think once you’ve worked with people who truly care about what they ship, it changes how you see the whole development process.

Stewart

In my first 4 months at LMAX I have become convinced that there are in fact best practices to performing software testing. I came to LMAX as a Test Analyst with several years experience in functional automation and performance testing. Though even with all I knew, I found that many of the concepts and techniques used here are quite novel, cutting edge, and did surprise me. Ultimately, after many initial hurdles, the practices here have left me with a very positive opinion of the company.

What I’d really like to give special mention to is our way of working. You’ve probably heard of ‘pair programming’ - I had too - but I did not realise just how much pair programming was ingrained into the culture at LMAX. From my previous experience, pair programming meant knowledge transfer and feedback for your automation tests. But pairing as a cultural norm for the majority of the day, and for a lot of the time with developers, was something completely new to me. I was so used to being given a task where I would go away and work on it on my own, that this transition did not come easy. Pairing forced me to consider the needs of the pair and to be able to think, process, and explain ideas in a way that can be understood without any preparation. It is a way of keeping you focused and engaged.

It is fair to say that at first I found the whole experience of pairing to be somewhat frustrating and difficult. However, by my 3rd month, I was really beginning to enjoy it and notice the benefits of the system. It would help me in understanding the new concepts that were integral to exchange trading platforms. Furthermore, pairing with developers gave me a deeper insight into how I was thinking about and preparing to test a piece of work, sparking fresh ideas for test cases. It can also function as a means of code review - so gone is the experience of painstakingly sifting through a code commit with little context, then trying to make what sense of it you can. The best part too is that the developers are all very skilled and super helpful, so any shortfalls in my own skill set can be ironed out and improved upon just by observing how the developers do things… it’s amazing just how many intellij shortcuts I was unaware of!

With this in mind I would say that so far the best thing about working at LMAX is the skills I have learned while paired with the developers and testers. As a tester who enjoys programming and using testing techniques within automation code, I found plenty here to learn and discover. The test framework uses it’s own domain specific language where your test cases will utilise tools like selenium webdriver. The implementations of such tools are abstracted in a way that helps the test cases become more readable. With readability, the acceptance tests can function as a form of documentation. It all works neatly and helps with the maintainability of software. When used in tandem, these techniques and pair programming embody the test driven culture at LMAX.