We may earn an affiliate commission when you visit our partners.
Course image
droidcon NYC
The benefits of modularization are well known in the community. What are the steps to get there? In this talk, Aaron He and Siggi Jonsson briefly cover Tinder's app architecture, the motivation behind the initial effort in 2016, and how they got to an app...
Read more
The benefits of modularization are well known in the community. What are the steps to get there? In this talk, Aaron He and Siggi Jonsson briefly cover Tinder's app architecture, the motivation behind the initial effort in 2016, and how they got to an app with over 300 modules. Then, they will dive into several modularization strategies that resulted in the immediate benefit of a drastically reduced feedback loop.
Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explorem modularization benefits, a foundational topic in coding and development
Taught by experts from droidcon NYC, a community of programmers
Examines modularization steps, a relevant topic for coders
Students with coding experience will most benefit from this course

Save this course

Save droidcon NYC '19: Road to Modularization to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for droidcon NYC '19: Road to Modularization. These are activities you can do either before, during, or after a course.

Career center

Learners who complete droidcon NYC '19: Road to Modularization will develop knowledge and skills that may be useful to these careers:
Software Engineer
As a Software Engineer, you design, develop, test, implement, and maintain software. This can include writing code, testing code, fixing compatibility issues, and working with other engineers. A pivotal part of this job is the ability to create modular and reusable code. It is a career that is beneficial to understand how to create modularized software, as this course will show you how.
Senior Software Engineer
As a Senior Software Engineer, you will lead software development projects, manage junior engineers, and work with other departments to ensure that software development meets the strategic goals of the business. This course may help you develop the skills and knowledge of creating modular and reusable code, which is an essential part of technology leadership.
Architect
As an Architect, you design, implement, and maintain software systems, including software architecture and system infrastructure. You will analyze a software project and its environment to design and implement the best solution. This course will help you with the aspect of creating modular and reusable code, which is an essential aspect of constructing, implementing, and maintaining effective software solutions.
Chief Technology Officer
As the Chief Technology Officer, you will have the chance to create and bring to life the technical vision for the company while leading technology throughout the organization. It is a pivotal role to have an understanding of modularization and how to create reusable code, as demonstrated in this course.
Developer
As a Developer, you will be involved in the full software development lifecycle from coding to testing and deployment. It is therefore essential to have a good understanding of modularization and how to create reusable code, as this course will show you.
Technical Lead
As the Technical Lead, you will lead the team's technical vision, as well as design, implement, and maintain the technical architecture. This course will help build a foundation for creating modular and reusable code, a skill that is essential for technical leadership.
Project Manager
As a Project Manager, you will be in charge of planning, organizing, and managing the implementation of a software project. You must be able to analyze a project and its environment to plan for all aspects of its development, including the modularization of code. This course can help you with these aspects of project planning.
Software Development Manager
As a Software Development Manager, you will be in charge of leading a team of software developers, which includes planning, organizing, and directing the development process, including the development and implementation of modular code. This course can help you build the foundation for the managerial aspects of software development.
Lead Software Engineer
As a Lead Software Engineer, you will lead and mentor other software engineers, oversee development projects, and design and implement software architectures, including the modularization of code. This course can help build the skills needed for successfully leading a team of software engineers.
Computer Scientist
As a Computer Scientist, your job is to create, develop, and test software. This includes creating efficient algorithms, data structures, and software architectures, such as modular and reusable code. This course can help build the foundation for the theoretical aspects of computer science, but is less relevant for the practical aspects of code implementation.
Systems Engineer
As a Systems Engineer, you will be in charge of planning, organizing, and managing the implementation of a complex software system. This includes understanding the system, its requirements, and the modularization of code. This course can help you with these aspects of systems engineering.
Data Scientist
Data Scientists analyze data to extract meaningful information and insights. This role may involve developing algorithms, building data models, and creating visualizations. This course may be helpful for understanding the theoretical aspects of data science, but is less relevant for the practical aspects of data analysis.
Quality Assurance Engineer
As a Quality Assurance Engineer, you will be in charge of testing software to ensure that it meets the required standards. This includes testing for bugs, performance issues, and security vulnerabilities. This course may be helpful for understanding the theoretical aspects of quality assurance, but is less relevant for the practical aspects of software testing.
User Experience Designer
As a User Experience Designer, you will be in charge of designing the user interface and experience of software applications. This includes creating wireframes, prototypes, and mockups. This course is not relevant for user experience design.
Business Analyst
As a Business Analyst, you will be in charge of analyzing business needs and requirements to define the scope of a software project. This includes working with stakeholders to gather requirements and creating functional specifications. This course is not relevant for business analysis.

Reading list

We haven't picked any books for this reading list yet.
Provides an in-depth look at modular programming in Java, covering topics such as the Java modular system, OSGi, and microkernel architectures.
Provides a comprehensive guide to designing and developing data-intensive applications, covering topics such as data modeling, data storage, and distributed systems.
Provides a comprehensive guide to designing and developing microservices-based applications, covering topics such as service discovery, load balancing, and fault tolerance.
Provides a practical guide to building and deploying microservices-based applications, covering topics such as containerization, orchestration, and monitoring.
Provides a comprehensive guide to designing and developing scalable software systems, covering topics such as performance optimization, fault tolerance, and load balancing.
Provides a comprehensive introduction to software architecture, covering topics such as architectural patterns, software design principles, and software evolution.
Provides a comprehensive guide to software architecture, covering topics such as architectural patterns, software design principles, and software evolution.
Introduces the concept of Clean Architecture, which set of principles and practices for designing software that is maintainable, extensible, and testable. It covers topics such as domain-driven design, dependency inversion, and hexagonal architecture.
Presents a comprehensive approach to domain-driven design (DDD), which software design technique that focuses on modeling the core domain concepts of a system. It covers topics such as domain modeling, bounded contexts, and aggregate roots.
Uses a humorous and engaging approach to teach design patterns, which are reusable solutions to common software design problems. It covers topics such as creational patterns, structural patterns, and behavioral patterns.
Presents a catalog of architectural patterns for enterprise applications. It covers topics such as layered architecture, service-oriented architecture, and event-driven architecture.
Covers the principles and practices of designing and building data-intensive applications. It covers topics such as data modeling, data storage, and data processing.
Introduces the concept of microservices, which are small, independent services that can be deployed and scaled independently. It covers topics such as microservice design, communication, and deployment.
Describes the principles and practices of continuous delivery, which software development approach that emphasizes frequent and automated releases of software. It covers topics such as continuous integration, continuous testing, and continuous deployment.
Provides a practical guide to DevOps, which set of practices that combine software development and operations. It covers topics such as continuous delivery, infrastructure automation, and monitoring.
Describes the principles and practices of site reliability engineering (SRE), which discipline that focuses on the reliability and performance of large-scale software systems. It covers topics such as system design, monitoring, and incident response.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser