Position Overview
Monolith AI is seeking a talented Software Developer for an intensive 3‑month migration project transitioning existing client environments to our next‑generation platform. This role requires a developer who excels at rapidly understanding undocumented systems, extracting clarity from complex database structures, and building practical migration tooling in Python. You'll work closely with our 15‑person technical team (currently doubling), collaborating extensively with Customer Success and Product to ensure migrations meet defined business requirements while maintaining high velocity.
Primary Responsibilities
-
Rapid System Understanding
- Quickly grasp existing PostgreSQL database schemas through code inspection, team discussions, and reverse engineering
- Understand new platform database architecture and how legacy data maps to the new structure
- Work with pickle files and S3 object storage to understand serialized data structures
- Extract clarity from poorly documented legacy systems through hands‑on investigation
-
Cross‑Functional Requirements Gathering
- Collaborate with Customer Success to understand client migration requirements and acceptance criteria
- Partner with Product team to define and iterate on what constitutes acceptable migration outcomes
- Balance technical constraints with business needs to establish pragmatic migration standards
- Clarify ambiguous requirements and drive decisions on edge cases and trade‑offs
-
Product Context & Impact Analysis
- Understand how database entries and S3‑stored objects drive UI behavior and user workflows
- Work with the existing team to learn system behavior through discussions and knowledge transfer
- Identify how legacy data structures distribute across new platform tables and storage
-
Migration Tool Development
- Build Python migration scripts to convert legacy notebooks to the new platform format
- Work with Flask and FastAPI layers to understand API interactions and data flow
- Handle pickle file deserialization and data transformation logic
- Implement validation against defined Customer Success requirements (not 100% data integrity)
-
Velocity & Communication Management
- Maintain rapid project pace with tight 3‑month timeline
- Provide frequent progress updates to the tech lead on development speed and blockers
- Proactively communicate risks, timeline concerns, and decision points
- Make pragmatic technical decisions that balance quality with delivery speed
-
Testing & Validation Against Requirements
- Test migration outputs against Customer Success acceptance criteria
- Validate migrated notebooks meet defined business requirements
- Identify and communicate gaps between migration output and requirements for product decisions
-
Process Documentation & Knowledge Transfer
- Document the migration process, key decisions, and data mapping logic
- Create runbooks for executing migrations and handling common issues
- Transfer knowledge primarily through discussions with the existing team
- Prepare materials enabling team to execute and troubleshoot migrations post‑contract
Key Performance Indicators
-
Migration Meets Defined Requirements
- Deliver migrations that satisfy Customer Success acceptance criteria
- Successfully validate migrated notebooks against agreed‑upon business requirements
-
Project Timeline Adherence
- Meet aggressive 3‑month delivery timeline for functional migration tooling
- Maintain high velocity while communicating openly about progress with tech lead
-
Effective Cross‑Functional Collaboration
- Successfully partner with Customer Success and Product to clarify and iterate on migration criteria
- Drive timely decisions on requirements and edge cases to avoid project delays
-
Code Quality & Maintainability
- Produce clean, maintainable Python code that the team can support post‑contract
- Create clear documentation enabling team execution of migration processes
-
Communication & Knowledge Transfer
- Provide consistent progress updates and flag blockers early
- Successfully transfer migration knowledge to existing team through discussions and documentation
Required Qualifications
Experience
- 3+ years of professional software development experience
- 2+ years working with Python in production environments
- Experience working with PostgreSQL databases and complex data structures
- Demonstrated ability to reverse engineer and understand undocumented systems
- Previous work in fast‑paced, deadline‑driven environments
Technical Skills • Programming:
Strong Python proficiency including handling pickle files, data processing, and object serialization
- Databases: Solid understanding of PostgreSQL including complex data structures, relationships, and schema interpretation
- APIs: Familiarity with Flask and/or FastAPI frameworks and RESTful API concepts
- Cloud Storage: Experience with S3 or similar object storage services for reading/writing data
- System Investigation: Ability to read and understand existing codebases to extract system behavior
- Version Control: Proficiency with Git and collaborative development workflows
Preferred Qualifications
- Experience with data migration or system modernization projects
- Background working with legacy systems or technical debt remediation
- Familiarity with Jupyter notebooks or similar computational environments
- Previous contract or consulting roles requiring rapid onboarding
- Experience in startup or scale‑up environments with evolving requirements
- Knowledge of data serialization formats and their trade‑offs
- Prior work extracting understanding from poorly documented codebases
- Experience balancing technical perfection with business pragmatism
Necessary Soft Skills
Communication Excellence
- Critical for this role: Exceptional verbal communication for knowledge transfer through discussions
- Clear articulation of technical concepts to non‑technical stakeholders (Customer Success, Product)
- Proactive in providing progress updates and surfacing blockers to tech lead
- Comfortable driving conversations to clarify ambiguous requirements and make decisions
- Strong active listening skills for extracting knowledge from existing team members
Rapid Learning & System Investigation
- Ability to quickly understand complex, undocumented systems through code inspection and experimentation
- Comfortable with ambiguity and extracting clarity from incomplete information
- Pattern recognition for understanding how disparate code and data relate to system behavior
- Resourceful problem‑solver who can piece together understanding from multiple sources
Velocity & Pragmatism
- Thrives in fast‑paced environments with tight deadlines (3‑month delivery window)
- Makes practical trade‑offs between thoroughness and speed appropriately
- Knows when "good enough" meets requirements vs. when additional rigor is needed
- Self‑directed with strong bias toward action and delivery
Collaboration & Stakeholder Management
- Partners effectively with Customer Success to understand business requirements
- Works iteratively with Product to define acceptable migration outcomes
- Team player who actively engages with tech lead and existing engineers
- Builds relationships quickly to facilitate knowledge transfer
Adaptability & Ownership
- Comfortable with evolving requirements and criteria as project progresses
- Takes full ownership of deliverables despite short contract timeline
- Flexible in approach when new information changes understanding
- Maintains composure and productivity in dynamic, growing organization (team doubling)
Results‑Oriented Mindset
- Focuses on meeting defined business requirements rather than technical perfection
- Prioritizes work that directly impacts migration success and timeline
- Transparent about what's achievable within timeline constraints
- Accountable for commitments and proactive when risks emerge
Key Challenges in This Role
-
Extracting Understanding from Undocumented Legacy System
- Must rapidly reverse engineer and understand complex PostgreSQL schemas and S3 object structures with limited documentation, requiring strong investigative skills and ability to learn through code inspection and team discussions
-
Balancing Speed with Quality in Tight Timeline
- Two‑month delivery window requires making pragmatic decisions about what to build vs. what to defer, while ensuring migrations meet Customer Success requirements—demands constant communication with tech lead about velocity and trade‑offs
-
Navigating Requirements Through Multiple Stakeholders
- Must work with Customer Success to understand business needs, Product to define acceptance criteria, and engineering to understand technical constraints—all while maintaining project momentum and driving timely decisions on edge cases