I’m always weary of using abstractions like this. I understand the desire to simplify the process of creating new apps, but tools like this take an opinionated stance on how to couple and interact with all of these dependencies like Npgsql, meaning you might end up stuck with an older version of Npgsql until your Aspire package catches up.
Developers are also abstracted one more layer from their dependencies which isn’t always a good thing when debugging or for understanding how the dependencies work.
The manifest file seems like a step in the wrong direction. I see no reason to learn this .NET specific thing when I can learn to use docker-compose or the like.
The otel dashboard is nice but there are alternatives.
All the discussions around header vs. path versioning reminds me of this post by Troy Hunt of Have I been Pwned.
> In the end, I decided the fairest, most balanced way was to piss everyone off equally. Of course I’m talking about API versioning and not since the great “tabs versus spaces” debate have I seen so many strong beliefs in entirely different camps.
I think what you're doing with pulumi is the right answer and it's only a matter of time before this becomes the norm. The author's examples could easily be done with plain ol' JS/ES/TS with more far more extensibility and customization when the need arises.
I also feel this is where JSX got it right. Instead of creating yet-another-templating-language (looking at you Angular!), they used JavaScript and did a great job of outlining how interpolation works. Any new templating language is always going to be missing some key feature you expect out of a general programming language and your customers will continue to ask for more features.
Marketing Attribution | Senior Frontend Engineer | Evanston, IL (with remote days) | Full Time | On Site | http://marketingattribution.com
Marketing Attribution was founded and is run by Ross-boy Link, a seasoned statistician and entrepreneur who’s been doing data science since before the term was coined. Ross continues to actively participate in the development of the product given his background in analytics and you’ll see him sling some SAS or Python to experiment with a new way to crunch numbers.
We develop and support highly automated analytical software that uses cloud-based statistical analysis of large marketing datasets to measure the incremental sales that result from various media, allocate marketing spend to the most efficient media, and connect to media buying systems to execute media buys.
In short, we take the client’s sales and marketing data, run analytics on it (our secret sauce), and from those results, tell the client where they should start and/or stop spending on marketing (TV, Radio, Internet etc.).
You're coming in on the ground floor. This is an entirely greenfield project with no legacy code to maneuver around. The frontend was developed about 5 months ago and we're looking to accelerate the development of new features.
Marketing Attribution | Senior Frontend Engineer | Evanston, IL (with telecomute days) | Full Time | On Site | http://marketingattribution.com
Marketing Attribution was founded and is run by Ross-boy Link, a seasoned statistician and entrepreneur who’s been doing data science since before the term was coined. Ross continues to actively participate in the development of the product given his background in analytics and you’ll see him sling some SAS or Python to experiment with a new way to crunch numbers.
We develop and support highly automated analytical software that uses cloud-based statistical analysis of large marketing datasets to measure the incremental sales that result from various media, allocate marketing spend to the most efficient media, and connect to media buying systems to execute media buys.
In short, we take the client’s sales and marketing data, run analytics on it (our secret sauce), and from those results, tell the client where they should start and/or stop spending on marketing (TV, Radio, Internet etc.).
You're coming in on the ground floor. This is an entirely greenfield project with no legacy code to maneuver around. The frontend was developed about 5 months ago and we're looking to accelerate the development of new features.
Marketing Attribution | Lead and Senior Data Engineer and Lead Frontend Engineer | Evanston, IL (with telecomute days) | Full Time | On Site | http://marketingattribution.com
Marketing Attribution was founded and is run by Ross-boy Link, a seasoned statistician and entrepreneur who’s been doing data science since before the term was coined. Ross continues to actively participate in the development of the product given his background in analytics and you’ll see him sling some Python to experiment with a new way to crunch numbers.
We develop and support highly automated analytical software that uses cloud-based statistical analysis of large marketing datasets to measure the incremental sales that result from various media, allocate marketing spend to the most efficient media, and connect to media buying systems to execute media buys.
In short, we take the client’s sales and marketing data, run analytics on it (our secret sauce), and from those results, tell the client where they should start and/or stop spending on marketing (TV, Radio, Internet etc.).
We're hiring our first engineers (#2, #3, and #4). Full description at:
You're coming in on the ground floor. This is an entirely greenfield project with no legacy code to maneuver around. You'll be responsible for building everything from the ground up.
I had no idea that this is a sensitive topic. I personally have family members that are civil engineers and understand the difficulty with acquiring a PE. I went ahead and modified the title.
Your response is a bit over the top. I'm in no way criticizing anyone or placing myself above anyone. I've been a junior engineer and I've under-engineered. I've been a mid-level engineer and I've over-engineered. Only through feedback from senior engineers did I finally get to see code I wrote stand the test of time 2 years later with minimal to no change.
As I mentioned in the post, no matter how many years we've been doing this, we'll continue to over-engineer and under-engineer because software is hard. The article is meant to layout the mistakes I've learned from, and for engineering managers, our responsibility is to help those we manage avoid the pitfalls we ran into.
Your points couldn't be more accurate. In any organization, the quality of the function that dictates the work to be done (be it Product Managers or Business Analysts) heavily impact the success of an engineer's work. Some organizations choose to remove this level of management [1], others have ensure only former engineers fill this role.
It's very important but broad topic. I chose to not explore it in the post because it deservers its own discussion.
That's a very interesting article. However, it does seem suffer from the same issues Joel outlined, namely, the measure of attributes of a commit can be gamed and worked towards to achieve a "prolific" or "senior" status.
What the article you linked does reinforce is the value of iterative development. As opposed to doing large infrequent commits, doing small bits of work more frequently causes a success higher or "impact".
I would say that the article provides a data driven approach to justifying the effectiveness of good iterative planning. However, it doesn't address whether the commits of the "senior" engineer or the "prolific" engineer are of high quality.
I won't get into whether or not it's fair to call call "developers" "engineers", but I do make the distinction in the first paragraph that the article refers to software engineers. In addition, velocity, bug count, and lines of code are all software terms. I can't imagine anyone thinking this is referring to any other type of engineering.
Author here. Your point is valid. I do try to make this clear in this portion:
> However, an over-engineer can sometimes perform like an under-engineer or an engineer. Underperformance and overperformance could be influenced by a number of factors including work environment, context, intellectual horsepower, and even personal life.
I personally continue to write under-engineered and over-engineered code because there are so many internal and external factors that go into solving a problem.
Pangea | Chicago, IL | Senior iOS, Senior Platform (.NET/C#) Engineer | Full Time, On Site | http://engineering.gopangea.com
Founded in 2012 and headquartered in Chicago, IL, Pangea started with the mission of making money transfer effortless. Since then, we’ve been striving to enhance the security and reduce the cost and pain points of international money transfer.
Our first solution allows users to complete a transfer in three easy steps and pay with any US debit card, with an innovative nationwide cash solution coming soon. Receivers in Mexico, Colombia, Guatemala, El Salvador and Dominican Republic can collect the transfers in cash or receive the money directly into a bank account. Through every partnership and product iteration, we’ll continue to help our users save more time and money.
Founded in 2012 and headquartered in Chicago, IL, Pangea started with the mission of making money transfer effortless. Since then, we’ve been striving to enhance reduce the cost and pain points of international money transfer.
Our first solution allows users to complete a transfer in three easy steps and pay with any US debit card, with an innovative nationwide cash solution coming soon. Receivers in Mexico, Colombia, Guatemala, El Salvador and Dominican Republic can collect the transfers in cash or receive the money directly into a bank account. Through every partnership and product iteration, we’ll continue to help our users save more time and money.
At first blush it might seem to have a high learning curve given the verbosity of the syntax to define a stack, but with the launch YAML support, the syntax has become more succinct. Once you use it, you'll wonder how you ever lived without it.
The product page doesn't do it justice, but in short, CloudFormation allows you to:
- Describe the AWS resources you need in a single file (YAML or JSON), this would be your "stack".
- View all the resources provisioned based on your code in a single UI grouped under the "stack" in the CloudFormation console.
- Manage changes to your resources as different versions of the code file, meaning if you update a resource's properties in code, it'll know and update the already provisioned resource.
- You can delete an entire "stack" and be certain that all associated resources are also destroyed.
- When I used it, the coverage of types of resources you can code for was wide and they're continuously adding more.
If you're trying to remain cloud-agnostic, then I suggest you also checkout HashiCorp's Terraform [https://www.terraform.io/]. Think of Terraform as a scripting language that compiles into AWS CloudFormation or any other cloud provider.
- [ByteSize](https://github.com/omar/bytesize) (.NET/C#) library which is a utility class that makes byte size representation in code easier by removing ambiguity of the value being represented. ByteSize is to bytes what System.TimeSpan is to time.
- [PS1 Gen](http://omar.io/ps1gen/) is a simple bash PS1 generator and reference so you can soup up your command line. I created this after trying to research how to create a cool PS1 string.
We're looking for a strong iOS engineering leader for a 70% individual contribution and 30% engineering management role. You'll be responsible for the iOS app that's used by nearly 40% of our customers. You'll also be managing one other talented iOS engineer who's been with the company for over 1.5 years. The opportunity for growth in this position is to lead the iOS and Android teams.
Founded in 2012 and headquartered in Chicago, IL, Pangea started with the mission of making money transfer effortless. Since then, we’ve been striving to enhance the security and reduce the cost and pain points of international money transfer.
Our first solution allows users to complete a transfer in three easy steps and pay with any US debit card, with an innovative nationwide cash solution coming soon. Receivers in Mexico, Colombia, Guatemala, El Salvador and Dominican Republic can collect the transfers in cash or receive the money directly into a bank account. Through every partnership and product iteration, we’ll continue to help our users save more time and money.