Presentation: Mission, Culture, and Values: Using Them to Guide Your Company Through Good and Challenging Times

MMS Founder
MMS Heather McKelvey

Article originally posted on InfoQ. Visit InfoQ

Transcript

McKelvey: You’re sitting here wondering, why is somebody going to talk to me about mission, culture, and values at a technical conference? Because it’s going to guide a lot of what you do with your career. It’s going to guide a lot of how you choose companies. It’s going to guide a lot of what you’re going to do if you’ve found a startup. It will help you through both good times and bad. We’re going to talk a little bit about me. We’re going to talk about how those things play into caring for your career, how you can nurture not only yourself, but others. Then we’re going to talk about how it can help you through both challenging times and opportunities. Culture, mission, values are key for us to be consistent in making sure that we’re giving ourselves and others the right guidance.

Backstory

I have been a software engineer for 42 years. I started out writing protocol drivers for TCP and SNA in assembler. Trust me, those drivers are not around anymore, or those companies are probably out of business. I am VPE for services infrastructure at LinkedIn. What we do is we build the infrastructure that the rest of the LinkedIn engineers use to build the LinkedIn platform and applications. This is things like standardized access to data, services that run in production that auto-tune JVMs. Things like traffic infrastructure. At LinkedIn, we do the CD pipeline for them as well. LinkedIn really does do continuous deployment. In that, if an application engineer gets to ship it from their tech lead, they can be through the whole CD pipeline, through the canary, through the tests into production with 1% of the traffic on them, within 30 minutes. Pretty interesting infrastructure. I have been an engineering leader at six startups. To my credit, four had nice exits, two went under, but we can’t all get them right. What I found is, over the years, the mission of the company, the vision they have, their culture matters. Wasn’t too long into my career, when I figured out, this is what I value in mission. This is what I value in culture. If my expectations do not match the company’s expectations, I’m either trying to manage me out or they’re trying to manage me out. It’s a good thing upfront to get that stuff right.

Couple of quotes to start us off. I think this is really important. Nobody’s going to remember the deliverable you did last year. Nobody remembers the protocol drivers I wrote, except me. What people will remember is how you made them feel. Did you help them transform? Did you support the mission and the vision? How we do that to a certain extent is through our values. That’s the contract upon which we agree to work together and build trust. I love this quote from Maya Angelou, and I think it’s something we all need to take with us. Second quote I’ve got is from Jeff Weiner, and I think this is really important. Your mission should be pretty consistent. Your vision should support your mission. It may need to be fine-tuned over time. Your culture needs to support transformation. It needs to support transformation of individuals, teams, and business. I think that’s an important one as well.

Culture and Values (Values Re-enforce Culture)

I put LinkedIn’s culture up here, because it was easy for me and I could copy it. Many companies have their own mission, vision, and culture. These are the values by which we focus on. This is the contract by which all individuals at LinkedIn are expected to support. Word of warning, if the CEO does not believe and uphold the culture and the values, you’re trying to manage them out, or they’re trying to manage you out, I’ll guarantee it. Three things I want to point out here that are really important, trust and care for each other. Trust and care for each other, when things are good. When things are going really well, we celebrate each other. We celebrate our wins. We celebrate how well the company is doing. When things are not going as well as we would like, or, I made a mistake, I need to be able to apologize, we still trust and care for each other. We give each other that important feedback, so that, one, as individuals, we can help each other transform, grow. We can help the team transform and grow. Then we can also tell senior leadership, you need to transform and grow. This is an important point. If we don’t trust and care about each other, we are not giving feedback. I’ve had a situation more than once, where someone has come to me and said, I’m being challenged with a senior leader, whether it be my manager, or an IC who’s a tech lead or whatever. Thought I’d ask, have you told them? Have you told them how this is affecting you? Have you told them how this makes you feel? No, I can’t say that to them, so you don’t trust and care for them. You don’t have their back. We are open and honest and constructive. This goes very much with trust and care. The other part of this, to round it out, it’s the belonging, it’s the diversity, it’s the inclusion. When we talk about inclusion, we’re not just talking about gender, we’re not just talking about ethnicity, we’re talking about people who think differently. People whose abilities are different from ours. We’re talking about people who may have grown up in an environment where they didn’t have the same economic advantage as you. Making sure we’re being as inclusive as possible, is very important. Giving those people the same opportunities is very important.

We took this culture, and for the services infrastructure team, we decided we’re going to use some of this as some of the basic foundations of our guidelines for our charter. If you’ve never written a charter, I strongly suggest you write a charter. You should start with three dream big ideas. If you only have one, great, but don’t go more than three because it’s way too much. We said, how are we going to use these? Since we are an infrastructure team, we said we’re going to use these to put our customers first so they can put our members first. We did this because we’re infrastructure, when we get it wrong, 7000 engineers are screwed. Not a good position to be in. We’ve affected their productivity. That is part of what we’re doing there. We said we’re going to renew and modernize the stack, and automate upgrades as much as possible. Our CTO says to me, “Renew and modernize the stack? Everybody does that. No.” We get into a habit sometimes where we are revisiting something that was maybe decided upon 10 years ago, so we decided to build it ourselves. Because, yes, I know they build it over here, and there’s this open source thing over here, but I’d like to build it myself. Not necessarily the best idea, because sometimes the industry will catch up and overtake. An active open source community is extremely powerful. You want to be part of that community. You want to be able to contribute, give back. You want to be able to help the rest of that community make an even better open source product.

Then the last thing we said is we’re going to automate resilience, remediation, scale, and deployments. Why did we do this? How many people here can tune a JVM? It’s what I thought, less than 10. We wrote a very interesting library that runs in all of our instances, that detects when an instance is sick. There are three triggers to figure out if an instance is sick. The most obvious one is, I can’t get any CPU utilization, n number of times over so many milliseconds, so I’m going to start load shedding. I won’t even give the request to the application. The first time we saw a whole cluster of over 500 start load shedding, somebody the week before had tuned the JVM by hand. That was emphasis enough for us to write services to make sure that we were automatically tuning the JVM for them in production.

Career Culture and Care, and Learnings

These values, these are the contracts we use. You start using these pretty much early on in life is my finding. In my career, I’ve gone through what I consider three stages. The first stage is, find my passion. You’re early on, you’re trying new things. What’s going to make me happy to get up and go to work every day? It’s not usually unique to company, it’s something that I want to pursue for my career. Finding your passion is extremely important. It’s also giving yourself the bandwidth to try different things, finding out what you don’t like, and saying, I know why I don’t like that. Absorbing as much as you can. This is a great time to learn quickly, learn fast. These values are important because when you start to use these values, you understand you may be early in your career, but you’re there to help the whole team. Then you move to your second stage. In the second stage for me it was, hone my expertise. I found in my early stage, I really liked distributed systems, they’re hard. They’re complex. They need to be able to degrade gracefully. They need to have pieces be able to fail and no one perceived it failed, except those of us who got the monitoring alerts and went, uh-uh. Distributed systems was extremely important to me. I also found at this stage in my career, the values that I was using for guiding myself and others through our culture became important to me to guide myself. I found, using them to establish my boundaries was key for me to be able to be more successful over time.

One of my favorite stories is I was staring at this stupid bug for two days, and I could not figure it out. My husband kept having these talks with me about, “You need to set down because you need to be home at a certain time. I want to see you dear.” I’m like, “You’re in marketing, I’m a software engineer.” I know your day ends at 4:00. I’m staring at this stupid bug for two days. I get this call, and I was pleasantly surprised to hear my husband say, “Woman, shut your laptop.” I just started laughing my head off. I was like, “I’m coming home, it’s 8:00, I know,” and get in the car. Fifteen minutes later into the drive, because I’d walked away from it, I deal with the problems. Setting your boundaries, making sure that you are taking care of yourself, making sure you are getting what you need. Remember these boundaries will change over time. In your career, you will at times have a huge appetite for growth. Then that will go down, things will change. Something may happen with personal life, or just be, you just went through a major growth spurt and now you’re like, “I need to settle.” That’s fine. Use the values to set your boundaries. Pay attention to the flow of your life. I remember one time I was a new manager and a female software engineer, she was a senior software engineer. I was like, “Come on, let’s talk about getting you to staff.” She looked at me, and she said, “I have two small kids, I’m not going to staff.” I’m like, “Never mind.” Three years later, she was ready, once they were in school.

Use the set part of your career to also remember, you are now in a phase where it is more important for you to teach, educate. Use those code reviews to leave a lasting artifact of teaching for others to discover. Start with seeking to understand. Remember we talked about inclusiveness. People don’t think the same way. Some people’s approach is very different. They may all come to the same conclusion, or some of them because they’re thinking very differently, may come to a very different conclusion. Seek to understand people’s approaches. As well as once you can start that discussion, you now discover, how are they comfortable learning. That’s an important thing to do. You’re going to have a greater impact on people and their transformations. Then this last stage, it’s not about me. I’m not the expert. I learn more from my team and other teams than I could possibly know. It gives me a chance to go, I can go back to playing like I did early in my career. I can go back to learning as much as I want. I can actually bring clarity to what we’re trying to solve, because I’m asking questions, because I don’t understand. Always be building and learning and paying it forward. Because at this stage of your career, when you get to really strong leaders, it’s not about their transformation. It’s about how they helped others to transform. It’s about how they help teams to transform. In the end, that transforms the business.

Weathering Tech Industry Ups and Downs, and Learnings

These values, why is this culture value thing so important? The tech industry isn’t infallible. In 42 years, I’ve been through at least tech downturns, three of them. Probably more. I’ve been in the business so long, it’s ok for me to forget some of them. First one was in 2003, the dot-com bust. This was really the tech industry. In 2003, some of you will remember and some of you will be like, “I don’t know what she’s talking about. I was born in 2004.” There was an approach to startups where you had to start with $5 million, $10 million. It was based on the valuation. That’s how the VCs figured out how they were going to value your company. What was your most recent valuation? Over 100 tech companies actually didn’t make it through that bust. The VCs learned during this time that they needed to be much more pragmatic. They needed to change how they value companies. They need to look at the founders more closely. They need to look at how things are being managed more closely. They started measuring startups by burn rate. The founders started realizing, when I go ask for money, and I need money, I don’t get money as easily than when I don’t need money. They started learning from that as well.

Ok, go forward, 2007, 2009. Most of you have lived through that. Maybe not as closely as some of us did. Global Financial Crisis. This wasn’t just tech. They were closing down banks. There were bank takeovers. I worked for a company, a startup, and Sequoia was our major investor. Our CEO had been CEO for three or four months, he was a brand-new CEO. Sequoia called in all the CEOs of the startups, when the Global Financial Crisis kicked off. If you haven’t seen it, Google it, it’s their infamous Rest in Peace Good Times. They made it very clear, money wasn’t coming for at least two years. This was a pretty big financial crisis. Many people got laid off in many industries across the globe. What came out of this one was interesting. Engineers vote with their feet, they find something new to do. They’re innovative. They’re creative. If I can’t find a job, I’m just going to go do a startup. That happened a lot. In the Bay Area alone, in 2010, there were 280-plus startups founded in one year. Angel investment went through the roof. I don’t need that $5 million to 10 million anymore, I can just do this, just give me $600,000 to start with. That’ll get me and my two founders off the road for like a year and a half, and we can build something. Then the other interesting thing was, I can’t afford a data center, and I don’t want to buy a server. I actually don’t even know if I want an office, but I can very cheaply spin this up in AWS Cloud. People started architecting for the cloud, not the thinking that, “I’ve got this in my data center, I’ll just move it to the cloud.” When you start architecting for the cloud, you are building distributed systems. You are building something very interesting. You are building something that allows you to scale with less boundaries. AWS revenue through this whole thing did really well, it helped them take off immensely.

We get to now, 2023 state of tech. VC money has dropped again. Over 170,000 tech workers were laid off according to Crunchbase, between 2022 and 2023. The most important part is we’re going to see these ups and downs. We may have to pivot. We may have to refocus our team. We may have to, unfortunately, sometimes shrink. We may have to take advantage of it and grow. The culture and the values should be the same, and they should help guide you through these difficult times. It helps you make those difficult decisions. It helps in having the conversations about the difficult options, and where should we take this. One other thing, we talked about inclusion. I just read, Harvard did a study for 85 years. That’s longer than I’ve been in this business by two. The study was about, what is really most important? Is it purpose, or is it money? Turned out, consistently, purpose was far more important than money, regardless of the age, regardless of the gender, regardless of the person. Purpose allowed people to, one, better choose what they want to work on, where they want to work, who they want to work with. Make sure that they have the same culture, they believe in the same mission. It ended up that purpose had a huge benefit for people, in the fact that they were happier, they were more satisfied. It was an even better reason to get up and work on that mission every day. If you’re doing a job interview, and if you’re me, and you’re like, tell me about the culture. Then you ask the question 15 different ways because you’re doing the lawyer thing. You’re trying to catch somebody up and hear a different answer. Ask them about what purpose do they want to have in their lives. What do they think? This should lead directly back to that mission. It will lead back to the culture. That’s an important point, because when those things match, the impact you, the team, the business can have, is much bigger than any of us think. Why does it take 85 years to do that study? I’m not sure.

Conclusion

Just to round this out, keys to success during challenging times. You realize that these are grounding rules for you not just living your life, but how am I going to make the best out of my career? How am I going to feel I am actually impacting not just me, not just the team, not just the business, but hopefully others as well. This is an important one, I think this is really good. We’ve had people go back and forth on this, which is, dream big. If I dream big, I might not be able to achieve it. If you don’t dream big and you can’t achieve it, did you just limit yourself? Did you just limit the team? What if you dreamt big and you only got 50% of the way there? Still pretty good. When you get 50% of the way there, you might see the path to get to the other 50% of the way there. Don’t be afraid to dream big. Don’t be afraid to make those statements. Culture reinforces how we work together. Remember I talked about that third phase of my career. It is not unusual for people in the first and second phase to think, the CTO is an expert at everything. Truth is, the CTO is an expert at nothing. They have so much they have to do. You have to enter into discussion, seek to understand what they actually know, what they are seeking to learn, to help them and to educate them. When somebody in a leadership position asks you a question, it should not be, I have the answer for you. It should be, can you set that context for me? I’m trying to understand better what you’re trying to work through to get an answer to. Then, think about it. Spend some time, write down where you want to make an impact. Write down your purpose. Think about your values. Use them. Be clear about them with people. Don’t hide them. Use them to evaluate your next opportunities, because you’ll end up like me, when they don’t match, I’m trying to manage me out, or they’re trying to manage me out.

See more presentations with transcripts

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Presentation: Mission, Culture, and Values: Using Them to Guide Your Company Through Good and Challenging Times

MMS Founder
MMS Heather McKelvey

Article originally posted on InfoQ. Visit InfoQ

Transcript

McKelvey: You’re sitting here wondering, why is somebody going to talk to me about mission, culture, and values at a technical conference? Because it’s going to guide a lot of what you do with your career. It’s going to guide a lot of how you choose companies. It’s going to guide a lot of what you’re going to do if you’ve found a startup. It will help you through both good times and bad. We’re going to talk a little bit about me. We’re going to talk about how those things play into caring for your career, how you can nurture not only yourself, but others. Then we’re going to talk about how it can help you through both challenging times and opportunities. Culture, mission, values are key for us to be consistent in making sure that we’re giving ourselves and others the right guidance.

Backstory

I have been a software engineer for 42 years. I started out writing protocol drivers for TCP and SNA in assembler. Trust me, those drivers are not around anymore, or those companies are probably out of business. I am VPE for services infrastructure at LinkedIn. What we do is we build the infrastructure that the rest of the LinkedIn engineers use to build the LinkedIn platform and applications. This is things like standardized access to data, services that run in production that auto-tune JVMs. Things like traffic infrastructure. At LinkedIn, we do the CD pipeline for them as well. LinkedIn really does do continuous deployment. In that, if an application engineer gets to ship it from their tech lead, they can be through the whole CD pipeline, through the canary, through the tests into production with 1% of the traffic on them, within 30 minutes. Pretty interesting infrastructure. I have been an engineering leader at six startups. To my credit, four had nice exits, two went under, but we can’t all get them right. What I found is, over the years, the mission of the company, the vision they have, their culture matters. Wasn’t too long into my career, when I figured out, this is what I value in mission. This is what I value in culture. If my expectations do not match the company’s expectations, I’m either trying to manage me out or they’re trying to manage me out. It’s a good thing upfront to get that stuff right.

Couple of quotes to start us off. I think this is really important. Nobody’s going to remember the deliverable you did last year. Nobody remembers the protocol drivers I wrote, except me. What people will remember is how you made them feel. Did you help them transform? Did you support the mission and the vision? How we do that to a certain extent is through our values. That’s the contract upon which we agree to work together and build trust. I love this quote from Maya Angelou, and I think it’s something we all need to take with us. Second quote I’ve got is from Jeff Weiner, and I think this is really important. Your mission should be pretty consistent. Your vision should support your mission. It may need to be fine-tuned over time. Your culture needs to support transformation. It needs to support transformation of individuals, teams, and business. I think that’s an important one as well.

Culture and Values (Values Re-enforce Culture)

I put LinkedIn’s culture up here, because it was easy for me and I could copy it. Many companies have their own mission, vision, and culture. These are the values by which we focus on. This is the contract by which all individuals at LinkedIn are expected to support. Word of warning, if the CEO does not believe and uphold the culture and the values, you’re trying to manage them out, or they’re trying to manage you out, I’ll guarantee it. Three things I want to point out here that are really important, trust and care for each other. Trust and care for each other, when things are good. When things are going really well, we celebrate each other. We celebrate our wins. We celebrate how well the company is doing. When things are not going as well as we would like, or, I made a mistake, I need to be able to apologize, we still trust and care for each other. We give each other that important feedback, so that, one, as individuals, we can help each other transform, grow. We can help the team transform and grow. Then we can also tell senior leadership, you need to transform and grow. This is an important point. If we don’t trust and care about each other, we are not giving feedback. I’ve had a situation more than once, where someone has come to me and said, I’m being challenged with a senior leader, whether it be my manager, or an IC who’s a tech lead or whatever. Thought I’d ask, have you told them? Have you told them how this is affecting you? Have you told them how this makes you feel? No, I can’t say that to them, so you don’t trust and care for them. You don’t have their back. We are open and honest and constructive. This goes very much with trust and care. The other part of this, to round it out, it’s the belonging, it’s the diversity, it’s the inclusion. When we talk about inclusion, we’re not just talking about gender, we’re not just talking about ethnicity, we’re talking about people who think differently. People whose abilities are different from ours. We’re talking about people who may have grown up in an environment where they didn’t have the same economic advantage as you. Making sure we’re being as inclusive as possible, is very important. Giving those people the same opportunities is very important.

We took this culture, and for the services infrastructure team, we decided we’re going to use some of this as some of the basic foundations of our guidelines for our charter. If you’ve never written a charter, I strongly suggest you write a charter. You should start with three dream big ideas. If you only have one, great, but don’t go more than three because it’s way too much. We said, how are we going to use these? Since we are an infrastructure team, we said we’re going to use these to put our customers first so they can put our members first. We did this because we’re infrastructure, when we get it wrong, 7000 engineers are screwed. Not a good position to be in. We’ve affected their productivity. That is part of what we’re doing there. We said we’re going to renew and modernize the stack, and automate upgrades as much as possible. Our CTO says to me, “Renew and modernize the stack? Everybody does that. No.” We get into a habit sometimes where we are revisiting something that was maybe decided upon 10 years ago, so we decided to build it ourselves. Because, yes, I know they build it over here, and there’s this open source thing over here, but I’d like to build it myself. Not necessarily the best idea, because sometimes the industry will catch up and overtake. An active open source community is extremely powerful. You want to be part of that community. You want to be able to contribute, give back. You want to be able to help the rest of that community make an even better open source product.

Then the last thing we said is we’re going to automate resilience, remediation, scale, and deployments. Why did we do this? How many people here can tune a JVM? It’s what I thought, less than 10. We wrote a very interesting library that runs in all of our instances, that detects when an instance is sick. There are three triggers to figure out if an instance is sick. The most obvious one is, I can’t get any CPU utilization, n number of times over so many milliseconds, so I’m going to start load shedding. I won’t even give the request to the application. The first time we saw a whole cluster of over 500 start load shedding, somebody the week before had tuned the JVM by hand. That was emphasis enough for us to write services to make sure that we were automatically tuning the JVM for them in production.

Career Culture and Care, and Learnings

These values, these are the contracts we use. You start using these pretty much early on in life is my finding. In my career, I’ve gone through what I consider three stages. The first stage is, find my passion. You’re early on, you’re trying new things. What’s going to make me happy to get up and go to work every day? It’s not usually unique to company, it’s something that I want to pursue for my career. Finding your passion is extremely important. It’s also giving yourself the bandwidth to try different things, finding out what you don’t like, and saying, I know why I don’t like that. Absorbing as much as you can. This is a great time to learn quickly, learn fast. These values are important because when you start to use these values, you understand you may be early in your career, but you’re there to help the whole team. Then you move to your second stage. In the second stage for me it was, hone my expertise. I found in my early stage, I really liked distributed systems, they’re hard. They’re complex. They need to be able to degrade gracefully. They need to have pieces be able to fail and no one perceived it failed, except those of us who got the monitoring alerts and went, uh-uh. Distributed systems was extremely important to me. I also found at this stage in my career, the values that I was using for guiding myself and others through our culture became important to me to guide myself. I found, using them to establish my boundaries was key for me to be able to be more successful over time.

One of my favorite stories is I was staring at this stupid bug for two days, and I could not figure it out. My husband kept having these talks with me about, “You need to set down because you need to be home at a certain time. I want to see you dear.” I’m like, “You’re in marketing, I’m a software engineer.” I know your day ends at 4:00. I’m staring at this stupid bug for two days. I get this call, and I was pleasantly surprised to hear my husband say, “Woman, shut your laptop.” I just started laughing my head off. I was like, “I’m coming home, it’s 8:00, I know,” and get in the car. Fifteen minutes later into the drive, because I’d walked away from it, I deal with the problems. Setting your boundaries, making sure that you are taking care of yourself, making sure you are getting what you need. Remember these boundaries will change over time. In your career, you will at times have a huge appetite for growth. Then that will go down, things will change. Something may happen with personal life, or just be, you just went through a major growth spurt and now you’re like, “I need to settle.” That’s fine. Use the values to set your boundaries. Pay attention to the flow of your life. I remember one time I was a new manager and a female software engineer, she was a senior software engineer. I was like, “Come on, let’s talk about getting you to staff.” She looked at me, and she said, “I have two small kids, I’m not going to staff.” I’m like, “Never mind.” Three years later, she was ready, once they were in school.

Use the set part of your career to also remember, you are now in a phase where it is more important for you to teach, educate. Use those code reviews to leave a lasting artifact of teaching for others to discover. Start with seeking to understand. Remember we talked about inclusiveness. People don’t think the same way. Some people’s approach is very different. They may all come to the same conclusion, or some of them because they’re thinking very differently, may come to a very different conclusion. Seek to understand people’s approaches. As well as once you can start that discussion, you now discover, how are they comfortable learning. That’s an important thing to do. You’re going to have a greater impact on people and their transformations. Then this last stage, it’s not about me. I’m not the expert. I learn more from my team and other teams than I could possibly know. It gives me a chance to go, I can go back to playing like I did early in my career. I can go back to learning as much as I want. I can actually bring clarity to what we’re trying to solve, because I’m asking questions, because I don’t understand. Always be building and learning and paying it forward. Because at this stage of your career, when you get to really strong leaders, it’s not about their transformation. It’s about how they helped others to transform. It’s about how they help teams to transform. In the end, that transforms the business.

Weathering Tech Industry Ups and Downs, and Learnings

These values, why is this culture value thing so important? The tech industry isn’t infallible. In 42 years, I’ve been through at least tech downturns, three of them. Probably more. I’ve been in the business so long, it’s ok for me to forget some of them. First one was in 2003, the dot-com bust. This was really the tech industry. In 2003, some of you will remember and some of you will be like, “I don’t know what she’s talking about. I was born in 2004.” There was an approach to startups where you had to start with $5 million, $10 million. It was based on the valuation. That’s how the VCs figured out how they were going to value your company. What was your most recent valuation? Over 100 tech companies actually didn’t make it through that bust. The VCs learned during this time that they needed to be much more pragmatic. They needed to change how they value companies. They need to look at the founders more closely. They need to look at how things are being managed more closely. They started measuring startups by burn rate. The founders started realizing, when I go ask for money, and I need money, I don’t get money as easily than when I don’t need money. They started learning from that as well.

Ok, go forward, 2007, 2009. Most of you have lived through that. Maybe not as closely as some of us did. Global Financial Crisis. This wasn’t just tech. They were closing down banks. There were bank takeovers. I worked for a company, a startup, and Sequoia was our major investor. Our CEO had been CEO for three or four months, he was a brand-new CEO. Sequoia called in all the CEOs of the startups, when the Global Financial Crisis kicked off. If you haven’t seen it, Google it, it’s their infamous Rest in Peace Good Times. They made it very clear, money wasn’t coming for at least two years. This was a pretty big financial crisis. Many people got laid off in many industries across the globe. What came out of this one was interesting. Engineers vote with their feet, they find something new to do. They’re innovative. They’re creative. If I can’t find a job, I’m just going to go do a startup. That happened a lot. In the Bay Area alone, in 2010, there were 280-plus startups founded in one year. Angel investment went through the roof. I don’t need that $5 million to 10 million anymore, I can just do this, just give me $600,000 to start with. That’ll get me and my two founders off the road for like a year and a half, and we can build something. Then the other interesting thing was, I can’t afford a data center, and I don’t want to buy a server. I actually don’t even know if I want an office, but I can very cheaply spin this up in AWS Cloud. People started architecting for the cloud, not the thinking that, “I’ve got this in my data center, I’ll just move it to the cloud.” When you start architecting for the cloud, you are building distributed systems. You are building something very interesting. You are building something that allows you to scale with less boundaries. AWS revenue through this whole thing did really well, it helped them take off immensely.

We get to now, 2023 state of tech. VC money has dropped again. Over 170,000 tech workers were laid off according to Crunchbase, between 2022 and 2023. The most important part is we’re going to see these ups and downs. We may have to pivot. We may have to refocus our team. We may have to, unfortunately, sometimes shrink. We may have to take advantage of it and grow. The culture and the values should be the same, and they should help guide you through these difficult times. It helps you make those difficult decisions. It helps in having the conversations about the difficult options, and where should we take this. One other thing, we talked about inclusion. I just read, Harvard did a study for 85 years. That’s longer than I’ve been in this business by two. The study was about, what is really most important? Is it purpose, or is it money? Turned out, consistently, purpose was far more important than money, regardless of the age, regardless of the gender, regardless of the person. Purpose allowed people to, one, better choose what they want to work on, where they want to work, who they want to work with. Make sure that they have the same culture, they believe in the same mission. It ended up that purpose had a huge benefit for people, in the fact that they were happier, they were more satisfied. It was an even better reason to get up and work on that mission every day. If you’re doing a job interview, and if you’re me, and you’re like, tell me about the culture. Then you ask the question 15 different ways because you’re doing the lawyer thing. You’re trying to catch somebody up and hear a different answer. Ask them about what purpose do they want to have in their lives. What do they think? This should lead directly back to that mission. It will lead back to the culture. That’s an important point, because when those things match, the impact you, the team, the business can have, is much bigger than any of us think. Why does it take 85 years to do that study? I’m not sure.

Conclusion

Just to round this out, keys to success during challenging times. You realize that these are grounding rules for you not just living your life, but how am I going to make the best out of my career? How am I going to feel I am actually impacting not just me, not just the team, not just the business, but hopefully others as well. This is an important one, I think this is really good. We’ve had people go back and forth on this, which is, dream big. If I dream big, I might not be able to achieve it. If you don’t dream big and you can’t achieve it, did you just limit yourself? Did you just limit the team? What if you dreamt big and you only got 50% of the way there? Still pretty good. When you get 50% of the way there, you might see the path to get to the other 50% of the way there. Don’t be afraid to dream big. Don’t be afraid to make those statements. Culture reinforces how we work together. Remember I talked about that third phase of my career. It is not unusual for people in the first and second phase to think, the CTO is an expert at everything. Truth is, the CTO is an expert at nothing. They have so much they have to do. You have to enter into discussion, seek to understand what they actually know, what they are seeking to learn, to help them and to educate them. When somebody in a leadership position asks you a question, it should not be, I have the answer for you. It should be, can you set that context for me? I’m trying to understand better what you’re trying to work through to get an answer to. Then, think about it. Spend some time, write down where you want to make an impact. Write down your purpose. Think about your values. Use them. Be clear about them with people. Don’t hide them. Use them to evaluate your next opportunities, because you’ll end up like me, when they don’t match, I’m trying to manage me out, or they’re trying to manage me out.

See more presentations with transcripts

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


ASP.NET Core Updates in .NET 9 Preview 4: Support for OpenAI Doc Generation, HybridCache and More

MMS Founder
MMS Robert Krzaczynski

Article originally posted on InfoQ. Visit InfoQ

Microsoft released .NET 9 Preview 4 which contains features regarding ASP.NET Core: built-in support for OpenAPI document generation, HybridCache API, and adding static SSR pages to a globally-interactive Blazor Web app. There is also an improvement implemented to avoid 503 errors during an app recycle in IIS.

The OpenAPI specification is a standard for describing HTTP APIs, enabling integration with client and server generators, testing tools, and documentation. In .NET 9 Preview 4, ASP.NET Core includes built-in support for generating OpenAPI documents for both controller-based and minimal APIs using the Microsoft.AspNetCore.OpenApi package. To take advantage of this feature, the mentioned package should be installed in the relevant web project.

dotnet add package Microsoft.AspNetCore.OpenApi --prerelease

ASP.NET Core’s built-in OpenAPI document generation includes support for customizations such as document and operation transformers and the ability to manage multiple OpenAPI documents for a single application. More information about these capabilities is available in the Microsoft.AspNetCore.OpenApi documentation.

Furthermore, .NET 9 Preview 4 introduces the new HybridCache API, addressing gaps in the existing IDistributedCache and IMemoryCache APIs and adding features such as “stampede” protection and configurable serialization. HybridCache uses a multi-tier cache storage system, combining a limited in-process cache with a larger out-of-process cache. This approach provides data retrieval from the in-process cache while preventing backend overload for less frequently accessed data. HybridCache is designed to be a drop-in replacement for most IDistributedCache scenarios.

HybridCache includes support for older .NET runtimes down to .NET Framework 4.7.2 and .NET Standard 2.0.

Blazor Web apps can enable global interactivity, allowing all pages in the app to use an interactive render mode: Server, WebAssembly, or Auto. Pages can now opt out of this global interactivity using the new [ExcludeFromInteractiveRouting] attribute. This attribute causes navigations to the page to exit from interactive routing, forcing a full-page reload. Consequently, the top-level App.razor will re-run, enabling a switch to a different top-level render mode.

In order to avoid 503 errors during an app recycle in IIS, a default one-second delay is now implemented between IIS notification and ASP.NET Core Module (ANCM) initiation of server shutdown. This delay minimizes race conditions between queuing requests to the new app and rejecting requests to the old app. For slower or CPU-heavy machines, adjusting the delay duration via the ANCM_shutdownDelay environment variable or the shutdownDelay handler setting is recommended.

Further details on the new features in this preview can be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


ASP.NET Core Updates in .NET 9 Preview 4: Support for OpenAI Doc Generation, HybridCache and More

MMS Founder
MMS Robert Krzaczynski

Article originally posted on InfoQ. Visit InfoQ

Microsoft released .NET 9 Preview 4 which contains features regarding ASP.NET Core: built-in support for OpenAPI document generation, HybridCache API, and adding static SSR pages to a globally-interactive Blazor Web app. There is also an improvement implemented to avoid 503 errors during an app recycle in IIS.

The OpenAPI specification is a standard for describing HTTP APIs, enabling integration with client and server generators, testing tools, and documentation. In .NET 9 Preview 4, ASP.NET Core includes built-in support for generating OpenAPI documents for both controller-based and minimal APIs using the Microsoft.AspNetCore.OpenApi package. To take advantage of this feature, the mentioned package should be installed in the relevant web project.

dotnet add package Microsoft.AspNetCore.OpenApi --prerelease

ASP.NET Core’s built-in OpenAPI document generation includes support for customizations such as document and operation transformers and the ability to manage multiple OpenAPI documents for a single application. More information about these capabilities is available in the Microsoft.AspNetCore.OpenApi documentation.

Furthermore, .NET 9 Preview 4 introduces the new HybridCache API, addressing gaps in the existing IDistributedCache and IMemoryCache APIs and adding features such as “stampede” protection and configurable serialization. HybridCache uses a multi-tier cache storage system, combining a limited in-process cache with a larger out-of-process cache. This approach provides data retrieval from the in-process cache while preventing backend overload for less frequently accessed data. HybridCache is designed to be a drop-in replacement for most IDistributedCache scenarios.

HybridCache includes support for older .NET runtimes down to .NET Framework 4.7.2 and .NET Standard 2.0.

Blazor Web apps can enable global interactivity, allowing all pages in the app to use an interactive render mode: Server, WebAssembly, or Auto. Pages can now opt out of this global interactivity using the new [ExcludeFromInteractiveRouting] attribute. This attribute causes navigations to the page to exit from interactive routing, forcing a full-page reload. Consequently, the top-level App.razor will re-run, enabling a switch to a different top-level render mode.

In order to avoid 503 errors during an app recycle in IIS, a default one-second delay is now implemented between IIS notification and ASP.NET Core Module (ANCM) initiation of server shutdown. This delay minimizes race conditions between queuing requests to the new app and rejecting requests to the old app. For slower or CPU-heavy machines, adjusting the delay duration via the ANCM_shutdownDelay environment variable or the shutdownDelay handler setting is recommended.

Further details on the new features in this preview can be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


What’s New in C# 13: Enhanced Params, Performance Boosts, and New Extension Types

MMS Founder
MMS Almir Vuk

Article originally posted on InfoQ. Visit InfoQ

Last week, during the Microsoft Build 2024, Microsoft announced the new preview features of C# 13, the latest version of the popular .NET programming language. As the most notable improvements to params parameters, the new extension types are announced, and the release includes several performance and memory enhancements for .NET developers.

In C# 13, the params keyword is no longer limited to arrays. When used before a parameter, params allow a method to accept a comma-separated list of zero or more values, which are placed in a collection of the specified type.

Now, the params parameter type can be any collection type compatible with collection expressions, such as List, Span, and IEnumerable. It is stated that custom collection types can also be used if they follow specific guidelines.

void PrintList(params IEnumerable list) 
    => Console.WriteLine(string.Join(", ", list));

PrintList("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

// prints "Sun, Mon, Tue, Wed, Thu, Fri, Sat"

Furthermore, performance enhancements were a key focus in C# 13, particularly with the use of System.Span and System.ReadOnlySpan, which as stated helps reduce memory allocations.

Now, the values passed to the params parameter are implicitly converted to the span type, which as reported ensures the most efficient method is selected, especially when overloaded methods differ by span or array usage.

The official blog post states the following:

Many of the methods of the .NET Runtime are being updated to accept params Span, so your applications will run faster, even if you don’t directly use spans. This is part of our ongoing effort to make C# faster and more reliable. It’s also an example of the attention we give to ensuring various C# features work well together.

C# 13 also enhances params support for interfaces. When an interface is specified as a parameter type, it indicates a requirement for any implementing type. The compiler can choose the best available type that fulfils the interface, potentially using an existing type or creating one as needed.

As explained, this design ensures that dependencies on the underlying concrete collection type are minimized, allowing for flexibility and optimization. The compiler’s ability to select the optimal concrete type when a list of values or a collection expression is passed further enhances the efficiency and adaptability of the code.

The announcement of the future addition is related to Extension types which in C# 13 will be expanded by providing additional methods, properties, and members to underlying types. These extension types can be implicit, applying to all instances of the underlying type, or explicit, applying only to instances explicitly converted to the extension type.

The original announcement blog post received a few interesting ideas about improvements and suggestions for C# language, and based on different threads and forums overall community feedback is positive, with a note and written excitement about Extension types, which seems to be a liked feature by the community.

The official Microsoft Build website also publicised the session recording with the title What’s New in C# 13 and it is highly recommended that developers watch it. Other C# additions are related to the new lock object, new escape sequence, method group natural type and Implicit index access

Lastly, readers can find more about the available C# 13 features on the official language documentation page.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


What’s New in C# 13: Enhanced Params, Performance Boosts, and New Extension Types

MMS Founder
MMS Almir Vuk

Article originally posted on InfoQ. Visit InfoQ

Last week, during the Microsoft Build 2024, Microsoft announced the new preview features of C# 13, the latest version of the popular .NET programming language. As the most notable improvements to params parameters, the new extension types are announced, and the release includes several performance and memory enhancements for .NET developers.

In C# 13, the params keyword is no longer limited to arrays. When used before a parameter, params allow a method to accept a comma-separated list of zero or more values, which are placed in a collection of the specified type.

Now, the params parameter type can be any collection type compatible with collection expressions, such as List, Span, and IEnumerable. It is stated that custom collection types can also be used if they follow specific guidelines.

void PrintList(params IEnumerable list) 
    => Console.WriteLine(string.Join(", ", list));

PrintList("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

// prints "Sun, Mon, Tue, Wed, Thu, Fri, Sat"

Furthermore, performance enhancements were a key focus in C# 13, particularly with the use of System.Span and System.ReadOnlySpan, which as stated helps reduce memory allocations.

Now, the values passed to the params parameter are implicitly converted to the span type, which as reported ensures the most efficient method is selected, especially when overloaded methods differ by span or array usage.

The official blog post states the following:

Many of the methods of the .NET Runtime are being updated to accept params Span, so your applications will run faster, even if you don’t directly use spans. This is part of our ongoing effort to make C# faster and more reliable. It’s also an example of the attention we give to ensuring various C# features work well together.

C# 13 also enhances params support for interfaces. When an interface is specified as a parameter type, it indicates a requirement for any implementing type. The compiler can choose the best available type that fulfils the interface, potentially using an existing type or creating one as needed.

As explained, this design ensures that dependencies on the underlying concrete collection type are minimized, allowing for flexibility and optimization. The compiler’s ability to select the optimal concrete type when a list of values or a collection expression is passed further enhances the efficiency and adaptability of the code.

The announcement of the future addition is related to Extension types which in C# 13 will be expanded by providing additional methods, properties, and members to underlying types. These extension types can be implicit, applying to all instances of the underlying type, or explicit, applying only to instances explicitly converted to the extension type.

The original announcement blog post received a few interesting ideas about improvements and suggestions for C# language, and based on different threads and forums overall community feedback is positive, with a note and written excitement about Extension types, which seems to be a liked feature by the community.

The official Microsoft Build website also publicised the session recording with the title What’s New in C# 13 and it is highly recommended that developers watch it. Other C# additions are related to the new lock object, new escape sequence, method group natural type and Implicit index access

Lastly, readers can find more about the available C# 13 features on the official language documentation page.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Kubernetes Gateway API v1.1 Released: New Standard Features and Experimental Enhancements

MMS Founder
MMS Claudio Masolo

Article originally posted on InfoQ. Visit InfoQ

The Kubernetes SIG Network announced the version 1.1 of Gateway API. This update sees several key features moving to the Standard Channel (GA), including support for service mesh and GRPCRoute. Additionally, new experimental features such as session persistence and client certificate verification have been introduced.

The v1.1 release marks the transition of four highly anticipated features from experimental to Standard. This signifies confidence in the API’s stability and provides backward compatibility guarantees. Standard Channel features will continue to evolve with backward-compatible enhancements.

Gateway API now supports service mesh, enabling users to manage both ingress and mesh traffic with a unified API. Routes like HTTPRoute can now reference a Service as a parentRef, allowing for precise traffic control to specific services. To go deeper into this feature, check out the Gateway API documentation.

A possible implementation of canary deployment with HTTPRoute is the following:

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: color-canary
  namespace: faces
spec:
  parentRefs:
    - name: color
      kind: Service
      group: ""
      port: 80
  rules:
  - backendRefs:
    - name: color
      port: 80
      weight: 50
    - name: color2
      port: 80
      weight: 50

This configuration splits traffic 50/50 between the original color Service and the color2 Service in the faces namespace.

GRPCRoute has been part of the Standard Channel since v1.1.0. For users of the experimental channel, it is recommended to wait for controller updates before upgrading to the standard channel version. Meanwhile, the experimental channel version in v1.1 includes both v1alpha2 and v1 API versions.

HTTPRoute is a Gateway API type for specifying routing behavior of HTTP requests. Each Route provides a method to reference the parent resources it intends to attach to. Typically, this will be Gateways, but implementations have the flexibility to support other types of parent resources as well. The port field has been added to ParentReference, allowing resources to be attached to Gateway Listeners, Services, or other parent resources by specifying the port. This enables attachment to multiple Listeners simultaneously.

Example of attaching an HTTPRoute to specific Gateway Listeners by port:

apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
  name: httproute-example
spec:
  parentRefs:
  - name: acme-lb
    port: 8080

Note that the target Gateway needs to allow HTTPRoutes from the route’s namespace to be attached for the attachment to be successful and binding to a port also allows attaching to multiple listeners at once

The conformance report API now includes the mode field and gatewayAPIChannel (standard or experimental). The gatewayAPIVersion and gatewayAPIChannel are automatically populated, and the reports are better structured, allowing implementations to include testing details and reproduction steps.

A new addition to the experimental channel is about Gateways. In particular, it is now possible to configure client certificate verification for each Gateway Listener using the new frontendValidation field within TLS. This field allows the configuration of CA Certificates to validate client certificates.

An example of configuration is the following:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: client-validation-basic
spec:
  gatewayClassName: acme-lb
  listeners:
    name: foo-https
    protocol: HTTPS
    port: 443
    hostname: foo.example.com
  tls:
    certificateRefs:
      kind: Secret
      group: ""
      name: foo-example-com-cert
    frontendValidation:
      caCertificateRefs:
        kind: ConfigMap
        group: ""
        name: foo-example-com-ca-cert

Another new addition to the experimental channel is Session persistence. It is introduced via a new policy (BackendLBPolicy) for Service-level configuration and as fields within HTTPRoute and GRPCRoute for route-level configuration. These settings include session timeouts, session name, session type, and cookie lifetime.

An Example of BackendLBPolicy configuration for cookie-based session persistence is the following:

apiVersion: gateway.networking.k8s.io/v1alpha2
kind: BackendLBPolicy
metadata:
  name: lb-policy
  namespace: foo-ns
spec:
  targetRefs:
  - group: core
    kind: service
    name: foo
  sessionPersistence:
    sessionName: foo-session
    absoluteTimeout: 1h
    idleTimeout: 30m
    type: Cookie
    cookieConfig:
      lifetimeType: Session

To ensure consistent TLS terminology, breaking changes have been made to BackendTLSPolicy, resulting in a new API version (v1alpha3). Implementations must handle this version upgrade by updating references and configurations accordingly.

Other notable changes:

  • targetRef becomes targetRefs
  • tls becomes validation
  • tls.caCertRefs becomes validation.caCertificateRefs
  • tls.wellKnownCACerts becomes validation.wellKnownCACertificates

Unlike other Kubernetes APIs, upgrading to the latest Kubernetes version isn’t necessary to use the newest Gateway API. As long the cluster is on Kubernetes 1.26 or later, it is possible to start using the latest Gateway API right away.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Kubernetes Gateway API v1.1 Released: New Standard Features and Experimental Enhancements

MMS Founder
MMS Claudio Masolo

Article originally posted on InfoQ. Visit InfoQ

The Kubernetes SIG Network announced the version 1.1 of Gateway API. This update sees several key features moving to the Standard Channel (GA), including support for service mesh and GRPCRoute. Additionally, new experimental features such as session persistence and client certificate verification have been introduced.

The v1.1 release marks the transition of four highly anticipated features from experimental to Standard. This signifies confidence in the API’s stability and provides backward compatibility guarantees. Standard Channel features will continue to evolve with backward-compatible enhancements.

Gateway API now supports service mesh, enabling users to manage both ingress and mesh traffic with a unified API. Routes like HTTPRoute can now reference a Service as a parentRef, allowing for precise traffic control to specific services. To go deeper into this feature, check out the Gateway API documentation.

A possible implementation of canary deployment with HTTPRoute is the following:

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: color-canary
  namespace: faces
spec:
  parentRefs:
    - name: color
      kind: Service
      group: ""
      port: 80
  rules:
  - backendRefs:
    - name: color
      port: 80
      weight: 50
    - name: color2
      port: 80
      weight: 50

This configuration splits traffic 50/50 between the original color Service and the color2 Service in the faces namespace.

GRPCRoute has been part of the Standard Channel since v1.1.0. For users of the experimental channel, it is recommended to wait for controller updates before upgrading to the standard channel version. Meanwhile, the experimental channel version in v1.1 includes both v1alpha2 and v1 API versions.

HTTPRoute is a Gateway API type for specifying routing behavior of HTTP requests. Each Route provides a method to reference the parent resources it intends to attach to. Typically, this will be Gateways, but implementations have the flexibility to support other types of parent resources as well. The port field has been added to ParentReference, allowing resources to be attached to Gateway Listeners, Services, or other parent resources by specifying the port. This enables attachment to multiple Listeners simultaneously.

Example of attaching an HTTPRoute to specific Gateway Listeners by port:

apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
  name: httproute-example
spec:
  parentRefs:
  - name: acme-lb
    port: 8080

Note that the target Gateway needs to allow HTTPRoutes from the route’s namespace to be attached for the attachment to be successful and binding to a port also allows attaching to multiple listeners at once

The conformance report API now includes the mode field and gatewayAPIChannel (standard or experimental). The gatewayAPIVersion and gatewayAPIChannel are automatically populated, and the reports are better structured, allowing implementations to include testing details and reproduction steps.

A new addition to the experimental channel is about Gateways. In particular, it is now possible to configure client certificate verification for each Gateway Listener using the new frontendValidation field within TLS. This field allows the configuration of CA Certificates to validate client certificates.

An example of configuration is the following:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: client-validation-basic
spec:
  gatewayClassName: acme-lb
  listeners:
    name: foo-https
    protocol: HTTPS
    port: 443
    hostname: foo.example.com
  tls:
    certificateRefs:
      kind: Secret
      group: ""
      name: foo-example-com-cert
    frontendValidation:
      caCertificateRefs:
        kind: ConfigMap
        group: ""
        name: foo-example-com-ca-cert

Another new addition to the experimental channel is Session persistence. It is introduced via a new policy (BackendLBPolicy) for Service-level configuration and as fields within HTTPRoute and GRPCRoute for route-level configuration. These settings include session timeouts, session name, session type, and cookie lifetime.

An Example of BackendLBPolicy configuration for cookie-based session persistence is the following:

apiVersion: gateway.networking.k8s.io/v1alpha2
kind: BackendLBPolicy
metadata:
  name: lb-policy
  namespace: foo-ns
spec:
  targetRefs:
  - group: core
    kind: service
    name: foo
  sessionPersistence:
    sessionName: foo-session
    absoluteTimeout: 1h
    idleTimeout: 30m
    type: Cookie
    cookieConfig:
      lifetimeType: Session

To ensure consistent TLS terminology, breaking changes have been made to BackendTLSPolicy, resulting in a new API version (v1alpha3). Implementations must handle this version upgrade by updating references and configurations accordingly.

Other notable changes:

  • targetRef becomes targetRefs
  • tls becomes validation
  • tls.caCertRefs becomes validation.caCertificateRefs
  • tls.wellKnownCACerts becomes validation.wellKnownCACertificates

Unlike other Kubernetes APIs, upgrading to the latest Kubernetes version isn’t necessary to use the newest Gateway API. As long the cluster is on Kubernetes 1.26 or later, it is possible to start using the latest Gateway API right away.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Fullstack TypeScript on AWS: Amplify Gen 2 Now Generally Available

MMS Founder
MMS Renato Losio

Article originally posted on InfoQ. Visit InfoQ

AWS has recently announced the general availability of Amplify Gen 2, a “code-first developer experience” that enables TypeScript and JavaScript developers to build and deploy fullstack applications on AWS. Since its public preview at the re:Invent conference, Amplify Gen 2 has added new features, including support for TypeScript functions with environment variables, storage support, and custom domains.

AWS Amplify helps developers host web applications and build and connect to a cloud backend. The new version allows developers to write requirements such as data models, business logic, and authorization rules in TypeScript, with the cloud infrastructure automatically provisioned without explicit infrastructure definitions. Rene Brandel, principal product manager – technical at AWS, and Ali Spittel, head of developer advocacy and education at AWS Amplify, write:

With Amplify Gen 2, every part of your app’s cloud backend is defined in TypeScript. Need an Auth backend? TypeScript. Data backend? TypeScript. Storage backend? TypeScript. Everything is defined in TypeScript.

According to AWS, the new release includes a code-first developer experience that avoids the friction of CLI tools and enables AI assistance from services like Amazon Q Developer. It provides tools and features to help developers configure and integrate various AWS services to support use cases such as user authentication, real-time data, and file storage. In the announcement of the preview, Nikhil Swaminathan, head of product at AWS Amplify, explained the main difference between the first version and the new one:

The first generation of the tooling offered a tooling-first experience, using a CLI/Console-based interactive workflow to create a backend. Gen 2 transitions to a code-first DX, allowing developers to succinctly express app requirements like data models, business logic, and authorization rules in TypeScript.

Originally launched in 2017, AWS Amplify has evolved to include the Amplify CLI, a command line tool to help developers build app backends, Amplify Studio, a visual interface, and Amplify Hosting, a service to deploy server-side rendered apps, static apps, and Single Page Applications (SPAs). Brandel and Spittel describe the main benefit of the new DX:

TypeScript is the popular programming language that spans across the spectrum from frontend to backend. The beauty of the TypeScript community is that your options are effectively endless. You can compose and recompose, pick and choose, adjust, modify, and iterate on “just the right stack” for your use case.

In the article “AWS Amplify in 2024 is not the Amplify you grew up with“, Michael Liendo senior developer advocate at AWS, explains:

Amplify Gen 2 in your CLI and code editor also brings enhancements to the Hosting platform as well! For starters, it’s now possible to have wildcard subdomains on your domain name. This, along with enhanced server-side rendering support means it’s now possible to have true multi-tenant applications hosted on Amplify.

In a separate article, the cloud provider describes the progression of full-stack web development and shows the development evolution with AWS Amplify over the past few years. Allen Helton, ecosystem engineer at Momento, writes in his newsletter:

I tried this out the other day and can say with confidence – this is an extremely easy way to build full-stack applications. I love how easy the team has made it to build small to medium-sized apps.

The general availability includes integration guides for AI/ML services (Bedrock, Translate, Polly, and Rekognition) and Auth enhancements such as support for multiple OIDC providers, and user groups, and granting access to other AWS resources.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Fullstack TypeScript on AWS: Amplify Gen 2 Now Generally Available

MMS Founder
MMS Renato Losio

Article originally posted on InfoQ. Visit InfoQ

AWS has recently announced the general availability of Amplify Gen 2, a “code-first developer experience” that enables TypeScript and JavaScript developers to build and deploy fullstack applications on AWS. Since its public preview at the re:Invent conference, Amplify Gen 2 has added new features, including support for TypeScript functions with environment variables, storage support, and custom domains.

AWS Amplify helps developers host web applications and build and connect to a cloud backend. The new version allows developers to write requirements such as data models, business logic, and authorization rules in TypeScript, with the cloud infrastructure automatically provisioned without explicit infrastructure definitions. Rene Brandel, principal product manager – technical at AWS, and Ali Spittel, head of developer advocacy and education at AWS Amplify, write:

With Amplify Gen 2, every part of your app’s cloud backend is defined in TypeScript. Need an Auth backend? TypeScript. Data backend? TypeScript. Storage backend? TypeScript. Everything is defined in TypeScript.

According to AWS, the new release includes a code-first developer experience that avoids the friction of CLI tools and enables AI assistance from services like Amazon Q Developer. It provides tools and features to help developers configure and integrate various AWS services to support use cases such as user authentication, real-time data, and file storage. In the announcement of the preview, Nikhil Swaminathan, head of product at AWS Amplify, explained the main difference between the first version and the new one:

The first generation of the tooling offered a tooling-first experience, using a CLI/Console-based interactive workflow to create a backend. Gen 2 transitions to a code-first DX, allowing developers to succinctly express app requirements like data models, business logic, and authorization rules in TypeScript.

Originally launched in 2017, AWS Amplify has evolved to include the Amplify CLI, a command line tool to help developers build app backends, Amplify Studio, a visual interface, and Amplify Hosting, a service to deploy server-side rendered apps, static apps, and Single Page Applications (SPAs). Brandel and Spittel describe the main benefit of the new DX:

TypeScript is the popular programming language that spans across the spectrum from frontend to backend. The beauty of the TypeScript community is that your options are effectively endless. You can compose and recompose, pick and choose, adjust, modify, and iterate on “just the right stack” for your use case.

In the article “AWS Amplify in 2024 is not the Amplify you grew up with“, Michael Liendo senior developer advocate at AWS, explains:

Amplify Gen 2 in your CLI and code editor also brings enhancements to the Hosting platform as well! For starters, it’s now possible to have wildcard subdomains on your domain name. This, along with enhanced server-side rendering support means it’s now possible to have true multi-tenant applications hosted on Amplify.

In a separate article, the cloud provider describes the progression of full-stack web development and shows the development evolution with AWS Amplify over the past few years. Allen Helton, ecosystem engineer at Momento, writes in his newsletter:

I tried this out the other day and can say with confidence – this is an extremely easy way to build full-stack applications. I love how easy the team has made it to build small to medium-sized apps.

The general availability includes integration guides for AI/ML services (Bedrock, Translate, Polly, and Rekognition) and Auth enhancements such as support for multiple OIDC providers, and user groups, and granting access to other AWS resources.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.