Category: Uncategorized

MMS • RSS
Posted on mongodb google news. Visit mongodb google news
Thrivent Financial for Lutherans increased its stake in MongoDB, Inc. (NASDAQ:MDB – Free Report) by 1,098.1% in the second quarter, according to the company in its most recent Form 13F filing with the Securities & Exchange Commission. The fund owned 424,402 shares of the company’s stock after buying an additional 388,979 shares during the quarter. Thrivent Financial for Lutherans owned about 0.58% of MongoDB worth $106,084,000 as of its most recent SEC filing.
A number of other institutional investors also recently bought and sold shares of MDB. Jennison Associates LLC lifted its position in MongoDB by 14.3% in the first quarter. Jennison Associates LLC now owns 4,408,424 shares of the company’s stock worth $1,581,037,000 after buying an additional 551,567 shares during the last quarter. Swedbank AB increased its stake in MongoDB by 156.3% in the second quarter. Swedbank AB now owns 656,993 shares of the company’s stock worth $164,222,000 after purchasing an additional 400,705 shares during the period. Axiom Investors LLC DE purchased a new stake in MongoDB in the fourth quarter worth $153,990,000. Clearbridge Investments LLC increased its stake in MongoDB by 109.0% in the first quarter. Clearbridge Investments LLC now owns 445,084 shares of the company’s stock worth $159,625,000 after purchasing an additional 232,101 shares during the period. Finally, First Trust Advisors LP increased its stake in MongoDB by 59.3% in the fourth quarter. First Trust Advisors LP now owns 549,052 shares of the company’s stock worth $224,480,000 after purchasing an additional 204,284 shares during the period. 89.29% of the stock is currently owned by institutional investors.
MongoDB Price Performance
Shares of NASDAQ MDB opened at $278.45 on Friday. The company has a debt-to-equity ratio of 0.84, a quick ratio of 5.03 and a current ratio of 5.03. The company has a market cap of $20.42 billion, a PE ratio of -99.09 and a beta of 1.15. The business has a 50-day simple moving average of $259.06 and a two-hundred day simple moving average of $297.93. MongoDB, Inc. has a fifty-two week low of $212.74 and a fifty-two week high of $509.62.
MongoDB (NASDAQ:MDB – Get Free Report) last issued its quarterly earnings results on Thursday, August 29th. The company reported $0.70 earnings per share for the quarter, topping the consensus estimate of $0.49 by $0.21. The business had revenue of $478.11 million during the quarter, compared to the consensus estimate of $465.03 million. MongoDB had a negative return on equity of 15.06% and a negative net margin of 12.08%. The company’s quarterly revenue was up 12.8% on a year-over-year basis. During the same quarter last year, the company earned ($0.63) earnings per share. As a group, equities analysts expect that MongoDB, Inc. will post -2.46 EPS for the current fiscal year.
Insiders Place Their Bets
In other MongoDB news, CRO Cedric Pech sold 273 shares of the firm’s stock in a transaction dated Tuesday, July 2nd. The stock was sold at an average price of $265.29, for a total value of $72,424.17. Following the completion of the sale, the executive now owns 35,719 shares of the company’s stock, valued at $9,475,893.51. The sale was disclosed in a filing with the SEC, which is available through this hyperlink. In related news, CRO Cedric Pech sold 273 shares of MongoDB stock in a transaction dated Tuesday, July 2nd. The stock was sold at an average price of $265.29, for a total transaction of $72,424.17. Following the completion of the sale, the executive now owns 35,719 shares of the company’s stock, valued at $9,475,893.51. The transaction was disclosed in a filing with the Securities & Exchange Commission, which is available at the SEC website. Also, CAO Thomas Bull sold 138 shares of MongoDB stock in a transaction dated Tuesday, July 2nd. The stock was sold at an average price of $265.29, for a total value of $36,610.02. Following the sale, the chief accounting officer now directly owns 17,222 shares of the company’s stock, valued at approximately $4,568,824.38. The disclosure for this sale can be found here. Over the last 90 days, insiders sold 32,005 shares of company stock valued at $8,082,746. 3.60% of the stock is currently owned by corporate insiders.
Analysts Set New Price Targets
A number of analysts have weighed in on MDB shares. Guggenheim upgraded MongoDB from a “sell” rating to a “neutral” rating in a research note on Monday, June 3rd. Tigress Financial reduced their target price on MongoDB from $500.00 to $400.00 and set a “buy” rating on the stock in a research note on Thursday, July 11th. Mizuho increased their target price on MongoDB from $250.00 to $275.00 and gave the stock a “neutral” rating in a research note on Friday, August 30th. Scotiabank increased their target price on MongoDB from $250.00 to $295.00 and gave the stock a “sector perform” rating in a research note on Friday, August 30th. Finally, Robert W. Baird cut their price target on MongoDB from $450.00 to $305.00 and set an “outperform” rating on the stock in a research note on Friday, May 31st. One equities research analyst has rated the stock with a sell rating, five have assigned a hold rating and twenty have assigned a buy rating to the stock. According to data from MarketBeat.com, MongoDB presently has a consensus rating of “Moderate Buy” and an average price target of $337.56.
View Our Latest Stock Report on MongoDB
About MongoDB
MongoDB, Inc, together with its subsidiaries, provides general purpose database platform worldwide. The company provides MongoDB Atlas, a hosted multi-cloud database-as-a-service solution; MongoDB Enterprise Advanced, a commercial database server for enterprise customers to run in the cloud, on-premises, or in a hybrid environment; and Community Server, a free-to-download version of its database, which includes the functionality that developers need to get started with MongoDB.
Featured Articles
Receive News & Ratings for MongoDB Daily – Enter your email address below to receive a concise daily summary of the latest news and analysts’ ratings for MongoDB and related companies with MarketBeat.com’s FREE daily email newsletter.
Article originally posted on mongodb google news. Visit mongodb google news

MMS • RSS
Posted on mongodb google news. Visit mongodb google news
Itau Unibanco Holding S.A. bought a new position in MongoDB, Inc. (NASDAQ:MDB – Free Report) in the 2nd quarter, according to its most recent Form 13F filing with the Securities & Exchange Commission. The fund bought 6,382 shares of the company’s stock, valued at approximately $1,595,000.
Several other hedge funds also recently modified their holdings of the business. Dimensional Fund Advisors LP boosted its holdings in MongoDB by 2.8% in the fourth quarter. Dimensional Fund Advisors LP now owns 91,696 shares of the company’s stock worth $37,495,000 after purchasing an additional 2,476 shares in the last quarter. Janney Montgomery Scott LLC boosted its stake in shares of MongoDB by 134.5% during the 4th quarter. Janney Montgomery Scott LLC now owns 3,905 shares of the company’s stock worth $1,597,000 after acquiring an additional 2,240 shares in the last quarter. Dynamic Technology Lab Private Ltd increased its holdings in shares of MongoDB by 36.8% during the 4th quarter. Dynamic Technology Lab Private Ltd now owns 1,183 shares of the company’s stock valued at $484,000 after acquiring an additional 318 shares during the last quarter. PNC Financial Services Group Inc. raised its stake in shares of MongoDB by 11.0% in the 4th quarter. PNC Financial Services Group Inc. now owns 2,746 shares of the company’s stock valued at $1,123,000 after acquiring an additional 272 shares in the last quarter. Finally, UBS Group AG lifted its holdings in MongoDB by 73.0% in the 4th quarter. UBS Group AG now owns 91,243 shares of the company’s stock worth $37,305,000 after purchasing an additional 38,509 shares during the last quarter. Institutional investors and hedge funds own 89.29% of the company’s stock.
Insider Buying and Selling at MongoDB
In other news, CAO Thomas Bull sold 138 shares of the company’s stock in a transaction dated Tuesday, July 2nd. The shares were sold at an average price of $265.29, for a total value of $36,610.02. Following the sale, the chief accounting officer now owns 17,222 shares of the company’s stock, valued at approximately $4,568,824.38. The transaction was disclosed in a legal filing with the SEC, which can be accessed through the SEC website. In other news, CAO Thomas Bull sold 138 shares of the business’s stock in a transaction that occurred on Tuesday, July 2nd. The stock was sold at an average price of $265.29, for a total value of $36,610.02. Following the transaction, the chief accounting officer now directly owns 17,222 shares of the company’s stock, valued at approximately $4,568,824.38. The sale was disclosed in a document filed with the Securities & Exchange Commission, which can be accessed through this hyperlink. Also, CFO Michael Lawrence Gordon sold 1,569 shares of the firm’s stock in a transaction on Tuesday, July 2nd. The shares were sold at an average price of $265.29, for a total value of $416,240.01. Following the sale, the chief financial officer now directly owns 81,942 shares of the company’s stock, valued at $21,738,393.18. The disclosure for this sale can be found here. Over the last three months, insiders sold 32,005 shares of company stock valued at $8,082,746. 3.60% of the stock is currently owned by company insiders.
MongoDB Stock Performance
NASDAQ MDB opened at $278.45 on Friday. MongoDB, Inc. has a twelve month low of $212.74 and a twelve month high of $509.62. The company has a quick ratio of 5.03, a current ratio of 5.03 and a debt-to-equity ratio of 0.84. The stock has a market cap of $20.42 billion, a P/E ratio of -99.09 and a beta of 1.15. The company’s 50-day simple moving average is $259.06 and its 200 day simple moving average is $297.93.
MongoDB (NASDAQ:MDB – Get Free Report) last released its quarterly earnings data on Thursday, August 29th. The company reported $0.70 earnings per share for the quarter, beating the consensus estimate of $0.49 by $0.21. The company had revenue of $478.11 million for the quarter, compared to analyst estimates of $465.03 million. MongoDB had a negative return on equity of 15.06% and a negative net margin of 12.08%. The company’s revenue was up 12.8% compared to the same quarter last year. During the same period in the prior year, the company posted ($0.63) EPS. As a group, research analysts forecast that MongoDB, Inc. will post -2.46 earnings per share for the current fiscal year.
Wall Street Analysts Forecast Growth
MDB has been the topic of several analyst reports. Mizuho increased their price target on MongoDB from $250.00 to $275.00 and gave the company a “neutral” rating in a report on Friday, August 30th. Scotiabank raised their target price on shares of MongoDB from $250.00 to $295.00 and gave the company a “sector perform” rating in a research note on Friday, August 30th. Morgan Stanley boosted their target price on shares of MongoDB from $320.00 to $340.00 and gave the stock an “overweight” rating in a research report on Friday, August 30th. JMP Securities reaffirmed a “market outperform” rating and issued a $380.00 price target on shares of MongoDB in a research report on Friday, August 30th. Finally, DA Davidson lifted their price objective on MongoDB from $265.00 to $330.00 and gave the stock a “buy” rating in a research note on Friday, August 30th. One analyst has rated the stock with a sell rating, five have given a hold rating and twenty have issued a buy rating to the company’s stock. Based on data from MarketBeat, MongoDB currently has an average rating of “Moderate Buy” and an average target price of $337.56.
Read Our Latest Report on MongoDB
About MongoDB
MongoDB, Inc, together with its subsidiaries, provides general purpose database platform worldwide. The company provides MongoDB Atlas, a hosted multi-cloud database-as-a-service solution; MongoDB Enterprise Advanced, a commercial database server for enterprise customers to run in the cloud, on-premises, or in a hybrid environment; and Community Server, a free-to-download version of its database, which includes the functionality that developers need to get started with MongoDB.
Featured Articles
Want to see what other hedge funds are holding MDB? Visit HoldingsChannel.com to get the latest 13F filings and insider trades for MongoDB, Inc. (NASDAQ:MDB – Free Report).
Receive News & Ratings for MongoDB Daily – Enter your email address below to receive a concise daily summary of the latest news and analysts’ ratings for MongoDB and related companies with MarketBeat.com’s FREE daily email newsletter.
Article originally posted on mongodb google news. Visit mongodb google news
Swift Testing is a New Framework from Apple to Modernize Testing for Swift Across Platforms

MMS • Sergio De Simone
Article originally posted on InfoQ. Visit InfoQ

While XCTest remains the preferred way to create tests in Xcode, the new Swift Testing framework attempts to introduce an expressive and intuitive API for the definition of tests that applies to all platform where Swift is supported. The framework also enables parametrizing, parallelizing, categorizing, and associating tests with bugs.
Swift Testing makes extensive use of macros to provide an idiomatic way to declare complex behaviors. For example, this is how you declare a test with a name and a set of alternative inputs it should be run against:
import Testing
...
@Test("Sample test", arguments: [
"input string 1",
"input string 2",
"input string 3"
])
func sampleTest(sampleInput: String) {
...
}
The above test will be executed three times, with each call receiving one of the provided arguments through the sampleInput
parameter. When parametrizing tests, you can also handle more than one input. In this case, you will provide a list of collections for @Test
‘s arguments
and the test function will take an argument from each collection for every possible combination of values from the two collections:
@Test("Multiple collections as test inputs", arguments: 0...100, ["a", ..., "z"])
func test(number: Int, letter: String) {
}
Under specific conditions for the arguments
type, it is possible to run parametrized tests selectively, so you do not have to run tests for all possible combinations of input values when just a few of them fail.
Besides optionally specifying a name and a list of arguments, the @Test
macro supports the possibility of associating traits to a test function. Existing traits make it possible to enable or disable tests based on a runtime condition, limit the running time of tests, run tests serially or in parallel, associate tests to bugs, and more. For example, this is how you can run a test only if a given app feature is enabled:
@Test(.enabled(if: App.ConditionToMatch))
func conditionalTest() {
...
}
Developers can also define their own traits by implementing types conforming to TestTrait.
Parametrizing tests has the additional advantage that the diagnostics produced in case of failure clearly indicates the input that failed.
Test functions can be organized into test suites. The traditional way of doing this is by placing them in the same test class
. Swift Testing also provides a specific macro to that aim, @Suite
. All test functions belonging to a test suite inherit the same traits from the suite, including tags(_:)
or disabled(_:sourceLocation:)
.
To validate test results, Swift Testing provides two macros expect(_:_:sourceLocation:)
and require(_:_:sourceLocation:)
. While require
stops the test execution when its condition is not met by throwing an exception, expect
prints detailed information.
One important caveat is test functions aren’t stripped from binaries when building for release. Due to this, Apple strongly advise to import the testing library into a test target not linked with your main executable.
Swift Testing is available on GitHub and on the Swift Package Index, and requires Swift 6. XCTest and Swift Testing can coexist in the same project, so you do not necessarily need to migrate your existing tests if you want to adopt the new framework.

MMS • RSS
Posted on mongodb google news. Visit mongodb google news
Octahedron Capital Management L.P. acquired a new position in MongoDB, Inc. (NASDAQ:MDB – Free Report) in the second quarter, according to its most recent disclosure with the Securities and Exchange Commission. The institutional investor acquired 2,100 shares of the company’s stock, valued at approximately $525,000. MongoDB makes up about 0.5% of Octahedron Capital Management L.P.’s investment portfolio, making the stock its 16th largest holding.
Other institutional investors and hedge funds have also recently added to or reduced their stakes in the company. Thrivent Financial for Lutherans increased its stake in shares of MongoDB by 1,098.1% during the 2nd quarter. Thrivent Financial for Lutherans now owns 424,402 shares of the company’s stock worth $106,084,000 after purchasing an additional 388,979 shares during the last quarter. Skandinaviska Enskilda Banken AB publ grew its stake in MongoDB by 39.3% in the 2nd quarter. Skandinaviska Enskilda Banken AB publ now owns 19,486 shares of the company’s stock valued at $4,865,000 after buying an additional 5,500 shares in the last quarter. AE Wealth Management LLC raised its holdings in MongoDB by 57.5% during the 2nd quarter. AE Wealth Management LLC now owns 5,523 shares of the company’s stock valued at $1,380,000 after acquiring an additional 2,017 shares during the period. Blair William & Co. IL lifted its position in shares of MongoDB by 16.4% during the second quarter. Blair William & Co. IL now owns 315,830 shares of the company’s stock worth $78,945,000 after acquiring an additional 44,608 shares in the last quarter. Finally, SYSTM Wealth Solutions LLC boosted its holdings in shares of MongoDB by 68.0% in the second quarter. SYSTM Wealth Solutions LLC now owns 11,338 shares of the company’s stock worth $2,834,000 after acquiring an additional 4,588 shares during the period. Hedge funds and other institutional investors own 89.29% of the company’s stock.
Analysts Set New Price Targets
A number of research firms have recently commented on MDB. Morgan Stanley raised their price objective on shares of MongoDB from $320.00 to $340.00 and gave the company an “overweight” rating in a research report on Friday, August 30th. Canaccord Genuity Group cut their target price on shares of MongoDB from $435.00 to $325.00 and set a “buy” rating on the stock in a research note on Friday, May 31st. Bank of America boosted their price target on MongoDB from $300.00 to $350.00 and gave the stock a “buy” rating in a research report on Friday, August 30th. Stifel Nicolaus increased their target price on MongoDB from $300.00 to $325.00 and gave the company a “buy” rating in a research note on Friday, August 30th. Finally, Oppenheimer lifted their target price on shares of MongoDB from $300.00 to $350.00 and gave the stock an “outperform” rating in a research report on Friday, August 30th. One investment analyst has rated the stock with a sell rating, five have given a hold rating and twenty have given a buy rating to the stock. Based on data from MarketBeat.com, the stock has an average rating of “Moderate Buy” and a consensus price target of $337.56.
Read Our Latest Research Report on MongoDB
MongoDB Trading Down 1.9 %
MongoDB stock traded down $5.41 during midday trading on Friday, reaching $278.45. The stock had a trading volume of 1,253,603 shares, compared to its average volume of 1,490,574. The company has a fifty day moving average of $259.06 and a 200 day moving average of $298.68. The firm has a market cap of $20.42 billion, a price-to-earnings ratio of -99.09 and a beta of 1.15. The company has a quick ratio of 5.03, a current ratio of 5.03 and a debt-to-equity ratio of 0.84. MongoDB, Inc. has a 52-week low of $212.74 and a 52-week high of $509.62.
MongoDB (NASDAQ:MDB – Get Free Report) last posted its quarterly earnings results on Thursday, August 29th. The company reported $0.70 earnings per share for the quarter, beating the consensus estimate of $0.49 by $0.21. The firm had revenue of $478.11 million during the quarter, compared to the consensus estimate of $465.03 million. MongoDB had a negative net margin of 12.08% and a negative return on equity of 15.06%. The company’s revenue was up 12.8% on a year-over-year basis. During the same quarter in the previous year, the firm posted ($0.63) earnings per share. On average, analysts anticipate that MongoDB, Inc. will post -2.46 earnings per share for the current fiscal year.
Insider Buying and Selling at MongoDB
In other MongoDB news, Director John Dennis Mcmahon sold 10,000 shares of the firm’s stock in a transaction dated Monday, June 24th. The stock was sold at an average price of $228.00, for a total value of $2,280,000.00. Following the completion of the sale, the director now owns 20,020 shares of the company’s stock, valued at $4,564,560. The sale was disclosed in a filing with the SEC, which is available through this hyperlink. In related news, Director Dwight A. Merriman sold 1,000 shares of the business’s stock in a transaction on Thursday, June 27th. The shares were sold at an average price of $245.00, for a total value of $245,000.00. Following the completion of the transaction, the director now directly owns 1,146,003 shares in the company, valued at approximately $280,770,735. The transaction was disclosed in a document filed with the SEC, which is accessible through the SEC website. Also, Director John Dennis Mcmahon sold 10,000 shares of the firm’s stock in a transaction on Monday, June 24th. The shares were sold at an average price of $228.00, for a total transaction of $2,280,000.00. Following the sale, the director now owns 20,020 shares in the company, valued at approximately $4,564,560. The disclosure for this sale can be found here. In the last 90 days, insiders have sold 32,005 shares of company stock valued at $8,082,746. 3.60% of the stock is currently owned by corporate insiders.
MongoDB Profile
MongoDB, Inc, together with its subsidiaries, provides general purpose database platform worldwide. The company provides MongoDB Atlas, a hosted multi-cloud database-as-a-service solution; MongoDB Enterprise Advanced, a commercial database server for enterprise customers to run in the cloud, on-premises, or in a hybrid environment; and Community Server, a free-to-download version of its database, which includes the functionality that developers need to get started with MongoDB.
Featured Stories
Before you consider MongoDB, you’ll want to hear this.
MarketBeat keeps track of Wall Street’s top-rated and best performing research analysts and the stocks they recommend to their clients on a daily basis. MarketBeat has identified the five stocks that top analysts are quietly whispering to their clients to buy now before the broader market catches on… and MongoDB wasn’t on the list.
While MongoDB currently has a “Moderate Buy” rating among analysts, top-rated analysts believe these five stocks are better buys.

Growth stocks offer a lot of bang for your buck, and we’ve got the next upcoming superstars to strongly consider for your portfolio.
Article originally posted on mongodb google news. Visit mongodb google news
Capstone Triton Financial Group LLC Trims Stock Holdings in MongoDB, Inc. (NASDAQ:MDB)

MMS • RSS
Posted on mongodb google news. Visit mongodb google news
Capstone Triton Financial Group LLC lessened its stake in shares of MongoDB, Inc. (NASDAQ:MDB – Free Report) by 1.3% in the 2nd quarter, according to the company in its most recent Form 13F filing with the Securities and Exchange Commission (SEC). The firm owned 9,272 shares of the company’s stock after selling 124 shares during the quarter. MongoDB accounts for about 1.6% of Capstone Triton Financial Group LLC’s holdings, making the stock its 18th biggest holding. Capstone Triton Financial Group LLC’s holdings in MongoDB were worth $2,318,000 as of its most recent filing with the Securities and Exchange Commission (SEC).
Other institutional investors have also made changes to their positions in the company. Vanguard Group Inc. boosted its holdings in MongoDB by 1.0% during the 1st quarter. Vanguard Group Inc. now owns 6,910,761 shares of the company’s stock valued at $2,478,475,000 after acquiring an additional 68,348 shares during the period. Jennison Associates LLC boosted its stake in shares of MongoDB by 14.3% in the first quarter. Jennison Associates LLC now owns 4,408,424 shares of the company’s stock valued at $1,581,037,000 after purchasing an additional 551,567 shares during the period. Swedbank AB grew its holdings in shares of MongoDB by 156.3% in the second quarter. Swedbank AB now owns 656,993 shares of the company’s stock valued at $164,222,000 after purchasing an additional 400,705 shares in the last quarter. Champlain Investment Partners LLC increased its stake in MongoDB by 22.4% during the 1st quarter. Champlain Investment Partners LLC now owns 550,684 shares of the company’s stock worth $197,497,000 after buying an additional 100,725 shares during the period. Finally, First Trust Advisors LP lifted its holdings in MongoDB by 59.3% during the 4th quarter. First Trust Advisors LP now owns 549,052 shares of the company’s stock worth $224,480,000 after buying an additional 204,284 shares in the last quarter. 89.29% of the stock is currently owned by institutional investors and hedge funds.
MongoDB Stock Performance
Shares of MongoDB stock opened at $278.45 on Friday. The stock has a market capitalization of $20.42 billion, a price-to-earnings ratio of -99.09 and a beta of 1.15. The firm’s fifty day simple moving average is $259.06 and its 200-day simple moving average is $298.68. The company has a debt-to-equity ratio of 0.84, a current ratio of 5.03 and a quick ratio of 5.03. MongoDB, Inc. has a 12 month low of $212.74 and a 12 month high of $509.62.
MongoDB (NASDAQ:MDB – Get Free Report) last announced its earnings results on Thursday, August 29th. The company reported $0.70 EPS for the quarter, beating analysts’ consensus estimates of $0.49 by $0.21. The business had revenue of $478.11 million during the quarter, compared to analysts’ expectations of $465.03 million. MongoDB had a negative net margin of 12.08% and a negative return on equity of 15.06%. The business’s revenue was up 12.8% compared to the same quarter last year. During the same period in the prior year, the company earned ($0.63) earnings per share. As a group, equities analysts forecast that MongoDB, Inc. will post -2.46 earnings per share for the current year.
Analyst Ratings Changes
MDB has been the topic of a number of recent research reports. Barclays cut their price objective on MongoDB from $458.00 to $290.00 and set an “overweight” rating on the stock in a research report on Friday, May 31st. JMP Securities reaffirmed a “market outperform” rating and issued a $380.00 price target on shares of MongoDB in a research report on Friday, August 30th. Piper Sandler boosted their price objective on MongoDB from $300.00 to $335.00 and gave the stock an “overweight” rating in a research report on Friday, August 30th. Monness Crespi & Hardt raised shares of MongoDB to a “hold” rating in a report on Tuesday, May 28th. Finally, Guggenheim upgraded shares of MongoDB from a “sell” rating to a “neutral” rating in a report on Monday, June 3rd. One analyst has rated the stock with a sell rating, five have given a hold rating and twenty have issued a buy rating to the company’s stock. According to data from MarketBeat.com, the company currently has a consensus rating of “Moderate Buy” and an average target price of $337.56.
Check Out Our Latest Stock Report on MDB
Insider Activity
In related news, Director Dwight A. Merriman sold 3,000 shares of MongoDB stock in a transaction on Tuesday, September 3rd. The shares were sold at an average price of $290.79, for a total value of $872,370.00. Following the transaction, the director now directly owns 1,135,006 shares in the company, valued at approximately $330,048,394.74. The transaction was disclosed in a legal filing with the SEC, which is accessible through this link. In other MongoDB news, Director Dwight A. Merriman sold 3,000 shares of the company’s stock in a transaction on Tuesday, September 3rd. The shares were sold at an average price of $290.79, for a total transaction of $872,370.00. Following the completion of the transaction, the director now owns 1,135,006 shares in the company, valued at approximately $330,048,394.74. The sale was disclosed in a legal filing with the SEC, which can be accessed through this link. Also, CAO Thomas Bull sold 138 shares of MongoDB stock in a transaction dated Tuesday, July 2nd. The shares were sold at an average price of $265.29, for a total transaction of $36,610.02. Following the completion of the sale, the chief accounting officer now directly owns 17,222 shares in the company, valued at approximately $4,568,824.38. The disclosure for this sale can be found here. Over the last 90 days, insiders have sold 32,005 shares of company stock valued at $8,082,746. Company insiders own 3.60% of the company’s stock.
MongoDB Profile
MongoDB, Inc, together with its subsidiaries, provides general purpose database platform worldwide. The company provides MongoDB Atlas, a hosted multi-cloud database-as-a-service solution; MongoDB Enterprise Advanced, a commercial database server for enterprise customers to run in the cloud, on-premises, or in a hybrid environment; and Community Server, a free-to-download version of its database, which includes the functionality that developers need to get started with MongoDB.
Read More
Want to see what other hedge funds are holding MDB? Visit HoldingsChannel.com to get the latest 13F filings and insider trades for MongoDB, Inc. (NASDAQ:MDB – Free Report).
Receive News & Ratings for MongoDB Daily – Enter your email address below to receive a concise daily summary of the latest news and analysts’ ratings for MongoDB and related companies with MarketBeat.com’s FREE daily email newsletter.
Article originally posted on mongodb google news. Visit mongodb google news

MMS • Sergio De Simone
Article originally posted on InfoQ. Visit InfoQ

Compose Material 3 Adaptive, a library meant to create adaptive UIs able to adapt themselves automatically according to the current window size or device orientation, has reached 1.0 and is ready to be used in production apps.
Leveraging Letpack Compose, the new library makes it easier for developers to create apps that run on a variety of form factors, including foldable phones and wall‑mounted TVs, and adapt to configuration changes like orientation changes and window resizing in split‑screen and free‑form windowing modes.
The idea behind adaptive UIs is simple: use different UI components depending on the window size to better use any available space. For example, panes naturally lend themselves to create adaptive list-detail layouts, where you navigate from the list to the detail view on smaller screens while larger devices show both the list and the detail view in the same layout. Alternatively, you can create supporting-pane layouts, where a larger portion of the screen is occupied by the primary content area and a supporting pane, which can be displayed or not, shows the secondary content area. Along the same lines, you can use a bottom navigation bar on compact displays and replace it with a vertical navigation rail on larger windows.
The library provides several components and APIs to make it easier to create adaptive experiences and allow developers to reuse proven solutions to common problems without having to reinvent the wheel. For example, developers can use NavigationSuiteScaffold
to switch between navigation bar and navigation rail based on app window size class, ListDetailPaneScaffold
to implement a list-detail layout self-adapting to the app window size, and SupportingPaneScaffold
to implement the supporting pane canonical layout.
The components listed above transparently adapt the information they display based on window size according to a definition of what Google calls canonical layouts, which makes it possible to pack complex behavior into simple declarations. For example, this is all you need to create an adaptive navigable list-detail layout:
val navigator = rememberListDetailPaneScaffoldNavigator()
NavigableListDetailPaneScaffold(
navigator = navigator,
listPane = {
// List pane
},
detailPane = {
// Detail pane
},
)
In case you need to customize the canonical behavior in any ways, you can access the lower-level APIs provided by the library. For example, NavigableListDetailPaneScaffold
is made of a BackHandler
and a ListDetailPaneScaffold
and you can directly tweak the latter to make it display two panes not only on larger displays but also at a smaller medium width, or change the policy it uses to adapt to different window sizes.
Another area where Compose Material 3 Adaptive helps developers is adding support for alternative input devices, like external keyboards, mice, and styluses. In particular, the library allows developers to seamlessly add support for using a stylus to write into any TextField
component.
Networking Cost Estimations and Analysis with Open-Source AWS Networking Cost Calculator

MMS • Steef-Jan Wiggers
Article originally posted on InfoQ. Visit InfoQ
AWS recently released an open source project called AWS Networking Costs Calculator, which allows users to run an AWS networking-focused calculator to estimate and visualize the various charges for a given network architecture.
Users can use the calculator to select their AWS region and the networking services in their architecture, along with other relevant inputs such as the number of endpoints used and the amount of data transferred or processed. This will generate a sample diagram that helps visualize traffic’s connectivity and flow.
In a Networking and Content Delivery blog post, the company explains that the calculator has two main components:
- A serverless backend part that uses the AWS Price List Query APIs to get the updated prices for the different networking services. This process runs daily inside an AWS Lambda function, with prices cached in Amazon DynamoDB.
- A ReactJS front-end web application (hosted on Amazon Simple Storage Service (Amazon S3) and fronted with an Amazon CloudFront distribution), which is the calculator user interface.
AWS Networking Costs Calculator high-level architecture (Source: AWS Networking and Content Delivery blog post)
Before deploying the tool in an AWS account, users must ensure that they have a Linux-based OS, NodeJS (version 18 or later) and NPM, AWS Cloud Development Kit (AWS CDK), and an AWS account with AWS CLI (v2) installed and configured. After verifying the prerequisites, they can run the deployment script from the project’s root directory using the $ ./deploy.sh command. The deployment will take 5–10 minutes. Once completed, users will receive a CloudFront front-end URL to access the tool.
In a LinkedIn post, AWS principal solutions architect Hrushik Gangur writes:
No more guessing, using Excel sheets, or interpreting AWS documentation to figure out data transfer/processing costs, specifically when your workload uses multiple networking services. Install this tool locally on your laptop, drag and drop, and connect networking service, and get total end-to-end networking cost!
However, the company also states that the pricing users see in the tool for their network architecture is an estimate. The actual costs may vary depending on factors such as other AWS services or third-party products in use. In addition, not all AWS networking services are available for cost estimates in the tool.
Taranvir Singh, an IDC Analyst for Worldwide Cloud Networking Research, wrote in another LinkedIn post:
Unpredictable costs are a significant concern for clients using cloud services. While cloud pricing calculators are available, they primarily focus on compute and storage, leaving a gap in networking costs, which can significantly impact overall IT budgets. I’m not a fan of the self-hosted aspect and any cost that customers will incur for this tool, but I feel this is temporary, and the AWS team is working on it.
Lastly, other means of estimating and analyzing costs exist, such as the AWS Cost CLI, the AWS Pricing Calculator, and third-party products.
Grafana K6 Releases: Enhancements in Typescript, Ecmascript, Browser Testing, and More

MMS • Claudio Masolo
Article originally posted on InfoQ. Visit InfoQ

The Grafana k6 team releases a new version of its open-source load testing tool approximately every two months, bringing new features and improving user experience. Several recent updates have introduced key improvements, notably related to TypeScript support, ECMAScript compatibility, and enhancements to browser testing, gRPC, memory management, cryptography, and test result storage.
One of the major updates introduced in the k6 version 0.52 release is allowing native support for TypeScript. Previously, developers using TypeScript with k6 were required to bundle their scripts using tools like Webpack or Rollup before running them. With this update, TypeScript tests can now be run directly from the k6 command-line interface (CLI) by using a special compatibility mode option. This new feature significantly simplifies the testing process for developers who prefer TypeScript, making it easier to work with k6, especially when reusing existing TypeScript libraries.
In addition to TypeScript, the v0.52 release also introduced support for a range of ECMAScript 6 (ES6) and newer features that had previously been unavailable in k6. These include features like optional chaining, object spread, and private class fields. By incorporating these ECMAScript (ES+) features, k6 has become more compliant with the modern JavaScript ecosystem, allowing developers to utilize contemporary JavaScript syntax without the need for workarounds. As of the k6 v0.53 release, these ES6+ features are now available in the default compatibility mode, making it even easier for developers to use them without any special configuration.
Another area of focus in recent k6 updates has been the browser testing module. Initially introduced in 2021, the browser module did not support asynchronous operations or the JavaScript async and await keywords. This changed with the k6 v0.52 release, where browser APIs were made fully asynchronous, aligning with the broader JavaScript ecosystem and ensuring compatibility with tools like Playwright. This update has made the browser testing experience more user-friendly and intuitive, although it did introduce breaking changes to existing browser scripts. To help users adapt to these changes, the k6 team provided a migration guide detailing the affected APIs and how to modify existing scripts to ensure compatibility. The browser module has now officially graduated from experimental status to a core module, making it stable and available under k6/browser
instead of k6/experimental/browser
.
Alongside the browser module, the gRPC streaming functionality also underwent significant changes. In the k6 v0.51 release, the grpc. Stream feature, which supports bi-directional gRPC streaming, was fully integrated into the stable k6/net/grpc
module. This graduation ensures that no further breaking changes will occur, allowing developers to confidently use the gRPC APIs in their tests and upgrade to future versions without concern. In addition, the gRPC module now supports non-blocking asynchronous operations with the client.asyncInvoke
method, which returns a Promise and provides more efficient performance.
The k6 v0.51 release also addressed the challenge of running load tests with large files, which previously led to Out of Memory (OOM) errors. While the SharedArray
object had provided some relief, it still loaded all file content into memory. To tackle this, the k6 team introduced the Stream module, which allows developers to read large files in small chunks, reducing memory consumption and significantly improving efficiency. The new Stream API enables k6 to handle large datasets by loading them piece by piece, preventing OOM issues during testing.
Additionally, the k6 v0.51 release made common JavaScript timer methods like setTimeout
, clearTimeout
, setInterval
, and clearInterval
globally available. Previously, these methods had to be imported from the k6/timers
or k6/experimental/timers
modules. By making these methods globally accessible, k6 now aligns more closely with the behaviour of other JavaScript environments and simplifies the process of managing asynchronous operations within tests.
Cryptographic operations have also seen improvements in recent k6 releases. The tool now supports additional Web Crypto methods, including new asymmetric cryptography algorithms such as ECDH and ECDSA, along with support for pkcs8 and spki formats. It also supports the import and export of keys in JSON Web Key (JWK) format, further enhancing k6’s ability to test secure applications that use cryptography. While the webcrypto module remains a work in progress, these updates are a step forward in making cryptographic testing more robust within k6.
Finally, the integration of OpenTelemetry (OTEL) into k6’s core functionality was another important update introduced in the k6 v0.53 release. OTEL has become a standard for telemetry and observability, and its inclusion in k6 allows users to send test results directly to OpenTelemetry backends. This addition enables k6 users to map k6 metrics and tags to OTEL equivalents and output test results to default OTEL exporters without needing additional configurations. This further expands k6’s flexibility in how test results are stored and analyzed, integrating it with industry-standard telemetry tools.
In addition to k6, other noteworthy load testing tools include Autocannon and Locust. Autocannon, written in Node.js, is a fast HTTP benchmarking tool designed for testing web server performance under heavy traffic. It provides key metrics like throughput and latency. Meanwhile, Locust is an open-source load testing tool that uses Python scripts to define custom user behaviour. It can simulate millions of concurrent users, making it ideal for large-scale performance testing.

MMS • Dustin Thostenson
Article originally posted on InfoQ. Visit InfoQ

Subscribe on:
Transcript
Shane Hastie: Good day, folks. This is Shane Hastie for the InfoQ Engineering Culture podcast. Today, I’m sitting down with Dustin Thostenson. Dustin is East Coast USA, Dustin?
Dustin Thostenson: Central. We’re in the flyover country, Iowa.
Shane Hastie: I’m as normal, coming to you from New Zealand. My normal starting point is who’s Dustin?
Introductions [01:04]
Dustin Thostenson: Thanks for allowing me to be on here. Who’s Dustin is a great question. I have been in technology for 25 years now, but I owe all of my gray hair to my kids. I didn’t have gray when the kids came around, so I don’t think it was the tech. Been in the field for 25 years and I’ve had a lot of different experiences, a lot of software development. I’ve been able to teach at a university or a community college. I’m not going to try to inflate it. Did that for a decade, for nights and evenings. I’ve done different types of coaching roles, a lot of consulting, and I’ve been an independent consultant for 15 years. My focus really has been on being able to do the work and to deliver high-quality software. I’ve also found my greatest joy is being able to help others not only improve their skill set, and also improve the teams that they work on. I want to make sure that other people have the chance to be on some really high-performing teams, enjoy their work and delight their customers. I think they deserve that.
Shane Hastie: Dustin, we have bumped into each other over the years at various events, but the thing that I wanted to talk to you about today is you’ve been talking recently about techniques to tackle technical debt. What are some of these techniques?
Common patterns of technical debt [02:20]
Dustin Thostenson: For all the teams that I’ve worked on, I’ve found a common theme, and it seems like most people are struggling with tech debt. When I talk about tech debt, what I really just mean is that ability to have flow. Your team’s ability to deliver. All those little things that slow somebody down, complex code, flaky builds, slow pipelines. I view those as all things that can be improved and things that we’ve seen improved with other people. That’s my more general view of tech debt. A lot of times I’ve seen people try to look a purely technical approach or a tool approach to solve that thinking if we just implement this tool or change these practices or get better PRs, we’ll solve the problem.
Or maybe if we just get time, just quit developing for new features for a month and we’ll just fix all these problems. What I’ve actually seen is there’s a lot of different things that can be done to help this problem that sometimes people don’t really think about. I’ve been collecting some of my experiences and the experiences of other people and I’ve really found that there are technical and interpersonal things that people can do at different scales, things that somebody can do for themselves, for their team, and also for their stakeholders or the greater company that they work in. I don’t have one simple answer though that just buy my product and it’s all fixed, unfortunately.
Shane Hastie: There is no tech debt magic wand. Who would’ve thought?
Dustin Thostenson: Not yet. If I could box it though.
Shane Hastie: Self, team, and stakeholders. Let’s dig a little bit into self. Individually, what are some things that the individual contributor, developer, architects, on a team can do to help reduce technical debt at their level?
Things an individual contributor can do [04:20]
Dustin Thostenson: I think when it comes to any type of problem, the first step is usually acknowledgement and identification. A lot of times we’ve got people who are rushing to get things done and they might not see how the decisions they make today are going to impact tomorrow. Sometimes they might not recognize that the way that they’re coding a solution has a formal code smell name to it and they might not recognize that they’re creating a temporal coupling smell. It makes sense to include this logic right here because the spec says it does this and then it does that and then it does that and then it does that. People might just put those things right at that level instead of recognizing we’ve got PDF exports over here and CSV exports and recognizing that there are different responsibilities that could be separated that could help make things a little bit easier, and that goes with the code or the pipeline. It’s really agnostic to technology. I think recognizing that a decision being made now could have an impact. Sometimes that just comes with experience, but there are ways to get it.
Shane Hastie: If I don’t have the experience yet, where do I find it?
Useful resources [05:38]
Dustin Thostenson: There are some books out there. Josh Kerievsky has a book called Refactoring to Patterns, and that bridges with Martin Fowler’s book on design patterns. It bridges nicely with Michael Feathers’ book on Working Effectively with Legacy Code. There are some publications out there where you could just read it and then start learning the names for the different things that you’re seeing and then possibly learning some of the different refactoring techniques which could allow you to take steps to get over to there. That helps with the acknowledgement of it and the identification to have that trigger to say, wait a second, something’s not right here.
Then Emily Bache has got a great GitHub repo with a bunch of code katas, and that’s the thing that I’ve done for myself a lot. It’s something I’ve done with teams. Just being able to grab some different code katas and practice cloning the code, making a bunch of changes and seeing if you can go through all those steps. That can make a huge difference because now when you see the problem and then you’ve been practicing the muscle memory to hit the keyboard shortcut, to extract the method or to rename something, it becomes a lot easier. It doesn’t have to be a dedicated effort. You can just do it as you see it and then it just happens.
Shane Hastie: There are good solid resources people can dig into to identify those patterns. Personal opinion, I see far too little recognition of the importance of patterns in developer education today. Am I being harsh?
Recognising patterns [07:21]
Dustin Thostenson: I don’t think you are, and I’m assuming that sometimes when you would bring that up, people will bring up the edge case scenario of the ivory tower architects who try to implement every pattern, and there’s definitely a pendulum that goes back and forth. If you find yourself doing the same thing and it’s causing a problem, maybe introduce a factory. That’s been a solved way to do it. Or if you’re having to kick out reports and you recognize there seems to be a pattern here, maybe you could add a strategy pattern and maybe just seeing what that pattern is allows you to see a new way that the code could look.
I don’t think that you have to come up with all the patterns and have everything designed perfect, but when you see that something isn’t working, sometimes it’s good to have that in your toolbox, so you say, “What if I try this?” If you know the name of it, then you can communicate with your teammates more quickly. Sometimes you might just stumble upon something that makes sense and find out later on, “Oh, that was a chain of command pattern. It made sense, and I guess it has a name”.
Shane Hastie: Those are some things that individually I can do and digging into my own learning about patterns and starting to recognize patterns and use them. What about at the team level?
Things we can do at the team level [08:35]
Dustin Thostenson: Sometimes people will try to inflict help on others, and that doesn’t usually work so well. I’ve come to the realization that the only person I can control in my life is myself, and I struggle to do that. I would be in much better shape and probably running a 5K tonight instead of sitting down and playing on my computer. I think it’s a good acknowledgement to say I can only control myself. Once somebody does that, and once somebody does start to practice those behaviors, it does become easier for other people to emulate. Sometimes people might see what you’re doing and they might want to do that because it looks more enjoyable. If you have people who are willing to go with you, that’s when you start leading that influence. You make it easy for people to join.
I’ve seen teams have team katas as a team agreement. They say, “After stand-up every day, we’re going to spend 15 minutes and we’re just going to have fun. We’re going to work on a kata. Yes, I know that we write code all day, but we’re not going to be focusing on the business problem that we’re trying to solve. We’re going to focus on the pattern or the muscle memory of it. We’re going to focus on mobbing so we know how to talk to each other and we know how to communicate what we’re thinking better”. Sometimes just those little things where you practice the dribbling and the shooting, and when you practice those little things, then when it’s game time, it all comes together easier without the pressure of we have to get this story done by the end of the day because the sprint is over.
Shane Hastie: What if I’m not in a position to lead this team? How do I bring others on this journey with me?
Leading through influence [10:15]
Dustin Thostenson: A lot of the best influence doesn’t come from positional hierarchy. You can be an influencer without having that formal title. One of my favorite quotes is from Jerry Weinberg where he says, “Consulting is the art of influencing people at their request”. That makes a lot of sense to me because if I’m doing work on a team and I don’t have a tech lead or any formal title, if the team is open to pairing, then I want to make sure when people are pairing with me that they’re having a good experience, that we’re getting stuff done, we’re delivering a quality product, and maybe they learn some things.
Maybe they see a keyboard shortcut that they didn’t know before. Maybe they recognize a different way to write tests quicker and faster where it’s actually preferable to create a test and reproduce the problem. It doesn’t even matter at the company or even internationally, nobody cares what conferences I’ve spoke at. Nobody cares if I was an author or anything. What they care about is what they see and what their experience is. If they’re enjoying your time, they might want to try that too, and if they don’t, that’s their choice.
Shane Hastie: Stepping out into the wider community, you said it beautifully earlier, the gray area, the mass community around us who have high expectations and are often frustrated, things aren’t going exactly like we would hope.
Dustin Thostenson: We’re spending a lot of money on it.
Shane Hastie: We’re spending a lot of money. It’s taking a lot of time. We need these products to help the organization achieve some great goals, and it’s just not happening. How do we as technologists bring those people along with us?
Communicating the value of reducing technical debt to non-technologists [12:07]
Dustin Thostenson: I think a lot of us in technology have learned technology. We went to school to study technology. We listen to podcasts and read books and watch YouTube videos on technology. We search Stack Overflow to understand technology. What we don’t do is we don’t always focus on the people and what makes sense for us doesn’t always make sense for them. I think that there’s a couple of steps that you can take to help bridge that. Again, going back to that concept of acknowledgement, acknowledge that they have motivations. They have customers they’re trying to make happy. They have a board of directors that’s expecting ROI. They’ve got marketing which has timelines. I think it helps to just understand this person has pressure on them as well too, and they have a different type of responsibility, so what is it that they care about and what is it that they really need?
Oftentimes, if you listen, and you can now also parrot it back to them to say, “Oh, so all these quality issues are causing a problem with you because the customers aren’t happy, and now we’re having to create all these defect bugs, which is pushing off additional work that we can do today. If we didn’t have all these defects, then we could probably make marketing happy because we can hit the conference that they were going to announce all the new features at”. If you can understand it from their point of view and reflect it back to them, when they hear you say it, they know that you understand. The other thing is, I’m going to laugh about this a little bit, I originally was telling people you need to be clear and concise in that messaging. You need to figure out what details do you really need to share and only give the deeper details if they ask questions.
The reason this tickles me is because the first time I talked about being clear and concise, a friend in the front row said, “I think you mean succinct”. There’s a diagram that I’ve seen that has different pictures of data, information, knowledge, insight, and wisdom, and it talks about the granularity of the data and being able to add meaning to the data and have relationships with the data. Then when you get an insight, to be able to recognize this thing over here eventually connects to this other part over here, whether it’s an opportunity, an outcome, problem, solution, but there’s a relationship through that. That to me is what I try understand so when I talk to somebody, I can get to that point quickly. Then when they say, “But how do you go from point A to point B?” Then I need to make sure that I can tell that story quickly using the words that they understand.
Not talking down to them, but addressing it for their needs. Then when they want more information, you start getting into the relationships and maybe schedule an offline meeting, but just be able to communicate with them so you can keep their attention and not force a memory overload error or make them feel dumb. Just treating people with respect, understanding that they have a different background, and that’s fine. They could do the same thing to you. I found some of those things in my long-winded answer about being succinct have been very helpful in bridging that relationship and making sure that we’re all working towards the same goals.
Shane Hastie: These are not skills that one stereotypically technology folks are known for, and also, they tend not to be skills that we are trained in. How do we build those skills? How do we build that muscle?
Building communication skills and taking responsibility [15:44]
Dustin Thostenson: I agree with you. For me, I think part of it was recognizing when things weren’t going well for me to stop blaming others. That guy is Peter Principled, and that person is just dumb. They don’t get it. I realized, again, I can’t control them. If I had to go in a time machine, is there something I could have done differently? I used to think about that when I would drive home from work. I’d reflect on my day and go, “If I had that meeting again, what would I do differently?” That reflection, I think helped me acknowledge that some things weren’t going perfect and that maybe if I tried something different, there’d be an opportunity. That was the first real awakening for me. Then I’ve had some different consulting opportunities where all the coaches were hanging out in the same spot and we would complain to each other at the night and then they said, “Yes, you’re right. This client, they’re screwed up. Yes, they should do something about it”.
Well, guess what? They did, they hired us, so what are we going to do? Sometimes they would be preaching to the choir, “Oh, they need to do this, this, and this”. Then they would stop themselves and say, “Oh, I’m just preaching to the choir”. I said, ‘No, you’re practicing. You’re taking all these ideas that you have in your head and going through them, so the next time you do that, you’re going to give a quick answer”. Sometimes having targets, I’m mentoring a kid who just graduated college and he was going to have a meeting with a vendor in the university for his product, and I said, “Well, the first thing is you have to make sure that you’re all in alignment, so don’t talk about how you’re going to do something. Talk about what you want to do and how that aligns”.
He did. He goes, “Well, that worked really good”. I mentioned, “Now you want to listen to what they have to say because if they’re going to give you access to an API, they’re going to have some real concerns, so you need to hear that and you need to acknowledge it. Then you need to make sure that you’re going to do something about it and keep telling them about it”. It was some simple checklist, but it was something that was at the top of his head that he was at least looking for. I think the big thing for me is this all really came down to, I had learned about the responsibility process eight or 10 years ago, and I had studied with Dr. Christopher Avery for a bit. That really helped change my life because I realized that when these things happen, we’re going to go through some different stages. Our first stage is were going to deny that there’s a problem.
Yes, well, I don’t see a problem at all hitting that production delivery date. Then when something happens, we start telling ourselves stories about blame, and you look at everybody else as they’re the reason for it, but you’re giving up all of your ownership. You’re giving away all of your power to do anything about it. After that, you get into justification where you start telling yourself, Yes, but we always miss production dates and we never do anything right here. Again, you’re telling yourself stories about why it’s okay for this bad thing to happen. For myself and others, I see people get into shame a lot where you’re basically blaming yourself. At least you’re taking a little bit of ownership for it, but it’s not healthy.
Sometimes you might work nights and weekends because you feel like you’re obligated to the team that if you were better, they wouldn’t have to do it, and you’re going to work as hard as you can, but eventually get into that responsibility mode where you get to look at the problem objectively and you get to decide, how would I like to see this come out? You get to make a choice, and it’s not responsibility as in accountability, but it’s about your ability to respond. I think that with individuals and the way that they work with the teams and the way that they work with their stakeholders, you get to analyze what’s going on and make that choice, how can I best respond to this in order to have the best possible outcome for me and all the people I care about?
Shane Hastie: It’s a hard ladder to climb, the responsibility process, isn’t it?
Dustin Thostenson: It is much easier when you spend months or years looking at other people and being able to frame it. It’s much easier when you see somebody denying a problem right off the bat or when you hear them talking about a problem and using blame. When you start to have that framing and you see the pattern that other people go through, then eventually you start wondering, well, maybe I’m like everybody else. Maybe I’m just as human as everybody else. Then just like seeing the bad code and recognizing this is a trigger, this is a code smell, this code smell has a name, you can start to recognize that own trigger in yourself and go, “Ooh, trigger happened. Now do I react out of habit or do I take a moment and add a little bit of space to decide what am I going to do with this trigger?” It’s a lifelong journey for me, I’m sure, but it’s one that I like.
Shane Hastie: You quoted Jerry Weinberg, and I want to go back to one of his sayings, “No matter what you think the problem is, it’s a people problem”.
Dustin Thostenson: It’s always a people problem. Absolutely.
Shane Hastie: If you don’t think it’s a people problem, it’s a people problem. As technologists, how do we get better at working with people?
No matter what you think the problem is, it’s always a people problem [20:57]
Dustin Thostenson: I think that the acknowledgement of that quote, Jerry’s stuff is so amazing because it’s so easy to read quickly and gloss over it. I think just acknowledging that, that is the case, changes what we see in the world. It changes what we’re looking at. If we think that it’s a problem with the old framework or an old tool or bad code, that’s all that we’re going to look at. Jerry also said things are the way they are because they got that way. If you’re looking at the code and you come in and this is crap, and this is crap and junk, junk, junk, junk, junk, the people who wrote that might be in the room and they might have done the best that they could at the time.
It’s very possible that they were new and they didn’t know a better way or they were covering for somebody who was on maternity leave and they had twice the workload and half the timeline. There’s a lot of reasons why things get to be the way they are. It’s never mal-intent. Usually, it’s not mal-intent. I think recognizing that and understanding what would have to happen in this environment for these things to come true gives you a little empathy. Then if you start looking at that and saying, “Okay, well, this is what we have today. What are people willing to do? How are we willing to try some different things?” Now you start looking at the way a company is organized.
Are they functionally organized where you have a UI team and a backend team and a database team and a security team? Recognize, well, if we were to make a change, what would have to happen? Who would have something to be lost if we did this? Who’s losing their team of 20 or 200 people? What does that do for them? Who’s losing their pride because they were the master of the system and they’ve always been that person, and now they might not have that credibility or the ego anymore. When you start looking at some of those hidden motivations or at least asking questions, you’re going to find out what is possible and what might not be possible yet, and then you can start figuring out how do we apply the tech to work within these constraints instead of just applying a template that just throw Kubernetes on everything and it’ll work.
Shane Hastie: That’s been some really useful resources there. Some great pointers. If people want to continue the conversation, where do they find you?
Dustin Thostenson: They used to be able to find me on Twitter, but now I guess it’s called X. You can find me there as Dustinson. I love connecting with people there. You can also catch me on LinkedIn, and I have been trying to build up my own website a little bit more, trying to put some more content in some of the recordings of the talks I’ve given. I love going to conferences and still meeting people in the old analog way.
Shane Hastie: Dustin, thanks so much for taking the time to talk to us today.
Dustin Thostenson: It’s been an absolute pleasure. Thank you for all the work that you’re doing to bring this out to the community and make a more positive impact. Appreciate that you’re doing these things. Thank you.
Mentioned:
.
From this page you also have access to our recorded show notes. They all have clickable links that will take you directly to that part of the audio.

MMS • Ben Linders
Article originally posted on InfoQ. Visit InfoQ

Copying and pasting code from one Windows folder to another as a deployment method can cause downtime. Jemma Hussein Allen presented how they automated their deployments and the benefits that they got from it at QCon London.
The main challenges with manual deployments of application and infrastructure code were due to environmental inconsistencies that happened due to a range of factors, of which the main one was aligning code deployment with deployments of dependent resources such as databases, Hussein Allen said. Before options such as blue/green deployment became available, changes that were not backward compatible meant brief periods where the database schema and code were out of sync and caused failed requests during deployments, she added.
Hussein Allen mentioned that general human error also plays its part, where certain file updates are missed, or incorrect versions are copied to the new environment. Human error can also be a big factor in testing if there are no mandated safety checks and local testing is the responsibility of individual developers:
Process automation helps to remove the human error component, and with intelligent deployment mechanisms, checks such as file share latency can be checked before deployments to ensure downtime isn’t an issue.
Manual deployment involving file shares can also be a big issue if the timing of file copies is out of sync, as it can result in incomplete deployments, Hussein Allen said. Updates to dependent resources can also be codified and synchronised to ensure changes are deployed in the correct order, she suggested:
These days, with deployment automation and blue/green deployments, new versions can be deployed and tested in a production environment before being made available to end users.
The first stage for automation was to document each deployment step, no matter how small, Hussein Allen said. Some key considerations were whether the step was manual or already automated, any downstream or upstream dependencies on other resources, and any access configuration, permissions, or secrets needed to carry out the step. This gave them a good overview of the current deployment method and highlighted any steps that would take a large amount of work to automate, she mentioned.
After they had a good understanding of the process, they looked into existing available tools to assess their suitability. They also looked at the existing deployment tools in use in the organisation to determine if these would be suitable, as people who were already experienced with the tool are really valuable:
Unfortunately, none of the existing tools were suitable for this type of workload, so we carried out a wider search to assess the suitability of other tools, taking into account support for the workload type and how they integrated with the existing company tooling.
Once the assessment stage was complete, they started to implement a proof of concept in the development environment.
We started with a small part of the application, and once we had successfully set things up in development for a specific application segment, we moved that deployment process to the staging environment.
As staging had slightly more policy constraints than development, testing in this environment was important, Hussein Allen mentioned.
After the proof of concept had been implemented, they then assessed how the solution could be rolled out to other application segments and environments with minimal disruption.
The main benefit from automating deployments is a quicker and cleaner release process, especially when working collaboratively in a team, Hussein Allen said. Centralised change logs and deployment trackers also provide much better deployment visibility across teams, she added.
Hussein Allen mentioned that standardisation of deployment steps can improve familiarity and understanding of a paved road and the components needed to test and deploy quality applications. The CNCF defines a “golden path” as the “Templated compositions of well-integrated code and capabilities for rapid project development“. The paved road / paved path / golden path approach has become more popular with larger organisations as it is a proven method to speed up developer adoption of standardised company processes and tooling, as Hussein Allen explained:
I have seen the adoption of well-crafted templates by development teams majorly increase the speed of utilising company-specific tooling and logic in applications.
Automation will almost always save time and effort in the long run, even if it takes slightly more effort initially, Hussein Allen concluded.