What comes to your mind when you think of a software engineer? A person wearing a hoodie, with a beanie trying to cover up his rugged features and ruffled hair? Sitting at an untidy table, on his right, a half-eaten fried chicken, and on his left, an empty instant noodle cup? Or does Mark Zuckerberg come to mind, a genius and a self-made billionaire?
Growing up with Hollywood films, you would have seen how Hollywood portrayed software engineers. However, I am sure what made you decide to be a software engineer is not solely because your parents told you to do so, but deep down, you know that besides the untidy table and rugged look a software engineer has, he always has a sparkle in his eyes when he codes. And it intrigues you!
So, what does a software engineer do exactly in JurisTech? Let me walk you through it.
If you are coming in as a newcomer, the very first thing you would need to do is to go through two weeks of intensive onboarding training specifically designed to equip anyone from interns, to fresh graduates, to even experienced hires, with the skills and information needed to work at JurisTech.
As a software engineer, you will be given the opportunity to learn some basic coding in PHP, SQL, as well as core technical knowledge based on our in-house proprietary framework developed and created by our co-founder and CTO, John Lim.
During your intensive onboarding training, you will be evaluated and assigned to different teams such as the project team, product team, the customer support and enhancement team, better known as the ACES (Advocates for Clients Experience & Success) team, or the COE (Centre of Excellence) team, which is the R&D (Research and Development) team of JurisTech. Once you are assigned to your respective teams, you would get to experience the full Software Development Life Cycle (SDLC).
JurisTech is a leading enterprise solutions provider for banks and financial institutions in Malaysia and the greater Southeast Asian region. We serve some of the largest enterprises in the finance industry and we always make sure we dress the part. So, suit up in your fresh, nicely ironed, clean business attire because first impressions matter! Furthermore, you are also able to experience what it means to run a project, facing real business users with real business problems. Not everything is about code and play, you get to experience how to deal with vendors, business users, and even your colleagues.
So, what does a software engineer do in projects? A project team will be headed by a project manager, a functional lead and a technical lead. As a software engineer, this technical lead will be your direct manager where he/she will guide you as well as challenge you to take on more tasks. As each project is different, you will have the opportunity to learn different things throughout the project as well as through different projects. Most of our technical leads have been trained since they were fresh graduates and are now full stack engineers who dabble in all aspects of programming. Your technical lead will have experience with OS commands and configuration; web server installation and configuration; DB installation, configuration, and administration; and of course, web programming.
Being in the project team, you get to experience a full-fledged project life cycle. At JurisTech, daily stand-up meetings for every team is a must. During stand-up meetings, each person in the team will give an update on tasks they have completed the prior day to contribute to the progress of the project. Furthermore, they will also give their projections on their expected completions for the day and let the team know whether they are facing any roadblocks to reach the expected output.
We practice Agile development by executing our development in sprints, where each sprint is typically run for two weeks. Before the start of each sprint, the whole team would meet for a sprint planning to discuss cards allocated for the sprint. A card typically contains a task, or multiple subtasks.
After sprint planning, members in the team can voluntarily pick up a card to work on it. You are required to come up with your own solution for each card. For instance, you analyse for gaps, determine whether it is logical or feasible, and figure out the cost to complete the card. This includes having discussions on business requirements. Then, you would need to pitch your proposed solution to your tech lead to see if there are any issues or concerns you might have overlooked. For newbies, not to worry! Your tech lead will guide you through the execution of tasks for each card.
Communication is key when working on a project. Discussions are essential when there are some high-level functionality requirements related to a system that needs clarification, refining, or filling of certain gaps. What do we mean by high-level requirements? It typically refers to requirements of a system related to the user. For example, if a user clicks on a button, where should it lead them to, what should they see on their screen, etc. All in all, what should the system do in order to deliver actual business value for the clients? In addition, discussions are also required when there is some technical requirement which is necessitated by a functional or non-functional requirement such as security, performance, reliability, etc. For both cases, discussions usually happen either among team members or it could involve external parties such as people from other departments who could serve as subject-matter experts (SME). An SME is a person who is an authority in a particular area or topic. They are the people who will avail themselves to help solve issues and provide insights and advice across the company.
Of course, as a software engineer, you cannot escape from coding, programming, and developing products. After getting all the necessary information needed to complete your card, it is time to start getting the computer to do some heavy lifting. You will then apply and incorporate that logic into the system to make it do what it is meant to do.
We are a problem-solving company. Hence, during the development process, there will be instances where the team will run into unexpected problems, which forces the team to opt for newer methods and technology that has not been used in our company before. Therefore, project teams are required to do their own research and gather intel to try and come up with better solutions or ideas. In JurisTech, special care and attention will be given to new hires. Tech leads will also have a code review session to ensure new hires implement best practices in their codes and to provide technical advice and support.
For ongoing mega projects, checkpoint meetings are implemented. A checkpoint meeting is a more in-depth stand-up meeting discussion to share whether daily targets have been met, and whether there are any new obstacles encountered during the day’s work.
To be in a project team is a privilege. Being in the project team heightens your business domain knowledge and technical skills. Not only are you able to discern and understand the customers and clients’ needs, you will also be able to build systems and be part of digital transformation processes for clients.
Besides the project team, we also have product teams where software engineers are able to be product-focused. Instead of having software engineers jump from project to project, they are able to specialise in a certain product and in the future be the SME for it.
The way things run in both teams are similar to a certain extent. The difference would be that software engineers in the product team would be responsible for the continuous improvement to the existing system of a particular product. Being able to focus on a product, software engineers are able to learn from past mistakes and to improve and enhance the overall system. Hence, the feedback loop is much better and more effective.
ACES (Advocates for Clients Experience & Success) Team
What is ACES? How is ACES different from project teams? The difference between ACES and project teams would be that ACES follow at the end cycle of a product. When a project successfully goes live and finishes its go-live support, the ACES team will take over the project/product for support. The ACES team are the frontliners in supporting the customers. They are to ensure customers have an amazing user experience with our products.
The amazing part of being assigned to ACES would be that you will be exposed to all the different systems and products across JurisTech’s clients. Due to the nature of the team, communications with clients are extensive and frequent. Hence, when a bug or an issue is reported, the ACES superheroes will analyse and, in some occasions, attempt to simulate said bug to identify the root cause. Besides all the firefighting with bugs, one of JurisTech’s core values is Customer First. We want to learn and grow together with our clients. Hence, we have our ACES team examine an existing client’s system that has gone live for a good amount of time to see what can be further improved to enhance the customer’s experience.
In ACES, your daily tasks will mainly consist of debugging, with the occasional performance tuning and enhancements to the system. You will have first-hand experience in creating new functions, creating an automated receipting module, upgrading the whole system’s PHP version, creating an integration point between different systems, and working closely with clients on fixing production issues.
Being in ACES, it is crucial to have good interpersonal skill sets. One can grow tremendously in ACES because of the constant wide exposure to many different systems across our client base. Moreover, if you are an experienced ACES member, you will have the ability to make decisions and advise ideal methods of implementation by comparing it across the systems of clients you have handled previously.
COE (Centre of Excellence)
For every tech company, the culture of innovation is essential. Hence, having a business unit doing research and development (R&D) only makes sense. We have two sets of people in COE. We have software engineers who mainly do research and development to adopt new technologies, and we also have the Artificial Intelligence (AI) team that does data science and research on AI use cases and development.
COE provides software engineers a platform to be creative and innovative. Just like the other departments, the team would also have their daily stand-up meetings for progress and roadblock reports. They would also work on developing new products and enhancing the currently available products by fixing bugs that were identified within the system. For someone developing a new product, it is also crucial to understand your work and the logic behind it. Reading the code can only get you so far. Being able to escalate problems and finding the “why” behind the “what” is what gets you far.
Last but not least
At JurisTech, we expect the best out of our employees, and that includes interns. We have cultivated an environment to grow heroes, to make excellence happen, to put customers first, and to open up in accepting feedback and ideas. Here at JurisTech, we want to build amazing solutions to build and enrich lives.
If you’re up to the challenge, click here to join us! We want you.