BofA Flashcards

Learn my resume yo

1
Q

Can you walk me through the Python-based API you extended at Wells Fargo?

A

I worked on a Python-based API called budgetAlertService, which was responsible for tracking cloud spending in GCP. I extended its functionality to support real-time budget alerts, allowing the system to notify teams when costs exceeded predefined thresholds. This involved modifying existing endpoints, integrating with GCP’s cost monitoring tools, and ensuring the API correctly formatted and sent notifications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How do you handle authentication and authorization when building APIs?

A

For authentication, I’ve worked with OAuth, particularly when integrating APIs like Spotify. For authorization, I would typically use role-based access control (RBAC) and ensure that endpoints enforce permissions appropriately. In Python, this can be done using frameworks like Flask or FastAPI with JWT authentication.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are Python decorators, and how have you used them?

A

Python decorators are functions that modify the behavior of other functions. I’ve used them for logging, authentication, and retry logic. For example, in my Reddit-to-Spotify project, I could have implemented a decorator to handle API rate limits by automatically retrying failed requests.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How would you optimize a slow SQL query in Python?

A

First, I’d analyze the query execution plan to identify bottlenecks. Then, I’d apply optimizations like indexing, query restructuring (e.g., replacing SELECT * with specific columns), and batching queries to reduce database load. In Python, I’d use connection pooling with libraries like SQLAlchemy to improve efficiency.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How do you manage dependencies in a Python project?

A

I use pip with a requirements.txt file or poetry/pipenv for better dependency management. In larger projects, I ensure virtual environments are used to avoid conflicts.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How would you implement pagination in a REST API using Python?

A

I’d use limit-offset pagination, cursor-based pagination, or keyset pagination depending on the use case. In Flask, this could be done with query parameters like ?limit=10&offset=20 and ensuring database queries use LIMIT and OFFSET.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Can you describe a complex SQL query you’ve written and its purpose?

A

At Magnum Forge, I wrote SQL queries to transform and migrate financial data from legacy systems into a new ERP. One complex query involved joining multiple tables (Property, AFE, Division Order, and Cost Accounting) while ensuring referential integrity and deduplicating records before insertion.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How would you design an efficient schema for storing time-series data?

A

I’d use partitioning (e.g., range partitioning by time intervals), indexing on timestamps, and possibly a columnar storage engine for analytical workloads. In MySQL, I’d leverage InnoDB for transactional use cases and optimize for read-heavy workloads.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the differences between MySQL and PostgreSQL?

A

MySQL is widely used for high-speed transactions, while PostgreSQL supports more advanced features like full-text search, JSONB storage, and better concurrency handling. MySQL is optimized for simple read-heavy workloads, whereas PostgreSQL is better for complex queries and analytical processing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

How would you enforce data integrity in a relational database?

A

By defining primary keys, foreign keys, unique constraints, and check constraints. I also use transactions to ensure atomicity and avoid partial updates.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Can you explain the DAGs you created in Airflow? What was their purpose?

A

I built DAGs in Airflow to automate the creation of stored procedures, views, and tables from existing data in GCP. This helped streamline data ingestion and transformation processes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How does Airflow handle task dependencies?

A

Airflow uses directed acyclic graphs (DAGs) where tasks are defined with dependencies like set_upstream() or set_downstream(), ensuring proper execution order.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the difference between React’s useState and useReducer?

A

useState is for managing simple state, while useReducer is better for complex state logic that involves multiple actions, like handling forms or managing global state.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How do you optimize performance in a React application?

A

I use memoization (React.memo, useMemo, useCallback), lazy loading, and optimize re-renders by structuring components efficiently.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Can you walk me through the deployment process you followed at Wells Fargo?

A

I pushed code changes to GitHub, which triggered a Jenkins build. After passing automated checks, the build was deployed to the development environment using UDeploy. Once validated, we moved it to production.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How does Jenkins fit into a CI/CD pipeline?

A

Jenkins automates building, testing, and deploying code by triggering jobs based on commits. It integrates with GitHub, Docker, Kubernetes, and other tools.

17
Q

What strategies have you used to roll back a bad deployment?

A

I ensure deployments are versioned and use feature flags to disable breaking changes. In UDeploy, I can revert to a previous stable build.

18
Q

How would you design a rate-limiting mechanism for an API?

A

I’d use a token bucket or leaky bucket algorithm with a caching layer like Redis to track requests per user/IP.

19
Q

What caching strategies would you use to reduce database load?

A

I’d use read-through, write-back, or write-through caching with Redis or Memcached. For queries, I’d cache frequent lookups and set appropriate expiration policies.

20
Q

Can you describe a time when you had to learn a new technology quickly for a project?

A

When I started working on Airflow at Wells Fargo, I had no prior experience with it. I quickly ramped up by reading documentation, experimenting with test DAGs, and collaborating with teammates. Within weeks, I automated workflows using Airflow in GCP.

21
Q

Tell me about a challenging debugging issue you faced—how did you solve it?

A

While working on a Tableau dashboard at Wells Fargo, I noticed discrepancies in data visualizations. After tracing the issue back to data sources, I found that filters were incorrectly applied, leading to incorrect aggregations. I fixed the issue by adjusting data joins and ensuring filters were consistent across views.

22
Q

Describe a time when you had to collaborate with another team to complete a project.

A

While developing the internal monitoring dashboard at Wells Fargo, I worked closely with infrastructure teams to integrate Splunk data. I coordinated with them to ensure we had the right log access and formatted queries properly.

23
Q

Have you ever received negative feedback on your code? How did you handle it?

A

Yes, early in my career, I wrote SQL queries that weren’t optimized for large datasets. A senior developer pointed this out in a code review. I took the feedback constructively, studied indexing and query optimization, and improved my approach in future queries.

24
Q

Can you share a situation where you had multiple competing priorities? How did you manage them?

A

During Q4 2023, I was balancing multiple tasks—Tableau dashboard updates, Splunk integration, and budget alert API modifications. I prioritized tasks based on impact and urgency, used Jira to track progress, and communicated proactively with stakeholders to set expectations.