6. Key Responsibilities
As a Software Engineer, your day-to-day will involve translating business requirements into robust technical solutions. You will spend a significant portion of your time designing APIs, optimizing database schemas, and writing unit tests to ensure system stability. Collaboration is constant; you will frequently sync with product managers to refine requirements and with DevOps teams to ensure smooth deployment of your code.
You will also be responsible for maintaining existing services, which involves debugging production issues and refactoring legacy code to improve performance. The ability to document your work and communicate your design decisions to the team is just as important as the code you write. You are expected to be a proactive problem solver who takes ownership of the entire software development lifecycle, from initial concept to deployment and beyond.
7. Role Requirements & Qualifications
A successful candidate typically demonstrates a blend of strong computer science fundamentals and practical experience with enterprise-grade systems.
- Must-have skills:
- Proficiency in Java and the Spring Boot framework.
- Solid understanding of SQL and relational database design.
- Experience with Data Structures and Algorithms (DSA).
- Familiarity with version control systems like Git.
- Nice-to-have skills:
- Experience with cloud platforms (e.g., AWS, Azure).
- Knowledge of Kafka or other messaging systems.
- Experience with front-end frameworks like Angular or React.
- Exposure to Kubernetes and containerization technologies.
8. Frequently Asked Questions
Q: How long does the interview process typically take?
The timeline can vary significantly, ranging from a few weeks to a couple of months. Stay proactive, but be prepared for potential gaps in communication between rounds.
Q: Is it strictly LeetCode-style interviewing?
While DSA problems are common, they are rarely the sole focus. Expect a balance of coding, system design, and behavioral questions that test your ability to apply theory to real-world scenarios.
Q: Should I prepare for finance-specific questions?
Most roles focus on general engineering, but some teams may touch upon financial concepts relevant to their domain. You are not expected to be a financial expert, but a basic understanding of your team's business area is a major plus.
Q: How should I handle an interviewer who is not very communicative?
Maintain your professionalism. If the interviewer is quiet or direct, continue to narrate your thought process clearly and ask clarifying questions to keep the dialogue moving.
9. Other General Tips
- Own your resume: Be prepared to explain every project, tech stack, and role listed. If you mention a technology, you should be able to discuss it in detail.
- Practice live coding: Use an IDE or a simple text editor to practice writing code without the help of auto-complete tools.
- Prepare for the "Why Citi?" question: Research the company's recent initiatives and demonstrate a genuine interest in the scale and impact of their work.
- Ask meaningful questions: At the end of your interviews, ask about the team's current technical challenges or their approach to balancing new features with technical debt.
- Focus on the "How" and "Why": Don't just provide the correct answer; explain your reasoning, the trade-offs you considered, and why your approach was the most suitable.