• Register Now
  • CTE Curriculum
  • Alternative Education
  • iCEV Testing Platform
  • Certification Preparation
  • State Resources
  • Learning Center

Schedule A Demo

Industry Certifications

Reporting & Analytics

Engineering Design & Presentation I

Engineering_Design_Presentation

About the Course

SAMPLE LESSON​​​​​​

  • Product Design Considerations

Each lesson includes media-rich presentations, a pre-made lesson plan, assessments and engaging real-world projects and activities. To get an idea of what iCEV offers, explore the sample lesson and resources below.

Lesson Resources:

  • Lesson Plan
  • Project: Design & Patent It

Lessons Available in This Course

  • Design Challenge: Cargo Transport
  • Design Challenge: Product Design & Production
  • Engineering Design & Presentation Capstone
  • Engineering Design Methodologies
  • Engineering Teams
  • Ethics in Engineering Design
  • Lab Safety: Engineering Presentation
  • Principles of Computer-Aided Drawing
  • Professionalism in the Sciences: Engineering Presentation
  • Project Planning & Management
  • Prototyping
  • STEM Careers: Engineering Presentation

Ready to Get Started?

TEA Logo

  • TEA Website
  • Contact TEA
  • Sign Up For Updates

Home

Scope and Sequence: Engineering Design and Presentation I

Description.

CTE TEKS - Implemented 2017-2018, adopted in 2015

Engineering Design and Presentation I course scope and sequence within the Science, Technology, Engineering, and Mathematics Career Cluster® summarizes the content to be taught, and one possible order for teaching the units of instruction. A brief description of each unit and the corresponding TEKS are included. This scope and sequence may be adapted or adopted by the local education agency.

Download the scope and sequence document

Shapiro Library

EG 110 - Engineering Design 1

  • Citing Your Sources
  • SNHU Wolak Learning Center (Campus Students)

Writing Help

If you need help writing your best resource is the Wolak Learning Center   (Campus Students). However, the library has a number of resources that can help and librarians can lead you to web resources that may also be useful. The following are some recommended books and web resources to help you write:

  • Advice on Academic Writing
  • OWL at Purdue
  • The University of North Carolina Writing Center Handouts
  • The University of Wisconsin-Madison Writing Handbook

engineering design and presentation 1

Find More Information with FAQs:

  • How do I write a paragraph and what does an introductory paragraph include?
  • What is a literature review and how do I write one?
  • What is an annotated bibliography and how do I write one?
  • Where can I find help with grammar?
  • Where can I find help writing a thesis statement?
  • Where can I get help preparing an outline?
  • Where can I get help writing an essay?

Presentation Help

If you need help preparing a presentation your best resource is the Wolak Learning Center (Campus Students). However, the library has a number of resources that can help and librarians can lead you to web resources that may also be useful. The following are some recommended books and web resources to help you prepare a presentation:

  • 15 Strategies for Giving Oral Presentations
  • Design a Presentation
  • Presentation Magazine
  • SNHU Guide to Designing Professional Posters

engineering design and presentation 1

  • How can I request a poster?
  • Where can I find help creating a presentation?
  • Where can I find help designing a poster?
  • Where can I find help writing or presenting an informative speech?
  • Where can I find help writing or presenting a persuasive speech?
  • Where can I find poster templates?
  • Where can I find resources to help me debate?
  • << Previous: 3-D Printing in the MakerSpace
  • Next: Citing Sources >>

FREE K-12 standards-aligned STEM

curriculum for educators everywhere!

Find more at TeachEngineering.org .

  • TeachEngineering
  • What Is Engineering and What Is Design?

Lesson What Is Engineering and What Is Design?

Grade Level: 5 (5-7)

Time Required: 45 minutes

Lesson Dependency: None

Subject Areas: Science and Technology

NGSS Performance Expectations:

NGSS Three Dimensional Triangle

  • Print lesson and its associated curriculum

Curriculum in this Unit Units serve as guides to a particular content or subject area. Nested under units are lessons (in purple) and hands-on activities (in blue). Note that not all lessons and activities will exist under a unit, and instead may exist as "standalone" curriculum.

  • Maze Challenge
  • Hare and Snail Challenges
  • Sumobot Challenge
  • Line-Follower Challenge
  • Robot Soccer Challenge

TE Newsletter

Engineering connection, learning objectives, worksheets and attachments, more curriculum like this, introduction/motivation, associated activities, vocabulary/definitions, additional multimedia support, user comments & tips.

Engineers make a world of difference

Engineers apply their in-depth understanding of scientific and mathematical subjects to design and create devices, structures and systems that improve our lives. While scientists investigate what already exists and discover new knowledge by peering into the unknown, engineers create what has not been—they make things that have never existed before. Engineering teams follow the steps of the engineering design process: understand the need/problem, brainstorm different designs, select the best design, make a plan, create and test a prototype(s), and improve it until a satisfactory solution is achieved. The process is cyclical and may begin at, and return to, any step.

After this lesson, students should be able to:

  • Define engineering and identify different engineering disciplines/fields.
  • Define design and provide examples.
  • Identify the different steps in the design cycle and apply it to an example.

Educational Standards Each TeachEngineering lesson or activity is correlated to one or more K-12 science, technology, engineering or math (STEM) educational standards. All 100,000+ K-12 STEM standards covered in TeachEngineering are collected, maintained and packaged by the Achievement Standards Network (ASN) , a project of D2L (www.achievementstandards.org). In the ASN, standards are hierarchically structured: first by source; e.g. , by state; within source by type; e.g. , science or mathematics; within type by subtype, then by grade, etc .

Ngss: next generation science standards - science, international technology and engineering educators association - technology.

View aligned curriculum

Do you agree with this alignment? Thanks for your feedback!

State Standards

Missouri - science.

Humans have designed the many objects you see around you—-the classroom and school, your house, the refrigerator, bicycle, cell phones and computers you use, roads and cars—almost everything that doesn't occur naturally! How do engineers go about designing all these varied items? Indeed, what is engineering? And what is design?

(Show students the What Is Engineering? video )

Today we will look at the various fields of engineering, and then learn about the design cycle. Let's get started.

(Continue by showing the presentation and delivering the content in the Lesson Background section.)

Lesson Background and Concepts for Teachers

This first lesson in the unit introduces students to engineering and design, which prepares them for the unit's subsequent design challenges that use LEGO® MINDSTORMS® taskbots.

Be ready to show students the 19-slide What Is Engineering? What Is Design? Presentation , a Microsoft ® PowerPoint ® file, to teach the lesson. Have ready a computer/projector with Internet access to also show students an online vide and a website. In advance, make copies of the Engineering & Design Pre/Post Quiz (two per student), provided both as attachments and slides, and the What Is Engineering? What Is Design? Worksheet (one per student).

What Is Engineering? What Is Design? Presentation Outline (slides 1-19)

  • Administer the pre-quiz by handing out paper copies; the quiz is also on slide 2 . The answers are provided for the teacher on slide 3 for discussion after students have completed the quiz.
  • ( slide 4 ) Introduce students to the "big" challenges being presently considered by engineers, including a list of 14 "grand challenges for engineers of the 21st century," listed on slide 5 .
  • ( slide 6 ) Define engineering, and then inform students that many types or "fields" of engineering exist. Show them the excellent, 4:17-minute "What Is Engineering?" video (link on slide 6 and in the Additional Multimedia Support section).
  • ( slides 7-10 ) Take students through the various types of engineering disciplines via the American Society for Engineering Education website. Click on the interactive flashcards on the ASEE's Engineering—Go for It! (eGFI) web page to explore different disciplines. Then read through 23 engineering discipline examples presented on three slides.
  • ( slide 11 ) Define the broad concept of design as "creating something that does not exist." Point out that design is not limited to engineering, for example you could conceptually "design a story."
  • Introduce the engineering design process using the ASEE definition and the six steps that are presented in the cyclical graphic on slide 12 . The steps include 1) state the problem, 2) generate ideas, 3) choose the best solution, 4) create a prototype or object, 5) test, evaluate and improve it, 6) present the results and final solution. These steps are repeated (iterated) as often as necessary until a good solution is achieved. Sometimes the design process is called the "design cycle" or "design loop."
  • An alternate but equivalent design cycle is provided on slide 13 . In this description of the design process, the steps are: 1) ask/concept, 2) imagine/preliminary designs, 3) plan/definitive design, 4) create, and 5) improve/iterate. Read the questions under each step, which helps students understand what to think about and do at each stage.
  • If time permits, have students conduct some of the 20 Engineering is Elementary engineering design units developed for elementary students, some of which are listed on slide 14 (see the source URL in the Additional Multimedia Section). At a minimum, review the academic subjects, design challenges and engineering types on the slide to show students examples of the range of engineering challenges that exist, even for K-12 students. Then make the point that the concept of design is applicable to life problems in general, and inform students that they will be given a non-engineering design challenge next—to design a picnic—as described on the next slide.
  • ( slide 15 ) Introduce the design challenge: To design a picnic for your friends. Provide each student with a worksheet. Give students 15 minutes to individually come up with their ideas for each of the steps of the design cycle (on slide 13 ). A list of example questions for students to answer as they develop their picnic designs are provided for the teacher on slide 16 .
  • After 15 minutes, assemble students as a class and discuss the picnic design challenge, especially focusing on what they learned and issues encountered.
  • Administer the post-quiz by handing out paper copies; the quiz is also on slide 17 and is exactly the same as the pre-quiz. The answers are provided on slide 18 . Vocabulary terms and definitions are provided on slide 19 . Next, conduct the associated activity Maze Challenge where students are introduced to the logic for solving a maze. 
  • Maze Challenge - For their first design challenge of the unit, students are introduced to the logic for solving a maze. They observe a blindfolded student volunteer being guided through a classroom maze by the simple verbal instructions of another student. Then student groups apply that logic to program LEGO robots to navigate through a maze, first with no sensors, and then with sensors.

design: Loosely defined, the art of creating something that does not exist.

engineering: The use of science and mathematics to solve problems to improve the world around us.

engineering design process: A series of steps used by engineering teams to guide them as they develop new solutions, products or systems. The process is cyclical and may begin at, and return to, any step.

Pre-Lesson Assessment

Pre-Quiz: Before starting the lesson, administer the two-question Engineering & Design Pre/Post Quiz by handing out paper copies (also on slide 2). Students' answers reveal their base knowledge about engineering and design. Example answers are provided on the Engineering & Design Pre/Post Quiz Answer Key (and slide 3). Administer the same quiz at lesson end.

Post-Introduction Assessment

Learning about Engineering and Design: Throughout the presentation, observe students and ask questions about the content to assess their engagement and level of understanding. If computers are available for each student or small student groups, pause on slide 7 and let students explore the interactive engineering discipline flashcards on the ASEE's eGFI website (link in Additional Multimedia Support section). Ask students to explain what they learned about at least one specific field of engineering.

Picnic Design Worksheet: Have students complete the What Is Engineering? What Is Design? Worksheet by explaining how they would follow all the engineering design process steps to design a picnic for their friends. This exercise assesses students' comprehension of the design process, provides them with practice in thinking through all the design process steps, and connects the engineering design process to every day design problems. Refer to the Worksheet Example Answers Outline for how students might do this.

Lesson Summary Assessment

Post-Quiz: At lesson end, administer the Engineering & Design Pre/Post Quiz again by handing out paper copies (also on slide 16). Compare students' answers to their pre-quiz answers to assess how well they learned the concepts during the course of the lesson. Expect to see different and more-varied post-quiz answers. Example answers are provided on the Engineering & Design Pre/Post Quiz Answer Key (and slide 17).

During the lesson presentation, show students the University of Newcastle's excellent 4:17-minute video, "What Is Engineering?" at https://www.youtube.com/watch?v=bipTWWHya8A .

During the lesson presentation, let students explore the interactive engineering discipline flashcards on the American Society for Engineering Education's "Engineering—Go for It!" website at http://www.egfi-k12.org/# .

Consider downloading and conducting some of the 20 free engineering design units for elementary students from the Museum of Science, Boston's excellent "Engineering is Elementary" website at http://www.eie.org/eie-curriculum/curriculum-units. In the presentation, a placeholder at slide 14 indicates a good point to conduct them in class, as time permits.

In advance of teaching this lesson, review the reasons why teaching K-12 engineering in your classroom is valuable for your young students at the "Why K-12 Engineering?" web page at https://www.teachengineering.org/whyk12engr.php.

See good resources about engineering careers at the Discover Engineering website at http://www.discovere.org/discover-engineering/engineering-careers.

engineering design and presentation 1

Students are introduced to an important engineering element—the gear. Different types of gears are used in many engineering devices, including wind-up toys, bicycles, cars and non-digital clocks. Students learn about various types of gears and how they work in machines.

preview of 'What Are Gears and What Do They Do?' Lesson

Students gain a rigorous background in the primary human "sensors," as preparation for comparing them to some electronic equivalents in the associated activity. Students learn the concept of "stimulus-sensor-coordinator-effector-response" to describe the human and electronic sensory processes.

preview of 'What Is a Sensor? ' Lesson

eGFI (Engineering—Go for It!). American Society for Engineering Education. (A multitude of K-12 teacher and student STEM resources) http://www.egfi-k12.org/#

"Engineering." Last updated December 2014. Wikipedia, The Free Encyclopedia. Accessed December 2013.http://en.wikipedia.org/wiki/Engineering

Introduction to the Grand Challenges for Engineering. Last modified June 30, 2008. National Academy of Engineering of the National Academies. Accessed December 2013. (The NAE has identified 14 grand challenges for engineering in the 21st century that fall under four broad realms of human concern.) http://www.engineeringchallenges.org/cms/8996/9221.aspx

Contributors

Supporting program, acknowledgements.

This curriculum was developed under National Science Foundation GK-12 grant no. DGE 0440524. However, these contents do not necessarily represent the policies of the National Science Foundation, and you should not assume endorsement by the federal government.

Last modified: March 1, 2020

eCornell logo

Outside USA: +1‑607‑330‑3200

Presentation Design and Delivery Cornell Certificate Program

Overview and courses.

Knowledge is power but it’s only half the battle. Sharing knowledge — that is, effectively communicating complex concepts to your audience — is the real strength.

This certificate program is designed to help you design, build, and deliver impactful in-person and virtual presentations to an array of internal and external audiences. The courses will provide you with an opportunity to examine, reevaluate, and collect rich insights into best practices for business, technical, and scientific presentations. Throughout this program, you will reevaluate current and past presentation practices that do not achieve the intended goals in order to help you refine your ability to deliver an effective message. You will practice techniques that can be adapted to meet specific communication needs including sharing highly technical information. Most importantly, you will have many opportunities to apply and experiment with the course concepts in your work.

You will be required to purchase Traci Nathans-Kelly’s book “Slide Rules” to complete your coursework. For the best experience in this program, it is strongly recommended to take these courses in the order that they appear.

Course list

  • Redesigning Slides for Impact

As a person working in a technical field, you most likely have to give talks or presentations to different audiences, some of whom will be non-experts or decision makers outside your sphere of expertise. In this course, you will look at your own current practices for giving talks as a technical expert and establish a set of action items for improvement. You will look closely at your old habits and establish new ways to design, build, and deliver effective in-person and virtual presentations for an array of internal and external audiences. You will also examine, reevaluate, and apply best practices for engineering, technical, and scientific presentations, and explore current and past presentation practices that do not achieve the intended goals and results. This examination will help you refine your ability to deliver an effective message.

Specifically, you will perform an assessment of presentation techniques, both personal and at your workplace. From that starting point, you can reengineer your presentations to meet specific technical communication needs. Most importantly, you will have an opportunity to discover and articulate your organization's presentation culture, identify areas for improvement in your own slide design and presentation skills, set goals for leveraging effective new presentation habits, and formulate a detailed action plan for improvement. Throughout this course, you will read various selections from Dr. Traci Nathans-Kelly's book “Slide Rules,” which contains helpful insights and examples that you can apply in your own presentations.

Furthermore, you will prepare for a specific work-related talk and define the needs of co-presenters, audience members, subject matter experts, and other stakeholders.

  • Engaging Presentation Techniques

Since the advent of presentation software like PowerPoint, presenters have been led astray by the design of slide templates. The software applications were originally created to help presenters outline their talks, but the slideware's design did not account for the needs of audiences nor factor in cognitive research. As a consequence, the templates have ingrained poor presentation habits that often confuse and disengage the people who are meant to benefit from these talks.

In this course you will have an opportunity to begin challenging the norm and break this cycle of "slide deck drudgery." By replacing old presentation habits with new best practices that you gain from this course, you can shift your focus to the needs and interests of your audience, and you can begin to use your slides to communicate your ideas more clearly and effectively. You will explore new techniques that will help you to improve the flow of your talk and keep your audience focused on your main ideas. You will then study effective presentation design and development practices as you read various selections from Dr. Traci Nathans-Kelly's book “Slide Rules,” which contains valuable insights and examples that you can apply in your own presentations.

You are required to have completed the following course or have equivalent experience before taking this course:

  • Designing Slides for Live and Legacy Use

When giving a presentation, you want to ensure you communicate all of your critical ideas while you have your audience's attention. There are more effective ways of doing so beyond the standard large amounts of text and bullet points.

In this course, you will have the opportunity to rethink the way you design your presentations and slides. You will discover that there are straightforward ways to use your slide decks to serve two purposes: support your technical and business presentations while making your slide decks reusable and valuable resources inside your organization. You will then examine the life cycle of your presentations and begin to document who uses your slides, when they are used, and what clearances are needed to share and use them. You will also consider legal issues or proprietary concerns that may exist. Finally, you will start to build a process to help you protect proprietary information before you share it with external parties. As part of your study, you will review various selections from Dr. Traci Nathans-Kelly's book “Slide Rules,” which provides helpful insights and enlightening examples that you can apply in your own presentations.

  • Strategizing for Audiences With Different Expertise

Your work in a technical field likely means that you periodically interact with colleagues, customers, suppliers, and other stakeholders who live in a different part of the world, speak a primary language different from your own, or have expertise in a different or non-technical field.

As a technical expert, your ability to anticipate the needs of audiences from diverse backgrounds and communicate effectively with them is essential.

In this course, you will have an opportunity to explore how you can prepare to meet the needs of audiences with differing backgrounds, primary languages, and levels of expertise, and even varying degrees of receptivity to your message. You will examine principles of persuasion and consider how and when to apply them both effectively and ethically. As part of your studies, you will also review pertinent selections from Dr. Traci Nathans-Kelly's book “Slide Rules,” and you will look at how you can prepare for the unexpected in your talks and maintain your composure when disruptions occur.

By the end of this course, you will have gained techniques and insights that you can apply as you prepare and develop presentations for a wide range of audiences with varying needs and interests.

  • Projecting Expertise and Confidence During Presentations

Effective communication skills are the hallmark of a professional no matter what the profession. In this course, you will begin to parse the ways in which you present yourself to others as a technical expert. In any presentation or talk that you give, whether face to face or online, you want to project expertise, confidence, and professionalism. The idea of professionalism, however, can vary. Everyone expects professionalism, but the definition and perception of professionalism differs greatly among individuals, organizations, nations, and cultures.

In this course, you will delve into the concept of professionalism in presentations and explore how it varies depending upon the context, the participants, and their expectations.

You will study effective practices for designing, developing, and delivering professional-grade online meetings and team presentations. Additionally, you will have an opportunity to examine the importance of your body language, eye contact, and voice in projecting confidence in your talks, regardless of the setting or delivery medium. You will then record a talk and take an inventory of your expert presence in the video. You will also investigate the nuances and complexities of developing and delivering team presentations. In the final part of the course, you will complete the process of preparing to deliver a professional-level team talk.

Constructing High-Impact Content for Global Delivery

Thanks to ongoing advances in communication technologies, you can collaborate in real time with colleagues, customers, suppliers, investors, and other stakeholders around the world. That reality presents both exciting opportunities and potential challenges. You can share ideas and receive information with great ease, but your message could encounter cultural and language barriers as you communicate with diverse audiences.

In this course, you will explore effective ways to deliver high-impact content that meets the needs of multinational audiences in live, online, and face-to-face presentations. Using practical insights studied in this course, you will strategize and prepare for high-impact presentations in formal settings. You will scrutinize how to design and adapt your slides and delivery techniques to meet the needs of international audiences speaking multiple languages. You will also see how you can leverage your slide presentations to create custom videos that address the needs of your target audience.

How It Works

  • View slide #1
  • View slide #2
  • View slide #3
  • View slide #4
  • View slide #5
  • View slide #6
  • View slide #7
  • View slide #8
  • View slide #9

Faculty Author

Traci Nathans-Kelly

  • Certificates Authored

Traci Nathans-Kelly currently teaches for Cornell University’s College of Engineering, with deep experience in online modalities for higher education. She has a particular interest in social justice and techquity issues. Dr. Nathans-Kelly interacts daily to help engineers and pre-professional engineers hone their technical messaging, whether it be via presentations, on paper, in meetings and teams, or through online channels.

Dr. Nathans-Kelly has worked with practicing professional engineers, technical experts, scientists, and related field experts for over 20 years, helping them to strengthen their abilities to become impactful contributors in their organizations. She is very active in IEEE, co-authoring the “English for Technical Professionals” online course, and works with the IEEE Continuing Education Committee, the Educational Activities Committee, and the IEEE Teaching Excellence Editorial Board.

Presentation Design and Delivery

Key course takeaways.

  • Create slide decks that support your live presentations to your target audience and act as a secure knowledge/information repository for stakeholders after your talk
  • Identify shortcomings in your presentation skills and formulate a plan for improvement
  • Replace old presentation habits with new best practices, shifting your focus to the needs and interests of your audience
  • Engage with audiences that have differing expertise when presenting
  • Strengthen your delivery methods and techniques
  • Modify and deliver presentations appropriate for a multinational audience

engineering design and presentation 1

Download a Brochure

engineering design and presentation 1

What You'll Earn

  • Presentation Design and Delivery Certificate from Cornell College of Engineering
  • 60 Professional Development Hours (6 CEUs)

Watch the Video

Who should enroll.

  • Business leaders
  • Technology professionals
  • Entrepreneurs
  • Consultants
  • Anyone interested in effectively conveying ideas to a professional audience

engineering design and presentation 1

Basic Engineering Design

Present the solution, welcome to presenting the solution.

Stacks Image 41

© 2017 Denise Wilson (contact us by email at denisew (at) uw.edu)

Browse Course Material

Course info, instructors.

  • Prof. Daniel Frey
  • Prof. David Gossard

Departments

  • Mechanical Engineering

As Taught In

  • Robotics and Control Systems
  • Mechanical Design

Learning Resource Types

Design and manufacturing i, design handbook: engineering drawing and sketching.

To see an animated version of this tutorial, please see the Drawing and Drafting section in MIT’s Engineering Design Instructional Computer System. (EDICS)

Drawing Handout Index

Isometric drawing.

Orthographic or Multiview Drawings

Dimensioning

Drawing tools.

Assembly Drawings

Cross-Sectional Views

Half-sections.

Sections of Objects with Holes, Ribs, etc.

More Dimensioning

Where to Put Dimensions

Introduction

One of the best ways to communicate one’s ideas is through some form of picture or drawing. This is especially true for the engineer. The purpose of this guide is to give you the basics of engineering sketching and drawing.

We will treat “sketching” and “drawing” as one. “Sketching” generally means freehand drawing. “Drawing” usually means using drawing instruments, from compasses to computers to bring precision to the drawings.

This is just an introduction. Don’t worry about understanding every detail right now - just get a general feel for the language of graphics.

We hope you like the object in Figure 1, because you’ll be seeing a lot of it. Before we get started on any technical drawings, let’s get a good look at this strange block from several angles.

engineering design and presentation 1

Figure 1 - A Machined Block.

The representation of the object in figure 2 is called an isometric drawing. This is one of a family of three-dimensional views called pictorial drawings. In an isometric drawing, the object’s vertical lines are drawn vertically, and the horizontal lines in the width and depth planes are shown at 30 degrees to the horizontal. When drawn under these guidelines, the lines parallel to these three axes are at their true (scale) lengths. Lines that are not parallel to these axes will not be of their true length.

engineering design and presentation 1

Figure 2 - An Isometric Drawing.

Any engineering drawing should show everything: a complete understanding of the object should be possible from the drawing. If the isometric drawing can show all details and all dimensions on one drawing, it is ideal. One can pack a great deal of information into an isometric drawing. However, if the object in figure 2 had a hole on the back side, it would not be visible using a single isometric drawing. In order to get a more complete view of the object, an orthographic projection may be used.

Orthographic or Multiview Drawing

Imagine that you have an object suspended by transparent threads inside a glass box, as in figure 3.

engineering design and presentation 1

Figure 3 - The block suspended in a glass box.

Then draw the object on each of three faces as seen from that direction. Unfold the box (figure 4) and you have the three views. We call this an “orthographic” or “multiview” drawing.

engineering design and presentation 1

Figure 4 - The creation of an orthographic multiview drawing.

engineering design and presentation 1

Figure 5 - A multiview drawing and its explanation.

Which views should one choose for a multiview drawing? The views that reveal every detail about the object. Three views are not always necessary; we need only as many views as are required to describe the object fully. For example, some objects need only two views, while others need four. The circular object in figure 6 requires only two views.

engineering design and presentation 1

Figure 6 - An object needing only two orthogonal views.

engineering design and presentation 1

Figure 7 - An isometric view with dimensions.

We have “dimensioned” the object in the isometric drawing in figure 7. As a general guideline to dimensioning, try to think that you would make an object and dimension it in the most useful way. Put in exactly as many dimensions as are necessary for the craftsperson to make it -no more, no less. Do not put in redundant dimensions. Not only will these clutter the drawing, but if “tolerances” or accuracy levels have been included, the redundant dimensions often lead to conflicts when the tolerance allowances can be added in different ways.

Repeatedly measuring from one point to another will lead to inaccuracies. It is often better to measure from one end to various points. This gives the dimensions a reference standard. It is helpful to choose the placement of the dimension in the order in which a machinist would create the part. This convention may take some experience.

There are many times when the interior details of an object cannot be seen from the outside (figure 8).

engineering design and presentation 1

Figure 8 - An isometric drawing that does not show all details.

We can get around this by pretending to cut the object on a plane and showing the “sectional view”. The sectional view is applicable to objects like engine blocks, where the interior details are intricate and would be very difficult to understand through the use of “hidden” lines (hidden lines are, by convention, dotted) on an orthographic or isometric drawing.

Imagine slicing the object in the middle (figure 9):

engineering design and presentation 1

Figure 9 - “Sectioning” an object.

engineering design and presentation 1

Figure 10 - Sectioning the object in figure 8.

Take away the front half (figure 10) and what you have is a full section view (figure 11).

engineering design and presentation 1

Figure 11 - Sectioned isometric and orthogonal views.

The cross-section looks like figure 11 when it is viewed from straight ahead.

To prepare a drawing, one can use manual drafting instruments (figure 12) or computer-aided drafting or design, or CAD. The basic drawing standards and conventions are the same regardless of what design tool you use to make the drawings. In learning drafting, we will approach it from the perspective of manual drafting. If the drawing is made without either instruments or CAD, it is called a freehand sketch.

engineering design and presentation 1

Figure 12 - Drawing Tools.

"Assembly" Drawings

An isometric view of an “assembled” pillow-block bearing system is shown in figure 13. It corresponds closely to what you actually see when viewing the object from a particular angle. We cannot tell what the inside of the part looks like from this view.

We can also show isometric views of the pillow-block being taken apart or “disassembled” (figure 14). This allows you to see the inner components of the bearing system. Isometric drawings can show overall arrangement clearly, but not the details and the dimensions.

engineering design and presentation 1

Figure 13 - Pillow-block (Freehand sketch).

engineering design and presentation 1

Figure 14 - Disassembled Pillow-block.

A cross-sectional view portrays a cut-away portion of the object and is another way to show hidden components in a device.

Imagine a plane that cuts vertically through the center of the pillow block as shown in figure 15. Then imagine removing the material from the front of this plane, as shown in figure 16.

engineering design and presentation 1

Figure 15 - Pillow Block.

engineering design and presentation 1

Figure 16 - Pillow Block.

This is how the remaining rear section would look. Diagonal lines (cross-hatches) show regions where materials have been cut by the cutting plane.

engineering design and presentation 1

Figure 17 - Section “A-A”.

This cross-sectional view (section A-A, figure 17), one that is orthogonal to the viewing direction, shows the relationships of lengths and diameters better. These drawings are easier to make than isometric drawings. Seasoned engineers can interpret orthogonal drawings without needing an isometric drawing, but this takes a bit of practice.

The top “outside” view of the bearing is shown in figure 18. It is an orthogonal (perpendicular) projection. Notice the direction of the arrows for the “A-A” cutting plane.

engineering design and presentation 1

Figure 18 - The top “outside” view of the bearing.

A half-section is a view of an object showing one-half of the view in section, as in figure 19 and 20.

engineering design and presentation 1

Figure 19 - Full and sectioned isometric views.

engineering design and presentation 1

Figure 20 - Front view and half section.

The diagonal lines on the section drawing are used to indicate the area that has been theoretically cut. These lines are called section lining or cross-hatching . The lines are thin and are usually drawn at a 45-degree angle to the major outline of the object. The spacing between lines should be uniform.

A second, rarer, use of cross-hatching is to indicate the material of the object. One form of cross-hatching may be used for cast iron, another for bronze, and so forth. More usually, the type of material is indicated elsewhere on the drawing, making the use of different types of cross-hatching unnecessary.

engineering design and presentation 1

Figure 21 - Half section without hidden lines.

Usually hidden (dotted) lines are not used on the cross-section unless they are needed for dimensioning purposes. Also, some hidden lines on the non-sectioned part of the drawings are not needed (figure 12) since they become redundant information and may clutter the drawing.

Sectioning Objects with Holes, Ribs, Etc.

The cross-section on the right of figure 22 is technically correct. However, the convention in a drawing is to show the view on the left as the preferred method for sectioning this type of object.

engineering design and presentation 1

Figure 22 - Cross section.

The purpose of dimensioning is to provide a clear and complete description of an object. A complete set of dimensions will permit only one interpretation needed to construct the part. Dimensioning should follow these guidelines.

  • Accuracy: correct values must be given.
  • Clearness: dimensions must be placed in appropriate positions.
  • Completeness: nothing must be left out, and nothing duplicated.
  • Readability: the appropriate line quality must be used for legibility.

The Basics: Definitions and Dimensions

The dimension line is a thin line, broken in the middle to allow the placement of the dimension value, with arrowheads at each end (figure 23).

engineering design and presentation 1

Figure 23 - Dimensioned Drawing.

An arrowhead is approximately 3 mm long and 1 mm wide. That is, the length is roughly three times the width. An extension line extends a line on the object to the dimension line. The first dimension line should be approximately 12 mm (0.6 in) from the object. Extension lines begin 1.5 mm from the object and extend 3 mm from the last dimension line.

A leader is a thin line used to connect a dimension with a particular area (figure 24).

engineering design and presentation 1

Figure 24 - Example drawing with a leader.

A leader may also be used to indicate a note or comment about a specific area. When there is limited space, a heavy black dot may be substituted for the arrows, as in figure 23. Also in this drawing, two holes are identical, allowing the “2x” notation to be used and the dimension to point to only one of the circles.

Where To Put Dimensions

The dimensions should be placed on the face that describes the feature most clearly. Examples of appropriate and inappropriate placing of dimensions are shown in figure 25.

engineering design and presentation 1

Figure 25 - Example of appropriate and inappropriate dimensioning.

In order to get the feel of what dimensioning is all about, we can start with a simple rectangular block. With this simple object, only three dimensions are needed to describe it completely (figure 26). There is little choice on where to put its dimensions.

engineering design and presentation 1

Figure 26 - Simple Object.

We have to make some choices when we dimension a block with a notch or cutout (figure 27). It is usually best to dimension from a common line or surface. This can be called the datum line of surface. This eliminates the addition of measurement or machining inaccuracies that would come from “chain” or “series” dimensioning. Notice how the dimensions originate on the datum surfaces. We chose one datum surface in figure 27, and another in figure 28. As long as we are consistent, it makes no difference. (We are just showing the top view).

engineering design and presentation 1

Figure 27 - Surface datum example.

engineering design and presentation 1

Figure 28 - Surface datum example.

In figure 29 we have shown a hole that we have chosen to dimension on the left side of the object. The Ø stands for “diameter”.

engineering design and presentation 1

Figure 29 - Exampled of a dimensioned hole.

When the left side of the block is “radiuses” as in figure 30, we break our rule that we should not duplicate dimensions. The total length is known because the radius of the curve on the left side is given. Then, for clarity, we add the overall length of 60 and we note that it is a reference (REF) dimension. This means that it is not really required.

engineering design and presentation 1

Figure 30 - Example of a directly dimensioned hole.

Somewhere on the paper, usually the bottom, there should be placed information on what measuring system is being used (e.g. inches and millimeters) and also the scale of the drawing.

engineering design and presentation 1

Figure 31 - Example of a directly dimensioned hole.

This drawing is symmetric about the horizontal centerline. Centerlines (chain-dotted) are used for symmetric objects, and also for the center of circles and holes. We can dimension directly to the centerline, as in figure 31. In some cases this method can be clearer than just dimensioning between surfaces.

facebook

You are leaving MIT OpenCourseWare

The Ohio State University

  • BuckeyeLink
  • Search Ohio State

engineering design and presentation 1

Fundamentals of Engineering Design Highlights SP 2024

.cls-1{fill:#a91e22;}.cls-2{fill:#c2c2c2;} double-arrow spring 2024 showcase awards, engineering innovation, head to head competition.

  • engineering.und.edu
  • All UND sites

CEM Expo 2024

The Virtual Expo consists of 3-5 minutes videos prepared by the participants that describe the details of their projects.

Virtual Expo Presentations

Once you have finished viewing the participant videos, please participate in our Best in Class voting for each category. The winning projects will receive a scholarship. 

The projects have been broken into two categories below.

Prototype Projects

Process/research projects, prototype projects ( open this section).

The CEM Design Expo Competition defines a Prototype Project as a project that has a physical build. This can be in the form of an actual prototype product or as a proof of concept of a certain aspect of a product. Although simulations are typically used in design, physical testing is typically done to ensure the final product’s functionality.

Advanced Rocketry Club

Aggregation of seeded hepatocyte stem cells, agritech north 3d printable beehives, argo electric, cardio control, converting one way pairs to two way streets, energy harvesting from human motion, fsae - admin, fsae - chassis, fsae - drivetrain, fsae - suspension, grand forks wastewater fine screens building foundation, healthcare records management, hess natural gas condensate removal, k7 mech runner, marvin glass mull reinforcement fin, metal 3d printing, preventing condensation, smart hydrocephalus shunt, solar photovoltaic dual axis maximum power tracking system, supply chain finance, underpass and railroad bridge, wastewater treatment plant, process/research projects ( open this section).

The CEM Design Expo Competition defines a Process/Research Project as a project that is primarily based in at least one of the following: Software Simulation, Research & Development of Theoretical Concepts and/or Materials, or Process Improvement. Although physical test apparatuses can be built and used as part of these projects, they are not the focus of the goals and criteria for success.

AgriTech North HVAC

Hydrological and geomechanical modeling of deep sedimentary rock, lake beverage delivery device, materials research on-campus, materials research online, sanitary sewer for und east campus, ten bus electric power protection system, urban subdivision design, wastewater treatment for sugarbeet processing, vote for best in class.

Voting closes at 2 p.m. on Tuesday, May 2, 2023.

Vote for Prototype Category

Vote for Process/Research Category

By clicking any link on this page you are giving your consent for us to set cookies, Privacy Information .

InfoQ Software Architects' Newsletter

A monthly overview of things you need to know as an architect or aspiring architects.

View an example

We protect your privacy.

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

  • English edition
  • Chinese edition
  • Japanese edition
  • French edition

Back to login

Login with:

Don't have an infoq account, helpful links.

  • About InfoQ
  • InfoQ Editors
  • Write for InfoQ
  • About C4Media

Choose your language

engineering design and presentation 1

Discover transformative insights to level up your software development decisions. Use code LIMITEDOFFERIDSBOSTON24 for an exclusive offer.

engineering design and presentation 1

Get practical advice from senior developers to navigate your current dev challenges. Use code LIMITEDOFFERIDSMUNICH24 for an exclusive offer.

engineering design and presentation 1

Level up your software skills by uncovering the emerging trends you should focus on. Register now.

engineering design and presentation 1

Your monthly guide to all the topics, technologies and techniques that every professional needs to know about. Subscribe for free.

InfoQ Homepage Presentations Sleeping at Scale - Delivering 10k Timers per Second per Node with Rust, Tokio, Kafka, and Scylla

Sleeping at Scale - Delivering 10k Timers per Second per Node with Rust, Tokio, Kafka, and Scylla

Lily Mara and Hunter Laine walk through the design of a system, its performance characteristics, and how they scaled it.

Lily Mara is Engineering Manager @OneSignal, Author of "Refactoring to Rust". Hunter Laine is Software Engineer @OneSignal.

About the conference

Software is changing the world. QCon empowers software development by facilitating the spread of knowledge and innovation in the developer community. A practitioner-driven conference, QCon is designed for technical team leads, architects, engineering directors, and project managers who influence innovation in their teams.

Mara: My name is Lily Mara. I'm an engineering manager at a software company here in the Bay Area called OneSignal. We are a customer messaging company. We help millions of application developers and marketers connect with billions of users. We send around 13 billion push notifications, emails, in-app messages, and SMS every single day. I started using Rust professionally in 2016. I started using it as my main daily programming language professionally in 2019, when I started at OneSignal. I'm the author of the book "Refactoring to Rust" that is available now in early access at manning.com.

What are we going to be talking about? We're going to be talking about how we built this scalable, high throughput timer system at OneSignal. We're going to be talking about the motivation behind building it, in the first place. The architecture of the system itself. How the system performed. How we scaled it up, and some future work that we are maybe thinking about doing in the system.

Building a Scalable, High Throughput Timer System (OneSignal)

Let's jump back in time a little bit. It's 2019, I've just started at OneSignal. I've just moved to sunny California from horrible, not sunny Ohio. Everybody in OneSignal, everybody in the customer messaging sphere is talking about the concept of journey builders. If you're not a content marketer, you might not know what a journey builder is, so just a quick crash course. This is a no-code system that allows marketers to build out customer messaging flows. This is a flowchart that's going to be applied at a per user level. This is very similar to what a marketer might put together themselves. Over here on the left, every user is going to start over here. There's, immediately going to be dumped into a decision node. We allow our customers to store arbitrary key-value pairs at the user level. In this case, a customer might be storing what's your favorite color as one of those key-value pairs. We'll make a decision based on that. Let's say for the sake of argument that this user's favorite color was blue, we're going to send that user a push notification that says, "There's a 20% off sale on blue shirts, we know how much you love blue. Aren't you so excited about the blue shirt sale?" Then the next thing that's going to happen is we are going to wait 24 hours. We're going to do nothing for a day. This was the missing piece. We thought we understood how to build the event system, we understood how to build the node walking tree, but we didn't have a primitive in place in our network for scheduling, for storing a bunch of timers and expiring them performantly. This is what we're going to be building today. After we do that 24 hour wait, we are going to have another decision node. We're going to say, did that particular user click on that particular push notification we sent them? If they did, we will say, "Mission accomplished. Good job, journey. You did the engagement." If they didn't, we'll send them an SMS that has more or less the same message. You might want to do this because sending an SMS has a monetary cost associated with it. Carriers will bill you for sending SMS. Twilio will bill you for sending SMS. Push notifications have basically zero marginal cost. If you want to use SMS, you might want to use it as a second-order messaging system to get in contact with your customers. That's a journey builder. That's what we're going to try to enable the construction of today.

What are the requirements on this timer system that we're going to build? We want to be able to store billions of concurrent timers because we want to be able to support the billions of user records that we already have. We want to be able to expire those timers performantly. We want to minimize data loss because, of course, we don't want to be dropping timers on the floor. We don't want people to get stuck in particular nodes of their journeys. We want to integrate well with the rest of the data systems that we have at OneSignal. We're a relatively small company. We don't have the resources to have a team for every particular data system that's out there. We don't want to adopt 50 completely different open source data systems. Let's get in the headspace a little bit. We realized very crucially that if we wanted to build a timer, we had to think like a timer. We took the project and we set it down for a year, and we didn't think about it that hard. We prioritized other initiatives.

Jumping forward once again, we're in the beginning of 2021. We have the resources to start investigating this project. We have to make a decision, are we going to build something completely from scratch ourselves, or are we going to buy an off-the-shelf system? Is there an open source timer, an open source scheduling system that we can just use? The first place we looked were generic open source queuing systems like Sidekiq and RabbitMQ. We already operate Sidekiq very heavily at OneSignal. It's the core of our delivery API, and a lot of our lower throughput scheduling jobs. These general-purpose queuing systems, they had a lot of features that we didn't really need, we didn't want to pay to have to operate. They were lacking in the area that was the most important to us, and that was performance. We didn't think that these systems were going to scale up to the throughput that we were expecting this timer system to have. The published performance numbers for things like RabbitMQ just seemed orders of magnitude off from what we wanted out of this system. We knew from experience what Sidekiq was like to scale, and we didn't think that was going to be good enough. Based on the published numbers, we thought that other things weren't going to be good enough. We opted to build something for ourselves, we're going all the way.

Existing Systems (OneSignal)

Once again, let's look at these requirements. We want to be able to store tons of timers, expire them performantly, minimize data loss, and interoperate with the rest of our system. Let's talk about the rest of the systems. What is the prior art for system design at OneSignal? We have a lot of things written in Rust. We actually currently, but not at the time, had a policy around only using Rust for new systems. At the time, we were also spinning up new services in Go. We use Apache Kafka very heavily for our async messaging applications. We also use gRPC for all of our internal synchronous RPCs. Also, as a part of the larger journeys' initiative, we were going to be using Scylla, which is a C++ rewrite of Apache Cassandra.

Ins & Outs

Let's talk about the big blocks, how the data are flowing in and out of the system. Probably, sensibly, the input to the system is a timer. A timer is an expiry time, a time to end that, and a thing to do once it has ended an action. What are the actions? Initially, we came up with a pretty short list that is sending a message like a notification, email, SMS, in-app message, or it's adding a tag to a particular user. We realized that we might come up with more actions in the future so we didn't necessarily want to constrain ourselves to a fixed list. We also realized we might come up with actions that had absolutely nothing to do with journeys, absolutely nothing to do with messaging. That this timer system, this scheduler system has a broad range of applicability, and we wanted to leave the door open for us to take advantage of that. We imposed a new requirement on ourselves, we said we wanted this system to be generic. Given that this system is going to be generic, what is an action? What does it look like? How does it work? In addition to being generic, we wanted it to be simple. That meant constraining what an action is, even though it's flexible.

We didn't want to give people a whole templating engine or scripting library, or something like that. We wanted it to be pretty straightforward, you give us these bits, and we will ship them off when the time comes. Are we going to let people send HTTP requests with JSON payloads? All of our internal services use gRPC, so probably not that. Maybe they'll be gRPC requests then. Both of these systems suffer from the same, in our mind, critical flaw, in that these are both synchronous systems. We thought it was really important that the outputs of the timer system be themselves asynchronous. Why is that? As timers start to expire, if there's multiple systems that are being interfaced with, say notification delivery and adding key-value pairs. If one of those systems is down, or is timing out requests, we don't want, A, to have to design our own queuing independence layer in the timer system, or, B, have our request queues get filled up with requests for that one failing system, to the detriment of the other well behaving systems. We wanted the output of this to be asynchronous. We opted to use Apache Kafka, which as I mentioned, is already used very heavily at OneSignal. We already have a lot of in-house knowledge and expertise on how to operate and scale Kafka workloads. It gave us a general-purpose queuing system that was high performance. A really key benefit is it meant that the timer system was isolated from the performance of the end action system. What about these inputs? What about the timers themselves? Because all the timers are being written into the same place by us, we can own the latency of those writes, so this can be a synchronous gRPC call.

The interface, broadly speaking, looks like this. External customers make a gRPC request to the timer system. They're going to give us an expiry time, and they're going to give us an action, which is a Kafka topic, Kafka partition, and some bytes to write onto the Kafka stream. Then later on, when that timer expires, we're going to write that Kafka message to the place that the customer has specified. We'll delve into the magic box of the timer system as we go through this. Hopefully, later on, presumably at some point, the team that enqueue the timer will have a Kafka Consumer that picks up the message and acts on it. The really important thing here is the consumer picking up the message and acting on it is totally isolated from the timer system, dequeuing the message and shipping it across the wire. If a Kafka Consumer is down or not performant, that really has nothing to do with the timer system. It's not impacting us at all.

Let's delve into the internals of this a little bit. How are we going to store timers after they come across the gRPC interface? How are we going to expire timers to Kafka after they've been stored? What are the key health metrics of the system? Let's get into it. I'd first like to talk about the timer expiry process. We know we're going to be writing timers to Kafka. We know there's a gRPC service on the other side that has some storage medium attached to it for these timers. We want to try to build something that's relatively simple, relatively straightforward for pulling these things out of storage and expiring them to Kafka. How are we going to do this? We came up with this architecture as our first pass. We're still abstracting the storage away. We have our gRPC service, we've added a couple new endpoints to it. There's a get timers endpoint that takes in a timestamp, and it's going to serve us back all the timers that expire before this timestamp. Every minute, this new scheduler box over here, that's a scheduling service written in Rust, it's going to send a gRPC request up to our service. It's going to say, give me all the timers that expire before 10 minutes into the future. If it's currently 4:48, we're going to say, give me all the timers that expire before 4:58. It's going to take all those timers, write them into a pending area in memory, and have some in-memory timers. Then it's going to expire those out to Apache Kafka as those timers expire. Once they are expired and shipped off to Kafka, we are going to send a delete request up to the gRPC service to remove that particular timer from storage so that it's not served back down to the scheduler.

We viewed this as a relatively simple solution to the problem, because we thought that this timer system was going to be pretty tricky to implement in the first place. We were a bit incredulous when we came up with this solution. We weren't sure how we were going to represent the timers in memory. We weren't sure how we're going to avoid doubling-enqueuing. Once we just coded up a first pass, we realized that it was actually so much simpler and so much more performant than we thought it was going to be. We basically created an arena for these pending timer IDs in memory. We had an infinite loop with a 1-second period. We pulled all the timers from the gRPC interface, looped over them, and checked to see if they were known or not. If they were not known to the instance, we would spawn an asynchronous task using tokio. Use their built-in timer mechanism. When that timer expires, we would produce the Kafka events, delete the timer from the gRPC interface. Then there was a bit of additional synchronization code that was required to communicate this back to the main task so that we could remove that particular timer ID from the hash set. That was the only complicated piece here. The real service implementation is really not a whole lot more complicated than this. We were pretty impressed that it was quite so simple.

How does this thing actually perform? What do the numbers look like? Using the built-in default tokio async future spawning, and sleep_until functions, we tried to spawn a million timers, and measure both the latency and the memory utilization. We found that it took about 350 milliseconds to spawn a million timers. That ate about 600 megabytes of memory, which is a relatively high amount of memory for a million timers. It's about 96 bytes per timer, which seems a bit heavy. We decided that this was good enough performance metrics to go out with. We were not going to invest too heavily at this point in ultra-optimizing from here. What key performance metrics did we identify once we were ready to ship this thing? The first one was the number of pending timers in that hash set. The number of things that we are watching right now. This was really important for us when we started getting out of memory kills on this timer, because we had not put any backpressure into the system, so if there were too many timers expiring at say 4:00, 4:00 rolls around, you try to load those all into the scheduler. Scheduler falls down. Scheduler starts back up. It tries to load the timers again, and it keeps falling over. We use this metric to identify what's falling over at a million, let's tell it to not load any more than 600,000 into memory. The other one was a little bit less intuitive. It was the timestamp of the last timer that we expired to Kafka. We use this to measure the drift between the timer system and reality. If it's currently 4:00, and you just expired a timer for 3:00, that means your system is probably operating about an hour behind reality. You're going to have some customers who are maybe asking questions about why their messages are an hour late. This was the most important performance metric for the system. This is the one that we have alerting around. If things start to fall too far behind reality, we'll page an engineer and have them look into that.

The Storage Layer

Next, I'd like to talk about the storage layer for the system. Thinking about the requirements of this, we wanted to support a high write throughput. The goal that we had in mind was about 10,000 writes per second. From our experience operating Postgres, we knew that this was definitely possible to do with Postgres, but it was a big pain in the butt if you didn't have a lot of dedicated Postgres staff, and a lot of infrastructure dedicated to clustering in Postgres. We didn't really want to use Postgres for this. We wanted something that was going to be simple to scale, so that when we needed additional capacity, we could just throw it at the wall and have it stick. We wanted something that would be simple to maintain, so zero downtime upgrades were going to be really important to us. We knew that we were going to be making relatively simple queries that might serve back a bunch of results. What is a simple query? What is the kind of queries that we're going to be making? The scheduler is going to be doing queries that look like, give me all of the timers that are expiring in the next 10 minutes. That is not a very complicated query. It's not, give me all the timers that are expiring in the next 10 minutes for this particular customer, that are targeting these 10,000 users in these time zones, relatively straightforward queries. We didn't necessarily need all the querying, filtering power of something like Postgres or another relational database.

In the end, we picked Scylla. This was already something that we were spinning up as a part of the larger journeys project. Even though we didn't have existing in-house experience operating Scylla, we knew that we were going to be developing it as another business line item. One thing that we had to think about with adopting Scylla was that the data modeling approach for Scylla and Cassandra are very different from something like Postgres. We need to think pretty hard about how we're going to be writing these data to the tables and how we're going to be querying it afterwards. When you're doing data modeling in a relational database, it's a lot easier to just think about, what are the data and how do they relate to each other? You can, generally speaking, add any number of joins to a Postgres query, and then add any number of indices on the other side to make up for your poor data modeling. You don't really have this luxury with Scylla, or Cassandra. They use SSTables. They don't provide the ability to do joins. They really aren't much in the way of indices other than the tables themselves. Ahead of time, as we were writing the data to the database, we need to be thinking about how we're going to be querying it on the other side. The query we're going to be doing is fetch all timers about to expire.

What does about to expire mean in this sense? If we think about the basic elements that we just said were a part of a timer, it's got an expiry timestamp. It has a binary data blob. It has a Kafka topic and partition that the message is going to be written to. Most of the architecture work here was done by the Apache Cassandra team. My exposure to this ecosystem has all been through Scylla, so I'm going to attribute things to Scylla that were certainly done by people on the Apache Cassandra team. In Scylla, we have data that's distributed amongst a cluster of nodes. As you query the data in the nodes, generally speaking, each query, we want it to hit a single node. We don't want to be merging data together. We don't want to be searching across all the nodes for particular pieces of data. Generally speaking, we want to know ahead of time where a particular row is going to land in the cluster.

How do we do that? How do we distinguish where a row is going to go? There's a couple different layers of keys that exist on each row in Scylla, and we're going to use those. The primary key has two parts, which is like a relational database, we have a primary key on each row. The first part is the partitioning key, that's going to determine which node in the cluster a row is going to land on, and where on that node it's going to go. It's going to group the data into partitions that are shipped around as one unit. This is composed of one or more fields. There's also a clustering key that determines where in the partition each row is going to go. That's used for things like sort ordering. That's optional, but it also can have a variable number of fields in it. Generally speaking, the kinds of queries, the high performance read queries that we want to be doing, you need to include the partition key, an exact partition key in each read query that you're doing. You're not having a range of partition keys. You're not saying, give me everything. You need to provide, give me this partition key. The query we're performing is get all the timers about to expire. What does about to expire mean? It means we need to pre-bucket the data. We need to group our timers into buckets of timers that expire around the same time, so that we can query all those timers together.

We're going to be bucketing on 5-minute intervals. For example, a timer expiring at 4:48 p.m. and 30 seconds, we're going to bucket that down to 4:45. Everything between 4:45 and 4:50, those are going to land in the same bucket. We are still going to store the expiry time, but we're also going to have this bucket that's specifically going to be used for storage locality. We can't have the bucket alone be the primary key, because just like every other database that's out there, primary keys need to be unique in tables. If the 5-minute bucket was the sole primary key, you can only have one timer that existed per 5-minute bucket. That's not a very good data system. We're going to introduce a UUID field that's going to be on each row, and that's going to take the place of the clustering key. That's going to determine, again, where in the partition each row is going to land.

Our final table design looked like this. We had those same four fields that we talked about initially. We also introduced two new fields, this row, UUID fields, and the bucket fields, which is, again, the expiry timestamp rounded down to the nearest 5 minutes. You can see that on the primary key line down there, we have first the bucket field. That's the partitioning key. Second, we have the clustering key field, which is the UUID field. What do the queries look like that we're going to be doing on this table? We're going to be getting all the fields off of each timer row inside of each bucket, inside of this 5-minute bucket that starts at 4:45. The eagle-eyed among you might already be noticing a problem with this. If it's currently 4:48, and we get the timers that are in the bucket starting at 4:45. How are we going to do this 10-minute lookahead interval thing? How are we going to fetch the timers that start at 4:50 and 4:55? Because a 10-minute interval is necessarily going to span more than one, 5-minute data bucket. Further complicating things, this system is not necessarily always real time. It might be the case that this system is so far behind reality, which, in some cases, that might only be a couple seconds. It might be the case that there are still some existing timers that are falling into buckets that already ended. If it's 4:45 and 10 seconds, and you still have an existing timer that was supposed to expire at 4:44 and 59 seconds, you still have to be able to fetch that out of Scylla. Because maybe the scheduler is going to restart, and it's not going to be able to use the one that's floating around in memory.

How are we going to pull all the buckets and get the data? We can't just query the currently active bucket. We need to find out what buckets exist, which buckets that exist fall within our lookahead window. We need to query all of those for their timers. We introduced another table, a metadata table that was just going to hold every single bucket that we knew about. This is going to be partitioned just by its single field, the bucket timestamp. This was just going to give us access to query what buckets currently exist. Every time we insert data into our tables, we are going to do two different writes. We're going to store the timer itself. We're also going to do an insertion on this bucket table. Every insert in Scylla is actually an upsert. No matter how many millions of times we run this exact same query, it's just going to have one entry for each particular bucket because they all have the same primary key. What do our queries look like? We're first going to have to query every single bucket that exists in the database, literally every single one. That's going to come back into the memory of our gRPC service. We're going to say, of those buckets that exist, which ones fall into our lookahead window. That's going to be the four buckets from 4:40 to 4:45. We're going to query all the timers off of those. We're going to merge them into memory of the gRPC service, and then ship them down to the scheduler.

If we put this all together into one cohesive system view. On the external team side, we have a thing that creates timers, that's going to send a gRPC request across the wire to our service, that's going to store a timer in our Scylla database alongside a corresponding bucket. Then, every minute, our scheduler is going to call the get timers gRPC method, with a lookahead window. It's going to add the timers that fall into that window to its pending area in memory. When those in-memory timers expire, it's going to write them out to an Apache Kafka topic. Eventually, maybe there'll be a Kafka Consumer that picks that message up. This system, as I've described it, existed for about a year, maybe a-year-and-a-half without any major issues, modules that out of memory problem. We didn't have to do any major scaling operations. It didn't have any really big problems. We mostly just didn't think about it after it was out there and running. We were pretty happy with it. Eventually, we started to think about adding more users to our journeys' product. We started to think about using this timer system to support more use cases than just journeys. We realized that we would have to do some scaling work in this because what I've described has some poor scaling tendencies.

Jumping Forward, Q1 2023

Laine: My name is Hunter Laine. I've been an engineer on Lily's team at OneSignal for about two-and-a-half years. In a past life, I was a marketing operations manager in Prague.

We're going to take another leap forward in time to Q1 of this year. We have this effective timer service up and running pretty smoothly. It's capable of storing billions of concurrent timers and expiring them in a performant manner, while minimizing data loss, and easily integrating with the rest of our systems. It's essentially a set timeout function that's available across our entire infrastructure, without any use case-specific limitations. It sounds pretty good. We thought so too, so we decided it was time to actually start doing that integrating with the rest of our systems.

The Case for Scaling Up

We send about 13 billion notifications a day, so we wanted to use the timer service to ease a significant amount of load on our task queues. This could be useful for a myriad of things, from retrying requests on failures across multiple services, to scheduling future notifications, and many other areas we were already excited about. If we were going to use the timer service in these many critically important areas, we needed to ensure that it could handle a lot more timers reliably than it currently could. We needed to scale up. The original motivation for and use of the timer service was to enable these journey builders, no-code systems generally use as a marketing tool. These systems constitute a significant number of timers that we were storing and retrieving. However, when compared to the task of integrating with our delivery systems, it represented a relatively small scale of use. At the scale of use, we had opted for this, again, slightly more simplified architecture to avoid dealing with the more complex coordination required to make the timer service fully scalable. Specifically, when we talk about scaling issues, we will be focusing more on the scheduler portion.

Scaling the timer service vertically was no problem at all. We could and did add resources to both the gRPC service portion and the scheduler as needed. Scaling the gRPC service portion horizontally was also no trouble. We could easily add a pod or four to handle an increase in create, get, and delete requests from multiple clients. The slight hitch that we were now facing was that the scheduler was not quite so simple to scale horizontally. We'd not yet done the work to allow for multiple schedulers to run at the same time. See, each scheduler needs to ask the gRPC service for timers at some set interval. It does no one any good if each individual scheduler is asking for timers and getting all the same ones back. Then we're just duplicating all the work, instead of sharing the load. Plus, it certainly doesn't seem like a desirable feature to enqueue each message to Kafka multiple times as we see here. We needed to do a bit of a redesign to allow for multiple schedulers to share the task of scheduling and firing timers with each in charge of only a particular subset of the overall timers. How do we do that? If we wanted multiple schedulers to run in conjunction, we needed to find a way to group timers by more than just time, so that those schedulers could be responsible, each one, for requesting and retrieving only a particular group of timers.

First, we needed to make some adjustments to how our data was stored so the timers weren't stored just by the time that they were to be sent out, those 5-minute bucket intervals, but by some other grouping that different schedulers could retrieve from. We made some adjustments to our Scylla table schemas so that when a new timer is created, it is inserted into a bucket by both that time interval, and now a shard. While we were adjusting these schemas, we also actually decided to shrink that bucket interval from the 5 minutes we'd been using to 1-minute bucket intervals. This was because we were already noticing that our Scylla partitions were getting larger than we would like. We would like to keep our Scylla partitions in general relatively small, as this leads to more efficient and less resource intensive compaction. We determined which shard a timer belongs to by encoding its unique UUID to an integer within the range of the number of shards we have. We actually have our shards set to 1024, with timers pretty evenly distributed among them. Each scheduler instance is then responsible for an evenly distributed portion of those shards. We went to this granularity and this many shards, also in an effort to keep those Scylla partitions relatively small. This means we have a more efficient way to parse a far greater number of timers. This update also makes the bookkeeping of the buckets table much more efficient, and means that when querying for timers, we look much more particularly at a particular shard and time to retrieve from. We then just needed to adjust our get timers request so that when we do request those timers, we do it not just by time, as we were before, but in addition by that shard, so that we can get a particular subset of the overall timers.

We now have a system whereby timers are stored by both time and shard, and a way by which to retrieve those timers by both time and shard. We're there? Just one big problem. Each scheduler instance needs to have state so that it can reliably ask for the same subset of timers every time it asks. How does each scheduler know who it is? This was important because if a scheduler instance were to restart for any reason, it needed to start back up as the same scheduler so it could pull the same timers. If we have multiple instances pulling the same subset of timers, we're back at square one. If scheduler 2 were to restart for any reason, now thinking that it's scheduler 1, when we already have a scheduler 1 up and running and pulling timers for scheduler 1, we're again duplicating work and erroneously firing timers multiple times. Plus, even worse here, no one is looking after the shards assigned to scheduler 2.

In order to solve this, we deployed a new version of the scheduler as a stateful set in Kubernetes, which, among other things, gave us a stable unique name for each instance of the scheduler every time it started up, with each name ending in a zero-indexed value up to the number of replicas. Each scheduler could then take that value and calculate a range of shards that it's responsible for retrieving timers from. Importantly, this means that each shard of timers and therefore each individual timer will only ever be retrieved by one scheduler instance. We now have this system where we store timers by both time and shard, where we have retrieval requests that can get a subset of timers by both time and shard. Now, schedulers that have state and can therefore reliably request the same subset of timers every time they ask. We have achieved full scalability.

Performance Characteristics

With these changes made to the architecture of the timer service, adding new nodes to the scheduler is as simple as increasing the replica count in the config file, which makes scaling the timer service both vertically and horizontally, possible and simple to do as we continue to use it in more parts of our system. Because we now have multiple instances of both the gRPC service portion and the scheduler, we've made the timer service much less susceptible to serious outage if a node were to go down. Previously, we only had one scheduler, so if it went down, it was it. There were no timers being retrieved, or processed, or fired, and no messages being enqueued to Kafka by the timer service until that node were to restart. Now, because we have multiple instances, each in charge of only a particular subset of the overall timers, if a node goes down, it has much less impact on the overall functioning of the system. On single pod performance, each scheduler node is capable of handling about 10,000 timers per second. Frankly, that's without even pushing it, which makes horizontally scaling incredibly powerful. Each gRPC instance handles about 17,000 requests per second really without trouble.

There are a few things to note about our timer service as it exists today. First, the timer service has an at-least-once guarantee. This is because there's a space between the scheduler enqueuing its message to Kafka, and then turning around and requesting that that timer be deleted. If the scheduler were to restart for any reason between those two actions, or if the gRPC service has some communication error between the scheduler or between Scylla when processing that delete, the timer will fail to be deleted and will again be retrieved and fired. Because of this, the timer service does expect that all downstream consumers manage their own idempotence guarantees. Another callout about the timer service is that timers will fire close to but not exactly at the time they're scheduled. This is because schedulers still need to pull in timers at that periodic interval via that get timers request. We currently have each scheduler set to pull in the next 10 minutes of timers every 1 minute. Possibly the biggest callout about the timer service as it exists today, is that once a timer has been retrieved by the scheduler, there's no method by which to cancel it. This is because the only way to delete or cancel a timer in this system the way we have it currently, is via that delete timer request on the gRPC service, which deletes from the database. Therein, if the timer has already been retrieved from the database and is now in the scheduler, there's no way to currently stop it from firing.

Future Potential

The timer service has proven to be incredibly powerful within our own internal systems. As such, we really believe it could be useful to other organizations and individuals. There's definite potential that we will move to open source it in the near future. As we continue to grow as an organization, we intend to use the timer service as we create new services, but want to dedicate resources to integrating it more broadly across our existing infrastructure in order to streamline. We also would like to add and fine-tune features such as perhaps the ability to cancel the timer at any point in the lifecycle.

What We Have

We're about four years on now, from that original conception of a timer service to enable those journey builders. We now have an incredibly robust system that's capable of storing billions of concurrent timers and expiring them in a performant manner, while minimizing data loss, easily integrating with the rest of our systems, and, importantly, scaling simply both vertically and horizontally to accommodate our future use.

Questions and Answers

Participant: How did you handle when you added the new nodes to the scheduler? If you have 4 running in each kit, 250 charge, you add a fifth one, now they're going to be 200? How did you keep them from stepping on each other's toes as you increased that number?

Mara: We would take all of the nodes down at the time that a restart occurred, and start them back up. There would maybe be 30 seconds of potential timer latency. We weren't super concerned about millisecond accuracy of the schedulers in this case.

Participant: One of the interesting places for scheduling [inaudible 00:41:14].

Mara: I was the manager on the team, at the time we were initially building out this project. The engineer that was in charge of the implementation, he was running all these complicated data structures past me, and I suggested, did you try the most naive possible approach? Did you try spawn a future and wait on a task? He was like, that can't possibly perform well enough for our needs. I said, why don't you try it and we'll see if it performs well enough? It did. We actually didn't really continue to evaluate more complicated data structures because the easiest one worked for us.

Participant: How do you handle the [inaudible 00:42:38] that replicated the time zones, or anything related here. Did you sidestep or how did you handle that?

Mara: That was totally sidestepped. These timers were all in UTC. These were all server-side events. Every timer that's in this system, is a timer that was scheduled by another team at OneSignal. If somebody cared about something being time zone sensitive, they cared about, you send a notification at 8 a.m. in the user's time zone, they would have to figure out when 8 a.m. on the user's time zone was on a UTC clock.

Participant: You mentioned that you have a secondary table that you store all the tickets, and you request all the tickets [inaudible 00:43:34] for next interval you want to fetch. That's essentially like a full table scan?

Mara: That is basically a full table scan. The thing that's saving us from really having a bad time on that is the fact that the number of entries on that table is much more constrained than the number of entries on the timers table. There's going to be a maximum of one entry on that table for every 5-minute interval. I don't think the timer system actually has a limit on how far out you can schedule timers. The systems that currently enqueue timers I believe do have limits on how long they will allow you to schedule out a timer. Like journeys will not allow you to, say, send a notification then wait for 30 days. That just puts a constraint on the number of things that are allowed to live in the dataset. Yes, it's potentially very expensive.

Participant: I have a few questions about the database structure itself. It spawns data in the case of Cassandra? It must be more performant than the Scylla database. At the backend, how many nodes do you have, and what the replication factor is? [inaudible 00:45:06]

Mara: We have just a single data center, I believe four timers. We have I think six nodes with Scylla. I'm not sure if we did any of our own benchmarking of Scylla versus Cassandra. I think at the time, our CTO had quite a strong aversion to Java. I believe we actually run zero Java code in production, and adopting Scylla versus Cassandra was partially motivated by that desire. We have been quite happy with Scylla since we've adopted it.

Participant: [inaudible 00:46:06]

Mara: A timer would be returned by the gRPC service multiple times until it was expired, until that delete timer method was called for that particular timer. That, I suppose, is another inefficiency of the system. There's a bunch of data retransmission. Again, this was done in the name of the simplicity of the system. That is something that probably could be removed in the future if we wanted to optimize that a bit more.

Participant: It's basically that there is a possibility here of some crashing bug in a particular [inaudible 00:47:20], if one of your scheduled nodes stopped and crashed, do you have a mechanism of recovering that, or that is not a problem?

Mara: That hasn't been a problem for us, I think because the API of a timer is so small. The variance in each timer is time and data and Kafka settings basically. We don't give you more Kafka settings than topic and partition. The attack surface is really small. We haven't had any instances of a malformed timer that was causing issues for the service. If a particular node of the timer system was just crash looping, we would basically just have to page an engineer and have them look into it. There's not auto-healing built into it.

See more presentations with transcripts

engineering design and presentation 1

Recorded at:

engineering design and presentation 1

Apr 26, 2024

Hunter Laine

Related Sponsored Content

This content is in the apache kafka topic, related topics:.

  • Architecture & Design
  • QCon San Francisco 2023
  • System Programming
  • Transcripts
  • QCon Software Development Conference
  • Apache Kafka
  • Performance & Scalability

Related Editorial

Popular across infoq, spring now offers free access for the spring academy pro content, netflix uses elasticsearch percolate queries to implement reverse searches efficiently, allegro reduces kafka producer latency outliers by 82% after switching to xfs, navigating ai, platform engineering, and staff-plus: infoq dev summit boston preview, axion processor: google announces its first arm-based cpu.

engineering design and presentation 1

Choose the preview option

You haven't added content to this board yet

Jacobs

Welcome to Jacobs

At Jacobs, we're challenging today to reinvent tomorrow by solving the world's most critical problems for thriving cities, resilient environments, mission-critical outcomes, operational advancement, scientific discovery and cutting-edge manufacturing, turning abstract ideas into realities that transform the world for good. With approximately $16 billion in annual revenue and a talent force of more than 60,000, Jacobs provides a full spectrum of professional services including consulting, technical, scientific and project delivery for the government and private sector.

Q&amp;A with Clay Thompson Program Analyst

Space Exploration & Defense

For more than 70 years, our teams have provided integrated solutions to help solve the most complex and hazardous challenges of space exploration. We invent by imagining what’s possible.

Sunset over Miami, the aerial view from Venetian Islands

  • Climate Response

As a purpose-led company, we know we have a pivotal role to play in addressing the climate emergency. We consider this not only good business, but our duty to channel our technology-enabled expertise and capabilities toward benefitting people and the planet.

John Hapkiewicz headshot

A Q&A with...

Sit down with our visionary team of thinkers, dreamers and doers to see what a day in the life is like.

iStock-1138758965

Lead in Drinking Water

For more than 30 years, Jacobs has been responsible for planning and implementing Lead and Copper Rule-related strategies which protect millions of people in the U.S. and Canada. Our work includes enhanced water quality monitoring strategies, sampling plan development, harvested pipe-scale analysis, lead service line inventories and replacement plans, corrosion control studies and the incorporation of equity and environmental justice considerations into compliance programs.

Human Rights Campaign 2023-2024 Corporate Equality Index

Life at Jacobs

Jacobs. A world where you can.

Digital background depicting innovative technologies in (AI) artificial systems, neural interfaces and internet machine learning technologies

  • Data Solutions

As our clients navigate the digital transformation and growing cyber risks, we have positioned ourselves at the forefront of this growth, adding digital capabilities, products and tools to serve a growing set of customers.

iStock-182727706

Jacobs and the Infrastructure Investment and Jobs Act

Jacobs is working to help clients across the United States secure federal funding for projects that make our cities and communities more connected and sustainable. Working hand-in-hand with clients from coast to coast and everywhere in between, Jacobs develops bold, innovative solutions to address the nation’s toughest challenges.

plant growing from seed to seedling with digital overlay

From the If/When Podcast Series

A curated selection of some of the top-listened to and trending podcast episodes from our popular If/When podcast series, which has over 4M downloads to date.

Dr. Nino Kharaishvili presenting

Health System Resilience

Now more than ever, we appreciate the hard work, sacrifice and dedication of the medical profession in ensuring the health and safety of our communities.

Teams background chair in front of white wall with window

Boldly Moving Forward

Together, we are stronger. Together, we can transform the future.

Stock image of a blue passenger train on tracks with pink and purple sunset

  • Consulting & Advisory

Together with our visionary partner, PA Consulting, we're establishing our position in high end advisory services, creating a springboard to expand in high value offerings beyond the core.

Crossrail opening video - legacy and excitement - captions burned in

Integrated Program Delivery & Legacy

We work in partnership, delivering some of the most challenging, diverse and innovative projects and programs globally across multiple sectors. We integrate complex interfaces across planning, procurement and delivery to help unlock better social, environmental and economic outcomes from mega and giga projects.

Istock LA water

Water Design-Build

We’ve provided design-build services to the water sector for over 25 years and delivered more than 150 projects. We offer fully integrated design-build and design-build-operate capabilities to tackle the most complex water challenges and work in close collaboration with our clients.

Las Virgenes main

Water Reuse

As climate change threatens water security around the world, more communities are turning to water reuse as a resilient water supply solution and embracing the OneWater principle that all water has value. Jacobs has been supporting clients with water reuse programs for decades, beginning with the first applications of advanced wastewater treatment technologies in the 1960s. We provide our clients with a full range of services, from water reuse feasibility studies to design, construction and operations.

Young man and woman sitting in front of Jacobs projects and people images

Defense & Security

Jacobs’ deep experience with advanced technology systems and our wide-ranging program support capabilities make us a premier partner at locations across the world. We deliver the right talent, tools and processes to support and enable our customers’ missions.

Digital Twins: Enabling Data-Driven Water Reclamation & Reuse Solutions

One World Connected

The National Air and Space Museum's One World Connected exhibit will tell the story of how flight fostered two momentous changes in everyday life: the ease in making connections across vast distances and a new perspective of Earth as humanity’s home. Below are some stories from Jacobs that also highlight the connections and digital solutions we are making around the world.

Climate Action Plan

Collaborating to make a sustainable impact

Stories that capture our partnerships and innovative impact for a more connected, sustainable world

Reimagined Perspectives: Redefining What's Possible

Resilient Environments

The only certainty about the future is uncertainty. Resilience is an attribute of a smarter planet, and requires planning and adapting ahead of potential threats. We help our clients survive, recover, adapt and thrive.

Accessibility settings

Stop animations.

Activating this feature will stop all interaction and design based motions and animations on the site for the duration of your visit.

Reading mask

Activating this feature will create a focus area on the screen that will follow your mouse to eliminate distractions.

ENR Top Lists Rankings

No. 1 Top 500 Design Firms Engineering News-Record

Engineering News-Record has ranked Jacobs No. 1 in its list of Top 500 Design Firms. Widely considered the industry benchmark, the annual list ranks both publicly and privately held U.S. companies, based on revenue for design-specific services performed in the previous year. Jacobs has held a top five position in the Top 500 list since ENR’s rankings began in 2003, and we’re proud to retain the top spot for the seventh consecutive year.

Rankings will be updated as Engineering News-Record publishes. 

  • No. 1 –  Top 500 Design Firms  (2024)
  • No. 1 – Top 100 Pure Designers (2024)
  • No. 1 – Top 20 Firms in Combined Design and CM-PM Professional Services Revenue (2023)
  • No. 1 – Top 50 Program Management Firms (2023)
  • No. 1 – Aerospace (2023)
  • No. 1 – Clean Air Compliance (2023)
  • No. 1 – Data Centers (2023)
  • No. 1 – Hazardous Waste (2024)
  • No. 1 – Healthcare (2023)
  • No. 1 – Industrial Process (2024)
  • No. 1 – Manufacturing (2024)
  • No. 1 – Nuclear Plants (2023)
  • No. 1 – Nuclear Waste (2023)
  • No. 1 – Operation & Maintenance (2023)
  • No. 1 – Pharmaceuticals (2023)
  • No. 1 – Pulp & Paper (2023)
  • No. 1 – Sanitary & Storm Sewers (2023)
  • No. 1 – Semiconductors (2023)
  • No. 1 – Sewer & Waste (2024)
  • No. 1 – Solar Power (2023)
  • No. 1 – Telecommunications (2024)
  • No. 1 – Towers & Antennae (2023)
  • No. 1 – Wastewater Treatment (2023)
  • No. 1 – Water Transmission Lines & Aqueducts (2023)
  • No. 2 – Top 50 Designers in International Markets (2024)
  • No. 2 – Construction Management/PM-for-Fee Firms (2023)
  • No. 2 – Airports (2023)
  • No. 2 – Auto Plants (2023)
  • No. 2 – Bridges (2023)
  • No. 2 – Co-Generation (2023)
  • No. 2 – Chemical & Soil Remediation (2023)
  • No. 2 – Chemical Plants (2023)
  • No. 2 – Entertainment (2023)
  • No. 2 – Electronic Assembly (2023)
  • No. 2 – Government Offices (2023)
  • No. 2 – Highways (2023)
  • No. 2 – Mass Transit & Rail (2023)
  • No. 2 – Marine & Port Facilities (2023)
  • No. 2 – Power (2024)
  • No. 2 – Site Assessment & Compliance (2023)
  • No. 2 – Transportation (2024)
  • No. 2 – Water Supply (2023)
  • No. 2 – Water Treatment, Desalination Plants (2023)
  • No. 2 – Wind Power (2023)
  • No. 3 – General Building (2024)
  • No. 3 – Transmission Lines & Cabling (2023)
  • No. 3 – Top 200 Environmental Firms — Top Firms by Type of Work - Engineering/Design (2023)
  • No. 3 – Water (2024)

A look at our projects

Purple nuclear fusion facility

ITER, France

Jacobs was selected to design and engineer remotely operated tools for ITER Organization, which is leading the world’s largest fusion power project in Provence, France, as an essential step toward developing a new, sustainable global energy supply. Jacobs is a key delivery partner in engineering integration, fuel cycle, robotics and remote handling, plasma facing materials and components, digital simulation and construction management. Photo credit: ITER Organization

Houston Waterworks

Houston Waterworks

The Northeast Water Purification Plant by Houston Waterworks Team (a joint venture of Jacobs and CDM Smith) is currently the largest design-build water project in the United States – 320 million gallons of water per day and 1,300 workers on a 90-acre site working eight million hours without a lost time incident – and is helping bolster and future-proof water resources for the rapidly growing Houston metro area. Photo credit: Houston Waterworks Team

Aerial rendering of a marine terminal

South Brooklyn Marine Terminal

Jacobs is designing the redevelopment of the 72-acre South Brooklyn Marine Terminal, which will serve as the staging and assembly port for wind turbine installation, and an operations and maintenance base. The port will be one of the largest offshore wind ports in the nation, enabling the construction of several offshore wind farms, which will provide clean energy to more than two million homes in New York. Photo credit: Equinor

Aerial rendering of a plant facility

NatureWorks

Jacobs designed a new biopolymer production plant in Thailand for NatureWorks, the world’s first commercial-scale supplier of polylactic acid (PLA), a low-carbon bioplastic derived from renewable, agricultural resources. The plant is the world's first designed to be fully integrated with full cycle operations from sugar through to the production of the Ingeo™ biopolymer product. Photo credit: NatureWorks

“Together with our clients, we continue to conceptualize and implement renewable energy, decarbonized transit, EV ecosystems, water optimization, lifesaving vaccines and therapies and technology-advanced electronics, bringing social value to underserved communities. We are committed to confronting this global challenge and creating a more connected, sustainable world.”

Bob Pragada

Bob Pragada

Jacobs Chief Executive Officer

You might be interested in...

  • Industry Rankings

News & Events

Hcde students sourojit ghosh & austin lee named to husky 100.

Leah Pistorius April 30, 2024

Human Centered Design & Engineering students Sourojit Ghosh and Austin Lee are named to the 2024 cohort of the Husky 100.

The Husky 100 is a program that annually recognizes 100 students across the UW's three campuses for their outstanding work and extracurricular achievements. "The one thing they share is that they actively connect what happens inside and outside of the classroom and apply what they learn to make a difference on campus, in their communities and for the future," wrote UW Provost Tricia R. Serio in an announcement. "Through their coursework, research, volunteer and leadership efforts, internships and jobs, they have created their own unique Husky Experience."

2024 HCDE Husky 100 Honorees

Sourojit Ghosh

Sourojit Ghosh

Phd, human centered design & engineering kolkata, india.

My commitment to Inclusive Community is exemplified by my integration of human-centered methods and values into a wide range of courses, centered around a pedagogy of care and radical inclusion, delivering equitable course experiences based on individual student needs, without compromising on collective experience. As an aspiring professor and research mentor, I am grateful for the opportunities afforded to me by HCDE and the UW towards practicing my values, and hope to repay their demonstrable faith in me by mentoring future generations of students.

Austin Lee

BS, Human Centered Design & Engineering Vancouver, WA

Through classes, on-campus organizations, personal projects and internships I have experienced at the UW, the people and friends around me created an environment where my opinions and perspectives were valued. This feeling of belonging played a huge role in my learning and growth. Being surrounded by such positive energy is why community has been the core of every project I’ve worked on and I’m excited to continue using the power of design to bring people together.

These three join 19 other HCDE students who have been named to the Husky 100 since the program began in 2016. View the complete list of HCDE students recognized in the Husky 100 over the years .

IMAGES

  1. What Are The 8 Steps Of The Engineering Design Process

    engineering design and presentation 1

  2. Engineering Design Process

    engineering design and presentation 1

  3. Engineering Design Process in 7 Steps

    engineering design and presentation 1

  4. The Engineering Design Process

    engineering design and presentation 1

  5. Engineering Design Process PowerPoint Template

    engineering design and presentation 1

  6. Engineering Design Process

    engineering design and presentation 1

VIDEO

  1. Engineering Design Presentation

  2. Maker Faire

  3. Introduction to Engineering Drawings (ISO)

  4. ENG011 presentation " Do or Die " Fall 22

  5. Design & Engineering- Module 5 complete

  6. #12: How to present your design project in only 5 minutes!

COMMENTS

  1. Engineering Design and Presentation I

    Engineering Design and Presentation I is a continuation of knowledge and skills learned in Principles of Applied Engineering. Students enrolled in this course will demonstrate knowledge and skills of the design process as it applies to engineering fields using multiple software applications and tools necessary to produce and present working drawings, solid model renderings, and prototypes.

  2. Engineering Design & Presentation I

    Engineering Design and Presentation I is a continuation of knowledge and skills learned in Principles of Applied Engineering. Students will demonstrate knowledge and skills of the design process as it applies to engineering fields. Along the way, they'll use multiple software applications and tools necessary to produce and present working ...

  3. PDF CFISD Engineering Design and Presentation I

    Course Description Students will use multiple software applications and tools necessary to produce and present working drawings, solid models, renderings, and prototypes relating to the engineering design and drafting fields. Students will use a variety of computer hardware and software applications to complete assignments and projects. (1 Credit)

  4. PDF Engineering Design and Presentation I Breakouts

    Engineering Design and Presentation I. Subject: Career and Technical Education Grade: 10 Expectations: 63 Breakouts: 182. Introduction. Career and technical education instruction provides content aligned with challenging academic standards, industry-relevant technical knowledge, and college and career readiness skills for students to further ...

  5. Scope and Sequence: Engineering Design and Presentation I

    Description. CTE TEKS - Implemented 2017-2018, adopted in 2015. Engineering Design and Presentation I course scope and sequence within the Science, Technology, Engineering, and Mathematics Career Cluster® summarizes the content to be taught, and one possible order for teaching the units of instruction. A brief description of each unit and the ...

  6. Engineering Design Process

    The engineering design process emphasizes open-ended problem solving and encourages students to learn from failure. This process nurtures students' abilities to create innovative solutions to challenges in any subject! The engineering design process is a series of steps that guides engineering teams as we solve problems.

  7. Fundamental Skills in Engineering Design

    Welcome to Fundamental Skills in Engineering Design • 5 minutes. Tell us about yourself: Click Start learners • 10 minutes. Lesson 1: Overview • 1 minute. Exploring the fields of engineering design • 5 minutes. Exercise: Complexity and engineering design • 10 minutes. Lesson 1: Summary and next steps • 5 minutes.

  8. Introduction to Engineering Design

    10 videos • Total 29 minutes. Introduction to the course and instructor • 2 minutes • Preview module. Fundamentals of engineering design • 2 minutes. The engineering design process • 2 minutes. A historical overview of engineering design • 2 minutes. From theory to practice: Implementing design principles • 3 minutes.

  9. BrownX: Introduction to Engineering and Design

    BrownX: Introduction to Engineering and Design. Learn about the primary fields of engineering and explore the engineering design process, from conceptual design and optimal choice evaluation to prototyping and project construction. 3 weeks. 2-3 hours per week. Self-paced. Progress at your own speed. This course is archived. View course materials.

  10. Writing & Presentation Help

    EG 110 - Engineering Design 1. Use this Library Research Guide to help find resources on the resources on water resources, water supply management, valve design, rainfall monitoring, and 3-D printing- scholarly articles, books, websites, etc. ... If you need help preparing a presentation your best resource is the Wolak Learning Center (Campus ...

  11. What Is Engineering and What Is Design?

    Example answers are provided on the Engineering & Design Pre/Post Quiz Answer Key (and slide 3). Administer the same quiz at lesson end. Post-Introduction Assessment. Learning about Engineering and Design: Throughout the presentation, observe students and ask questions about the content to assess their engagement and level of understanding. If ...

  12. Engineering Innovation and Design

    Learn to produce great designs, be a more effective engineer, and communicate with high emotional and intellectual impact. This project based course gives students the ability to understand, contextualize, and analyze engineering designs and systems. By learning and applying design thinking, students will more effectively solve problems in any domain. Lectures focus on teaching a tested ...

  13. Introduction To Engineering Design

    The Institute for Engineering Education infinity-project.org Engineering Education for today's classroom. Unit 1: Wrap-Up Engineers are creative people who work with mathematicians, scientists, businesspeople, and others to solve human needs. The engineering design process provides a framework for inventing new products or improving

  14. Presentation Design and Delivery

    Sharing knowledge — that is, effectively communicating complex concepts to your audience — is the real strength. This certificate program is designed to help you design, build, and deliver impactful in-person and virtual presentations to an array of internal and external audiences. The courses will provide you with an opportunity to examine ...

  15. PDF Engineering Design and Presentation II Breakouts

    Engineering Design and Presentation II. Subject: Career and Technical Education Grade: 11 Expectations: 73 Breakouts: 213. (a) Introduction. 1. Career and technical education instruction provides content aligned with challenging academic standards, industry-relevant technical knowledge, and college and career readiness skills for students to ...

  16. Engineering Design Process

    The engineering design process is a series of steps that engineers follow to come up with a solution to a problem. Many times the solution to a problem involves designing a product (like a machine or computer code) that meets certain criteria and/or accomplishes a certain task. This process is different from the Steps of the Scientific Method ...

  17. PDF The Engineering Design Cycle

    Presentation During the Engineering Design Cycle 1. Write Complete Sentences • Reduced Footprint • Compromised Performance Reduction in the "footprint"of any single component of the design, in and of itself, compromises performance for portability. Complete sentences are easier to read and remember, AND they help us limit ourselves to one

  18. Present the Solution

    When presenting a complicated engineering design to a mixed audience, reducing, reducing, and reducing bullets gets the engineer only partway down the road toward a convincing presentation of the solution. It is true that more visuals, less text, and minimal bullets go a long way to making a slide or piece of a presentation engaging and memorable.

  19. 1.2: Engineering Analysis and Engineering Design

    Engineering analysis and engineering design are two activities common to all engineering disciplines (Figure 1.2.1 1.2. 1 ). Engineering analysis is the process by which an engineer develops a model of an engineering problem and uses the model to obtain useful engineering information. Engineering design is the iterative process through which an ...

  20. Tips for Preparing a Presentation

    Time is of the essence. Know the time requirements for your presentation and design it accordingly -- keeping within time limits is essential for success. Be sure you know if your allotted time allows for a Q&A at the end of your presentation. Practice, practice, practice. Create a schedule and practice as much as possible.

  21. PDF Engineering a Presentation

    presentations. So, we'll start by reviewing the basic principles of engineering design, and then see if we can't make our case for applying them to "engineer" a presentation. 2.1 Quick Review of Some Design Concepts The engineering design process is often depicted as a flow diagram. Figure 2.1 shows its main stages, which are1 1.

  22. Introduction to the Engineering Design Process

    Students will compare the process they use during an in-class challenge to the steps of the engineering design process. This is lesson 1 of 10 in Engineering for Good, a NGSS-aligned, project-based learning unit. KQED Teach is here to support you in doing these projects with your students.

  23. Design Handbook: Engineering Drawing and Sketching

    An arrowhead is approximately 3 mm long and 1 mm wide. That is, the length is roughly three times the width. An extension line extends a line on the object to the dimension line. The first dimension line should be approximately 12 mm (0.6 in) from the object. Extension lines begin 1.5 mm from the object and extend 3 mm from the last dimension line.

  24. CE 494-101: Civil Engineering Design I

    Outcomes Course Matrix - CE 494 Civil Engineering Design I. Student Learning Outcome 1: Apply a simulated submission and acceptance process normally associated with the initial design phases for a civil engineering project. Prepare sketch plats, preliminary engineering design, and a related environmental assessment.

  25. Fundamentals of Engineering Design Highlights SP 2024

    Engineering Design Showcase. Engineering Technical Communications. Courses. ETC Resources. Additional Course Offerings & Services. Engineering 1180. Engineering 1221. Engineering Sciences Minor. Integrated Business and Engineering Honors Program. Teaching in Engineering. Service-Learning. Evaluating Course Credit. Instructional Technology.

  26. CEM Expo 2024

    Virtual Expo Presentations. ... The CEM Design Expo Competition defines a Process/Research Project as a project that is primarily based in at least one of the following: Software Simulation, Research & Development of Theoretical Concepts and/or Materials, or Process Improvement. ... College of Engineering & Mines. Upson II Room 165, Stop 8155 ...

  27. Sleeping at Scale

    Transcript. Mara: My name is Lily Mara. I'm an engineering manager at a software company here in the Bay Area called OneSignal. We are a customer messaging company.

  28. Design Day 2024

    Schedule of Events. 8:30 am - 11:30 am - BME Student Presentations. Goldfarb Gym 8:30 am - Breakfast and Registration 9:00 am - Welcome and Introductions 9:10 am - Design Team and Project-Based Courses 10:15 am - CBID Master's Program 11:00 am - BME Awards. 11:45 am - 12:45 pm - Keynote Presentation

  29. ENR Top Lists Rankings

    Engineering News-Record has ranked Jacobs No. 1 in its list of Top 500 Design Firms. Widely considered the industry benchmark, the annual list ranks both publicly and privately held U.S. companies, based on revenue for design-specific services performed in the previous year. Jacobs has held a top five position in the Top 500 list since ENR's rankings began in 2003, and we're proud to ...

  30. HCDE students Sourojit Ghosh & Austin Lee named to Husky 100

    Human Centered Design & Engineering students Sourojit Ghosh and Austin Lee are named to the 2024 cohort of the Husky 100. The Husky 100 is a program that annually recognizes 100 students across the UW's three campuses for their outstanding work and extracurricular achievements. "The one thing they share is that they actively connect what happens inside and outside of the classroom and apply ...