Photo by Expect Best from Pexels

Working at a Bank as a Developer!

Omar Duarte
6 min readApr 9, 2019

What is it like working at a Bank as an application developer? I have been asked this several times, specially the times I was recruiting for the banks. So, I am creating this post to share with other developers that are wondering the same thing or are in the middle of deciding between a tech company or a Bank.

Quick note, I say bank a lot here and that is just to make things simple but I am also including Investment Banks.

I have spent over 9 years working as an application developer for one of the remaining US Investment Banks and over 3 years for a major US Bank. I have learned a lot during that time, and there are somethings I wished I knew before making my decision. Now I would like to share with you.

Okay, lets cover one thing before moving on. The below is strictly my experience and my opinion alone. There are no facts, just observations that could help someone make a decision as to whether working at a major finance firm is that right place for you. It all depends on your preference and your current situation.

Now that’s out of the way, let’s move on!

Technology

For a technologist, there are couple of options and if you are starting out or a junior developer you are probably more flexible in terms of which direction to go.

Generally, there two types of teams. There is the application team, which is tied to a specific business and could support multiple applications. Secondly, there is a core technical team (depending on the bank, they could have different names for these groups). The idea behind core technical teams is that they focus on technical solutions rather than supporting a business. Let’s tackle each of these separately.

The Application Team

The application team is tied to a business, but the technology they use depends on what sort of solution the business requires. Let’s imagine you work at a front desk team (example, a team that deals directly with traders). The team will most likely have some sort of web application that helps with market research and/or trading. Here you would be dealing with web technologies like JavaScript, HTML, CSS, PHP, C#, or even Java using Apache Structs (let’s hope not!). In some cases these are desktop application written in C#.

There would be a persistence layer, which again will also depending on your team. This could be your standard relation database (MySQL), or a NoSQL solution. It all depends on the goal of the application.

These front-end applications are mostly sourcing data from other teams, or interacting with other internal system for execution. That is the other type of application team, back-end.

Back-end teams mostly deal with data processing and crunching numbers as per business rules. An example of this would be books and records which is the golden source for all the data being used in the firm and all other teams have APIs to interact with it. The main technology used here will most likely be Java. Java is widely used in back-end teams for almost everything. You will definitely see a lot of Java developers in Banks.

There are a few back-end teams that use C++ as their technology of choice, the main reason for this is that the application needs to meet a certain level of speed and reach some low level efficiencies. These groups are usually tough to get into, and you can image why.

In general, the above covers a high level view into application teams. I can go deeper but I feel this is good enough to get an idea of what an application developer can expect.

The Core Team

The core team doesn’t support any specific business, but depending on the bank they could be under a specific division. So, there could be a core team under Investment Banking and another under Asset Management. They would share similar goals, in that they provide technical solutions to their division.

The core team, would be a great fit for someone that is extremely technical and geeks out on things like Cloud, Machine Learning, frameworks, etc...

The solutions provided by the core teams could vary, for example I worked under Asset Management and one of the core teams major deliverable was creating an internal Private Cloud (take a look at this article by redhat on private cloud for more info). This was an exciting topic for me, at that time I was playing around with Serverless applications using AWS (Amazon Web Services). So this was a great place to learn and pick up on topics like serverless, containerization, security, orchestration etc…

Take a look at this video by LevelUpTuts on Serverless, Scott does a great job and has lots of other great content (free and paid).

The core team, would be a great fit for someone that is extremely technical and geeks out on things like Cloud, Machine Learning, frameworks etc...

The other Core team

There is another team that is extremely technical, but I don’t put it under a Core team because their purpose is slightly different. That is the research an development group. These teams are the ones that are looking ahead in terms of technology and the evolution of technology and how to implement them within the firm. For example, in my previous firm there was a group focusing on Blockchain and how that can be applied to Banking. That is just one example, but the research would depend on the times. This is another competitive group to get into, it usually comprises of senior software engineers and architects. Another great place to be if you are strictly technical, and you get to play with the latest and greatest!

One last thing

Technology at banks go through an extra layer of scrutiny. That means that not just any open source or latest version of a language can be used at any time on any application. Various security checks need to run first and approved by an internal body, only then is the technology available. Each firm has their own way of letting their developers know which version to use or which open source library is available. Most likely there would be an internal repository where you would download or install from, which is already governed by the firm with pre-approved tech.

So what does this mean? You will be dealing with technology that is a few version behind, you wont always be dealing with latest and greatest. Unless you get into a green field project (brand new project with new tech stack).

Conclusion

As you can see, there are plenty of options when choosing to work at a Bank as a developer. You can either be part of an application or core team. If one doesn’t fit you, then you are welcome to move to a core team or to another application team. You even have the option of switching to the business side, if that lines up more with your goals. This is one of the benefits of working at a large Bank, having the flexibility to switch teams or divisions and try out new things versus leaving and trying out the job market again.

Hopefully the above gives you a better idea of what to expect when working at a Bank (or financial firm), and should make your decision a little bit easier.

Would like to know more about culture or even developer roles? If so, let me know I can also post about that.

Good to luck!

--

--

Omar Duarte

Love Family • Passionate about Learning • all things Coding • our planet • the Universe • Did I mention Batman?! http://devkisslist.com