1 of 38

Software Engineering

Practical challenges in tech companies and tips for researchers

Maurício Aniche

mauricio.aniche@adyen.com

2 of 38

Maurício Aniche

Tech Academy Lead @ Adyen

Assistant Prof in SE @ TU Delft

mauricio.aniche@adyen.com

3 of 38

Academia or

Industry…

so hard to pick one!!

4 of 38

The fun part of it all was to see and learn from both sides!

5 of 38

(hosted 10+ of my MSc students and 1 PhD candidate.)

6 of 38

7 of 38

Payments 101

Acquirer

Scheme

Issuer

Merchant

Shopper

8 of 38

complex?

What makes payments so

Uptime is non-negotiable, payments can’t be down.

Strict legislative and compliance requirements

Complex ecosystem and many different integrations + legacy

9 of 38

  • Assistant Professor in SE
  • 10% appointment
  • Interests
    • Maintenance
    • Evolution
    • Testing
  • Research
    • Empirical software engineering
    • ML4SE
  • 2021 Teacher of the Year in Computer Science
  • TU Delft education fellow (for life)

10 of 38

Table of Contents

01

02

03

04

Tech companies

How do they work, and challenges they have!

Lessons learned

What did I learn and what I'd do differently in my research

Education

SE education is vital!

Takeaways

And goodbye!

11 of 38

Tech companies

01

What engineering (management) challenges do they face?

12 of 38

Literally everything is there to help the

business grow

13 of 38

Big bang changes won't even be considered

14 of 38

Nothing can stop engineers from

delivering value

15 of 38

Duplication of (bad) ideas

is the real problem

16 of 38

Every tech company has some legacy to handle.

17 of 38

The real scaling problem is scaling people, culture, and teams

18 of 38

Quality assurance goes way beyond automated tests

19 of 38

Simplicity is always favored over complex solutions

20 of 38

Companies won't change their way of working because your idea is cool

21 of 38

Lessons learned

02

What would I do differently as a researcher?

22 of 38

I'd understand more about engineering management

23 of 38

More ways of replicating the work within companies

24 of 38

Data only gives you only a partial view of the phenomenon

(and that's fine)

25 of 38

Tools rarely work out-of-the-box in any mid or large-sized company

(i.e., a lot of engineering is required before the cool research starts)

26 of 38

You don't need to do research that's only useful for Google or Amazon

27 of 38

Don't focus on what developers already know

(and yet, "fight the common sense")

28 of 38

Find peace with your research community

29 of 38

Go to developer conferences and

read their books

30 of 38

Education

03

We are responsible for the engineers of the future!

31 of 38

Engineers should be engineers first

32 of 38

Best practices beyond the foundations

33 of 38

Accept life-long learning

(i.e., universities are not the only place to learn anymore)

34 of 38

A stable course is a

dead course

35 of 38

If teaching is not for you, let someone that cares about teaching do it!

36 of 38

Takeaways

04

37 of 38

  • Get to know how tech companies work (organization and engineering)

  • Get to know what the state-of-the-practice looks like

  • Focus on industry replication rather than 0.1% improvements

  • The engineer of tomorrow needs to be a strong engineer first before anything else

38 of 38

Software Engineering

Practical challenges in tech companies and tips for researchers

Maurício Aniche

mauricio.aniche@adyen.com

Code "au35ani" gives you 35% discount!

Newsletter: effective-software-testing.com