Skip to content

Instantly share code, notes, and snippets.

@wesen
Created July 21, 2023 14:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wesen/dc4acd68a3bd9909d4b7a5a03232b42b to your computer and use it in GitHub Desktop.
Save wesen/dc4acd68a3bd9909d4b7a5a03232b42b to your computer and use it in GitHub Desktop.

Technical Team Composition: The Tree Center (TTC)

1. Infrastructure / DevOps

Definition: A technical role focused on maintaining and improving the company's software infrastructure, which includes the servers, databases, and networks required for application deployment and performance.

Responsibilities

  • Setting up, managing and maintaining AWS infrastructure
  • Setting up and maintaining 3rd party services (Rollbar, Datadog, payment processors, GTM, others)
  • Ensuring website and server stability (on-call responsibilities)
  • Performing critical background tasks (database backups, cron jobs, database reindexing, exporting databases for dev environments)
  • Integration with delivery services such as FedEx
  • Continuous Integration and Continuous Deployment (CICD)
  • Slack integration for alerting and version deployment notifications

Challenges

  • As this role primarily operates behind the scenes, work done here often goes unnoticed unless something goes wrong. Could take up 40-50% of Seb's work.

2. Backend Development

Definition: A technical role involved in the server-side of application development, focusing on managing and manipulating data for the user interface.

Responsibilities

  • Data storage and retrieval
  • API calls management for inventory, order, and other data operations
  • Payment provider integration
  • Label creation and printing functionality
  • Connecting frontend actions from ScanApp to Treeadmin
  • Creation of command line tools to assist in development
  • Import and export to Google Sheets
  • Backend codebase cleanup: transforming it from Seb’s current implementation into something more modern, robust, and flexible

Challenges

  • This position requires a deep understanding of codebase and how it has been developed over the years to handle its complexity.

3. Frontend Development

Definition: The aspect of software engineering that focuses on the user interface and user experience, including the design and layout of the application.

Responsibilities

  • Implementing designs in React
  • WordPress theme development
  • Designing forms, sidebars, tables for Treeadmin
  • Matching Figma design with the utilized component system
  • Set up streamlined designer feedback mechanisms
  • Some UX design tasks
  • Maintenance of frontend separation from the backend

Challenges

  • This role requires cooperation with designers and maintaining the balance between frontend needs and backend capabilities.

4. Full Stack Development

Definition: A technical role that encompasses both frontend and backend development, requiring skills in UI/UX design, databases, servers, and systems engineering.

Responsibilities

  • Integration of new payment providers into the frontend
  • Static site generation for category view, filter pages, PDF rendering
  • Ad and tracking integration, bridging backend, some infrastructure, data analysis, and frontend work
  • Working with WordPress and understanding how to integrate various services

Challenges

  • Requires broad knowledge and skill due to the overlapping nature of the position. Balancing responsibilities between frontend and backend can be challenging.

5. Project and Product Management

Definition: This role focuses on planning, executing and overseeing projects to ensure they are completed in a timely manner and within budget.

Responsibilities

  • Scoping out new features
  • Prioritizing projects
  • Transforming business needs into technical designs
  • Creating and managing Github tickets
  • Facilitating dialogues between various stakeholders (on the farm, inventory logs inspectors, etc.)
  • Overseeing implementation and rollout of major features (like the search engine)

Challenges

  • The role requires deep technical understanding to produce viable designs, coupled with excellent interpersonal skills for dealing with a variety of stakeholders.

6. Data Analysis

Definition: This role includes performing routine qualitative and quantitative data analysis, data cleaning, and transforming raw data into valuable business insights.

Responsibilities

  • Working with data across different sources
  • Creating and maintaining reports
  • Cleaning the data lake
  • Understanding and managing backend queries
  • Understanding and reconciling differences between different external data sources
  • Setting up appropriate data feeds

Challenges

  • The role requires an exceptional eye for detail and a strong understanding of data and statistics.

7. Technical Leadership

Definition: A strategic role that combines business insight and technical knowledge to help guide the overall technical direction of the organization.

Responsibilities and Projects

  • Architectural Decision-Making:

    • Oversee major long-term technological decisions and implementations
    • Design new architectures to support the proactive development of the tech stack
    • Constructs a roadmap for strategic initiatives to guide the evolution of the tech stack
  • Refactoring and Optimization:

    • Refactor the codebase to streamline operations, improve performance, and enhance its maintainability
    • Identify areas within the codebase that need refactoring
    • Oversee the implementation of changes to ensure minimal disruption to services
  • Tech Stack Evolution:

    • Evaluate emerging technologies and assess their potential value for the company (React, Chromatic, AWS, Docker, dbt etc.)
    • Pilot the integration of beneficial new technologies with the current tech stack
    • Lead the implementation of these technologies within the organization
  • Strategic Planning:

    • Create long-term strategic plans for the technical team to align with the overall company goals
    • Regularly review the tech strategy to ensure it's providing the expected outcomes and adjust it as necessary
    • Provide input into business strategy from a tech perspective
  • People Management:

    • Delegate tasks effectively to individual developers based on their skill sets
    • Mentor and coach the development team
    • Foster a culture of continuous learning within the team
  • Problem-Solving:

    • Provide short-term solutions for problems such as order splitting or moving to a new shipment provider
    • Innovate solutions to align the technologies used across the TTC, GEC, and Plantbase to avoid three separate tech stacks
    • Create robust systems to prevent future issues

Challenges

  • This role requires thorough technical knowledge, strategic foresight, and leadership skills.
  • Balancing short-term needs with long-term goals
  • Apart from the technicalities, understanding the individual thought processes of the developers is crucial for efficient delegation.
  • Keeping pace with the ever-transforming tech scene to incorporate the best and latest for the benefit of the organization.

Projects

Here is a list of concrete projects that involved technical leadership:

  • Moving infrastructure to AWS
  • Designing and implementing the data lake
  • Designing and building the reporting system
  • Planning and executing the move to React for filters
  • Overseeing gradual refactoring of the backend codebase
  • Designing proper indexing jobs and scripts for the search engine
  • Finding short term solutions for order splitting issues
  • Transitioning to a new shipment provider without disrupting historical data
  • Exploring integration of TTC, GEC, and Plantbase systems
  • Introducing and integrating new technologies like React, Chromatic, AWS, Docker, dbt, etc.
  • Mapping business problems to potential technology solutions
  • Architecting the separation of the frontend and backend
  • Overseeing the buildout of the CI/CD pipelines
  • Planning the move to standardized frontend stack (React, Chromatic, Figma)
  • Designing and executing technical improvements to the search engine
  • Improving application performance through strategic optimizations
  • Mentoring other developers and fostering a culture of learning

8. Mobile Development

Definition: A technical role focused on developing software applications for mobile platforms, such as smartphones and tablets.

Responsibilities

  • Development of ScanApp in React
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment