Location: Remote/NYC
Willing to relocate: No
Technologies: 20 years on: Java + SQL Slightly less on; AWS, and Docker
Résumé/CV: https://github.com/colangelo-david reach out for official CV
Email: david.colangelo@pdtechsolutions.com
Senior Engineer with 20 years of java experience across all major cloud providers. Lots of experience in the Banking/Credit Union and Payment space. Always looking for consulting and freelance work. Lets chat!
If you just want it for the HDMI input to use as an aux screen for what ever computer your running than anything with an HDMI input in the size range you want should work. I run all the TV's in my house like this; connected to mac mini's instead of futzing with the onboard software mostly because I despise typing one letter at a time with a tv remote.
Honestly all the onboard TV OS stuff I have interacted with in the last decade has been more or less terrible and I wouldn't even consider it when buying a TV especially one that is just going to be a screen. All of the recent installs Ive dealt with (family and friend support) has revealed a ton of pay-to-play features (Samsung frame tv's cough cough). I applaud you for wanting something neat but I cant say Ive come across anything Ive ever actually wanted to use beyond "select input -> HDMI1"...
Just never, ever connect the TV to the internet. Connect up an Nvidia shield, or a mini-PC/raspberry pi configured with whatever apps you desire, hidden behind a pi-hole. Connect a steam deck if gaming/linux desktop usage is your thing. I only touch the TV remote to switch on the TV, and even that could be automatable with home assistant+CEC if that's of interest.
I had a TV once, can't remember the brand, that refused to stream from my dlna server unless it could contact its own corporate servers over the internet first.
In theory, this seems great, but you won't be able to use the majority of streaming applications nor get the same quality out of those applications. Like Netflix, they purposely downgrade the streaming quality on desktop.
The NVIDIA shield doesn’t suffer from those issues in my experience. It’s far superior when browsing menus for example versus on a smart tv as the hardware is still decent even for a relatively old product. I just hope NVIDIA continues to support it for a while more.
You generally don't want a smart tv you can hack. You want a decent computer you own sending signal through the external inputs.
The SBC in the TV is, hands down across basically every "smart" TV I've interacted with, a cheap piece of crap (even well into the "expensive" brands and models).
Manufacturers stick the absolute cheapest garbage in there that can output the advertised resolution during playback without stuttering.
So you can spend hours/days/week wrestling this cheap, underpowered board back from the manufacturer... or you can just side-step it entirely and spend much less time and effort sticking a decent computer you own behind the tv.
All my TVs have an Apple TV on them and that's all that is used (aside from a game console here and there). I pretty much never need to interact with the TV OS. Is there a Netflix app on my TV? Probably, I'll never know, I've never even launched the app store.
It's been a bit since I've done this (I'm not watching live TV anymore), but something like HDHomeRun worked fine.
It basically pairs an antenna with a small computer to convert to network traffic, then gives you an app on your streaming device to play it back.
You do need to be able to run the vendor's app, and you'll get stuck with that UI for live tv (So yeah - totally agree that you're compromising the UX). But still no reliance on the "smarts" built into the tv.
I have an HDHomeRun box and use it through Plex. I've never installed the HDHomeRun software. Plex immediately recognized it as soon as I plugged it in. There is a noticeable amount of latency between selecting a channel and starting the stream, so channel surfing is pretty cumbersome, but I almost never do that. With the paid version of Plex (Plex Pass), you also get DVR support which automatically removes commercials from the recording, so that's pretty much the only way I use it.
Good to know - At the time I wasn't self-hosting as much so I hadn't explored that.
You're right, though - both Plex and Jellyfin seem to have pretty good support these days, so if you're already running one of those it's a nicer integration.
Perhaps an overly simplistic view but heres my take on it:
"You get into STEM by studying, you get into art by doing"
Im a software engineer by trade, Ive also done a bit of hardware work at another time in my life. I consider my self an engineer both in what I enjoy and what I do professionally. However I also play a half a dozen instruments, shoot process and print wet film, enjoy analog audio recording process' and have done a lot of live sound work for theater productions over the years. I fancy my self a half decent carpenter and have built at least one boat that floats and is useable. People have described me as "artistic" but you will have to take their word for it.
Anyway... Some thoughts in no particular order:
- Art, FWIW is sometimes about being shameless to try and create something you like
- I photograph what I enjoy, some times other people like my photographs, sometimes they don't many hang in my residence, some hang in others if they have asked for prints over the years.
- You can create most art forms for cheap or free if you are careful
- Getting over the initial "frustration" hump can be the biggest hurdle, I still cant really play the banjo yet...
- Gravitate to something that seems interesting to you, just because your friend really likes watercolors does not mean that is the art form you must partake in.
- Use the resources at your disposal, in my experience most artists or really anyone passionate is more than willing to share their knowledge with you.
Practical advice on doing:
- In the modern world you can get cheap supplies to at least test the waters on anything
- If you have $100 you can probs do anything you want
- A half decent film camera and a few rolls of film with processing can easily be had for $100
- There are plenty of cheapo guitars that work perfectly and can be had for $100 buy used and your more than likely to snipe a sweet deal.
- You can get a basic paint set, brushes, and some canvas for <$100
- paper and pencil can be had for WAY less than $100 (yeah yeah I know theres fancy paper too)
- If you live in or near a city (or really anywhere) many art galleries are free to the public to walk around, some offer lectures with artists or other similar events that anyone can go to. Public libraries and museums often have similar things you can take advantage of for free or cheap and spend some time near or with some really famous individuals. Go to these things, if you don't like what you see, hang for a bit, learn, leave a better person, keep going until you find what you like
- Youtube, oh man the endless tutorials, free lessons, how-to's, helpful advice, creative work you can see for free. Youtube is your friend, youtube is one of the great art resources of the era.
Chances are the only thing at the moment keeping you from creating art is you.
How about some more turn-of-phrase-quotes:
"Engineering is about separating the signal from the noise, art is an outlet for the noise"
"If Your first 10,000 photos are your worst, send a crew of engineers to the Hubble to fix the mirror"
"Somewhere between art and engineering is a reasonable salary"
Sorry in advance if this post come across a bit harsh but I think there is a fair bit of misconception in your post.
First and foremost I think it's safe to say that things like TypeScript and JavaScript would not be possible without the lower level "system" languages. In all fairness they were there first, by a matter of decades in most cases. Ultimately the V8 engine, Node and other similar stuff is largely built with C++ and C anyway. Fundamentally what you are asking about CAN be done, there is a larger, fairly academic discussion of "should" it be done or "why hasn't" it been done.
"It's quite clear that TypeScript is going to be around forever" Really? Why? Type script is 9 years old, C is 50 this year. Sure C is still here but lots of things have come and gone in that time, small talk, lisp, fortran, cobal... (as long as you dont look TOO closely in some basement mainframes). Ive been at this for a while and the way I see it typescript is still in the late "fad" stage, it has yet to truly prove its staying power and there is nothing indicating with will "be around forever" just yet. Languages dont have real staying power until they last through the the subsequent fad, if people are still using it after the next cool thing comes out then its likely here to stay.
"It's nice and simple." as others have noted, it's nice and "familiar" there are plenty of us out there who love C/C++ syntax and coding styles. I consider C to be one of the simplest languages out there.
"A systems language essentially just adds access to pointers." Sure, but it also does LOTS of other things. If you want to make a vague comparison systems languages are closer to running "on the metal" than interpreted languages and for some use cases this this is critical. If your flying a jet at 35,000 feet you don't want your altitude tape to all of a sudden read NaN... In many cases, especially mission critical systems, programing close to the metal is the only way to achieve the sort of optimization you really need to run a system, abstraction is NOT always a good thing
"Imagine the same syntax/tooling for embedded, kernel, system (browsers, interpreters), backend, and frontend." -> You could define a systems language that had similar syntax to JS but the main point of JS is the broad abstraction of some things that you very much want access to when you working on a system closer to the metal. Sure its nice when all numbers are of type "Number" but there are lots of cases where you need far stricter control over that. Another piece of historical context here is that the web era brought around the notion of a "full stack" developer, someone who could work on "front end" and "back end" code. In my experience the best dev's are good at one of the two and have a cursory understanding of the one they are not good at for the sake of knowing whats going on most of the time. Realistically these people are not tinkering with the "low level" aspects of the system since its all provided by other things.
"I just don't know why there is not more interest in this." Perhaps because there is no real reason to sink the engineering effort into adding a new syntax to something that works and there are plenty of competent, educated engineers out there working on the stack already. There is lots of historical context here as well, JavaScript more or less became popular in the web era to manipulate front ends, Node made a viable server side platform so it was "one language up and down the stack" which made engineers easier to train (supposedly, I have yet to see this in practice). This was all great but thats a web centered view of the whole situation. In reality there are computers in EVERYTHING these days and many of those computers/microcontrollers/microprocessors simply can't run javascript (for what ever reason) and systems languages are quite relevant.
To sum it all up I think your largely ignoring:
1) The huge historical contexts to why some languages are the way they are
2) Why some syntax/language designs lend to certain use cases
3) Why the "web" era made JS popular for better or worse
4) Why OOP is not a silver bullet for all computing use cases
It took me the better part of the first decade of my career to understand that the purest developers/comp sci's fundamentally know that the language does not matter but instead understanding WHY a language/framework/library/system is good for the use case. Roller Coaster Tycoon was mostly written in assembly anyway...
> "It's quite clear that TypeScript is going to be around forever"
Haha that really is wild. It was just a blink of an eye ago that Ruby was the big thing and now when do you ever hear about it?
I see TypeScript being around for a while because it's doing to JS what C++ did to C, but WebAssembly is currently a huge unknown that could end up either being the death knell of the JS ecosystem long term, or have no real effect whatsoever on it.
So JS/TS could be just as popular as now, or totally obscure in 15 years, in my estimation, but it would be insane if C was gone. There's just not enough time or motivation to rewrite the vast amount of C/C++ code under the hood of literally everything everywhere.
I'm not so sure, but I'm also kind of biased because I do wish JS would go away, so I'm probably trying to look for ways it could happen. Realistically it will probably be around as long as the web browser, and the web browser might really be around "forever" by way of continuously adding APIs and shape shifting into whatever the latest thing is. Kind of like C++.
The other way it could finally die though, is if WebAssembly kills it. Right now WebAssembly isn't even usable without JavaScript to access the DOM, so that needs fixing first, but once that's the case, it really will become possible to build a whole front end with no JS, while still integrating with pieces of legacy JS if/when still needed.
This seems more realistic to me than say, C dying of this way, too, because frontends are a lot easier to rewrite and get rewritten or thrown away more often than backend or systems stuff.
By then though, I'll probably be the last remaining person who still has beef with JS...
One thing not to forget about JS is that it has made everything reverse engineerable. WebAssembly will kill this. It's quite amazing to be able to set breakpoints on any website on the internet. To see how any website does something. And it hasn't really caused any problems. I think we take it for granted too much.
What part of JS do you want to die the most? Syntax, runtime, type coercion quirks? And what is your ideal syntax so far? How could JS be changed to your liking?
Let me strongly disagree, although I get where you're coming from for sure, and I get that my opinion is contrarian so I hope you'll give it a chance by reading my full rationale:
What about when the JS is minified and/or obfuscated? A good bytecode with lots of symbols that lends itself to good decompilation can be just as good or better.
In my experience I've had a better time dealing with the JVM (Java, etc) world for this because IntelliJ makes it so easy to automatically decompile and jump into your JAR and maven dependencies, and in my experience the quality of decompilation is very good. The nice thing about Java is it is harder and correspondingly uncommon to obfuscate the names of any symbols beyond stack locals, after all, methods calls are linked by name at runtime.
Whereas with JavaScript, if the source is not minified or obfuscated, things are good, otherwise you've definitely lost all the symbols, even the ones that could not realistically be removed in JVM.
Also the vast amount of static typing in the JVM bytecode design forces so many more constraints! This is the huge win, honestly, for people exploring the source code of others. It is a lot easier to figure out what unknown code does when you can safely and reliably map out what calls what, what the types of arguments are and therefore what method calls could be called on them, etc.
So the best case scenario is a little better with JS, I will admit that! But the average and worst cases are far better with JVM even though it is a binary bytecode.
WASM is also a binary bytecode. I am not sure how it will compare on this to JVM though. But I am hopeful.
As for what beef I have with JavaScript, I think the above alludes to it: it is harder to explore a complex unknown codebase than in a statically typed language. I don't mind the syntax or anything superficial like that. It's a nice pleasant easy language to write greenfield code in if you don't have legacy code, sure.
> One thing not to forget about JS is that it has made everything reverse engineerable. WebAssembly will kill this. It's quite amazing to be able to set breakpoints on any website on the internet. To see how any website does something. And it hasn't really caused any problems. I think we take it for granted too much.
I mean more JS. I'm sure types will be integrated into TS.
I really cannot see JS ever being supplanted. WebAssembly could change things but probably not.
The only gap I see in the market is for a high-level language that can also do low-level.
And then you have to think about syntax-alone innovations yet to come. I think we have all the syntax we need. Swift and Kotlin have some new stuff now and then. But pretty much everything people want are proposals in the works for JS.
So with no new syntax innovations, people will just go with JS/TS. And then you pretty much just need to implement a low-level target and you have your universal programming language.
> nice when all numbers are of type "Number" but there are lots of cases where you need far stricter control over that
The problem is these systems languages are not designed like this. They don't imagine you are not instantly hitting the metal. But huge amounts of code are just simple business logic that don't care about memory management. I just want my hot code path to run on the metal. But I don't want to rewrite in Rust and wear the compile times just for that.
> purest developers/comp sci's fundamentally know
These are the same guys that hop from fad to fad to stay intellectually stimulated. Ruby -> Scala / Haskell / OCaml -> Go -> Rust -> Zig -> Some new thing.
I've heard so many times that functional programming was essential, now a borrow checker is essential, when we got by without them just fine. Now Zig comes along and doesn't have a borrow checker and its still got buzz. Next is Vale with generational references and time-travel debugging. It's always some new shiny feature to chase. Call out web devs on their new ui frameworks, but backend devs have their own skeletons.
Compsci's are writing their very own new language as we speak.
Devs are constantly forced to go where the hype is to stay with the ecosystem. Rust is where it's at, so Rust it is. But it won't be forever.
I'm just a bit tired of wearing slow compile times for all these new languages that never get fixed before the next language comes along...without proper IDE support or debugger support.
As other have noted, pick up a copy of this book https://en.wikipedia.org/wiki/The_C_Programming_Language it was written by the two guys that created C (and also contributed quite a bit to UNIX). Its perhaps one of the truly "original" programing textbooks (and it does not have some wacky animal on the front). The creator of C++ also has written many books on the topic https://www.stroustrup.com/books.html all that are pretty decent.
If you want to lean by doing my advice is to get an arduino and try and build stuff. The arduino has a C like language (and will also accept C code) which is a great way to learn the language with fun projects. More importantly it will force you to learn C in a very restricted environment where you actually have to think about clock speed, memory management and code efficiency due to the micro controllers limited resources.
I'm, going to echo a bit of whats in the comments to robcohen's post but the single most productive cert I hold is my pilots license. I do not fly for a living, Im a software engineer (mostly). I hold other certs, some technical, others non technical both work related and non work related by a sizable margin my PPL is the the most productive:
Back story: when I started working for my self my first client was a pilot, he encouraged me to get my PPL or at least do a demo flight. I did an intro flight and was instantly hooked. 3 years later I had a PPL, Instrument Rating, High Performance and Complex checkouts. One of the best experiences I have ever had, I was fresh out of college, had a few bucks in my pocket and not many obligations. Anyway heres why its been great:
- I have found there are basically three types of people that bum around private airports where general aviation ops occur. 1) people successful enough to afford to fly private jets or charters when they need 2) people successful enough to OWN their own plane. 3) People who are liable to become types 1 and 2. In general pilots are a nice bunch and a talkative bunch. Ive met some really great people (read business connections) just by lurking around the airport. That first client I had, had lots of similar buddies who were pilots that I got to meet etc. etc. By far the most productive business networking I have EVER done occurred near an aircraft.
- Flying keeps you sharp in all aspects and it WILL change the way you look at things. It keeps you sharp on doing paperwork, sharp on staying current on a topic, sharp on thinking ahead of things, sharp on staying in at least some sort of decent physical shape. I have built a lot of productive habits in my life to ensure I can fly.
- It hones your decision making skills, a lot....
- It re-shapes how you view getting around and enabling your business/work. Both pre and post pandemic life. Meeting with client within 500 miles, Im not dealing with trains or regional jets, im coming and going as I need. This has enabled same day travel, taking meetings i normally wouldn't have and being able to generally buy time back.
- Putting my PPL on my resume has been the best talking point, stand out item, liner note I have ever had.
This is interesting, because a lot of it is similar to what I've long said about having an amateur radio license.
I list it on my resume as "Holder of FCC-issued radio operator license under Part 97, Extra class". For muggles, it's the beginning that sounds impressive. For other hams, it's the end.
And every. single. interviewer. has brought it up and asked about it. In technical roles, often one of the interviewers is also a ham or at least fairly aware of it. That's a natural branch to talk about side projects and hands-on competencies, which can otherwise be hard to introduce.
It requires some study, nothing to the level of a PPL, but most folks can't walk in off the street and get anything higher than a Tech license. General-class usually takes concerted study, and Extra is basically a thimble-full of college physics and a whole whack of practical electronics and RF safety.
Radio is mysterious to a lot of people. Heck, a lot of people don't even think of wifi and GPS and walkie-talkies and WDET as being the same thing. Being both competent with the tech itself, and facile with explaining it, makes one instantly valuable in a great many settings.
The privileges granted with a license are insane. I sometimes use the analogy that: Imagine everyone walks everywhere, or you can buy a little e-scooter that's speed limited to 2 miles per hour. All the fasteners are welded and it's illegal to modify your scooter. That's FRS, wifi, etc. Pay a fee and you can get licensed for GMRS, which is a 10mph scooter, but it's still welded shut because there's no technical competency required for that license. Or, demonstrate technical competency on the ham exam, and you get a license that allows you to drive a supercar at 1500mph, and you're allowed and encouraged to modify anything you like or build it from scratch if that's your thing, and they when you self-certify its roadworthiness, they just take your word for it because you hold that license and you probably know how to tune it and not hurt people and stuff. It's utterly bonkers.
Sadly the community around amateur radio is nowhere near as elite as you make out general aviation to be; there's substantial overlap with the wannabe-cop cosplayers, and I find the most interesting hams tend to not spend a lot of time at ham gatherings. There are some magnificent technical fora, to be sure, but they are the exception.
Getting PPE sounds like good fun; but once you got it what were some cool things you've been able to do without being a type (1) or (2) private airport person?
I don't own a plane or fly in 135 charters, I'm a member of a flight club that owns a few planes. As a member I effectively rent the planes from the club at a very reasonable rate with a small fixed monthly cost for things like storage etc. The planes are not used for primary training and are only available to club members. They are very well equipped IFR capable aircraft that are very well maintained. The club is small enough that its pretty easy to get a plane when you want/need one. With that in mind here are some cool things the club has aloud me to do.
1) I have moved a few times since I got my PPL and some of my friends have as well. At this point I have fairly close friends all up and down the eastern seaboard. The plane has aloud me to see them regularly without very much complex planning and often for lunch or breakfast when it would otherwise need to be for the whole weekend. Just yesterday I flew down south a bit to meet a buddy for breakfast that I otherwise would not have been able to drive to do do such a thing. This has been a really nice aspect of flying.
2) We have some family that lives close but not super close (7ish hour drive). The plane has aloud us to be part of their new borns life in a tangible way. Similar to seeing friends that I otherwise couldn't
3) The plane has expanded my weekend trip options. We have explored islands, gone to further cities and seem more than we would in a car. There are just north of 16,000 airfields in the US and only a small chunk of them service commercial traffic. I can get my little plane into pretty much all of them and land super close to lots of interesting places.
4) Ive been able to leverage interesting one day opportunities: Is there a once in a decade eclipse coming, best viewing spot is 600 miles, lets take the plane for the day. Is there an airshow somewhere lets fly in and check it out. Ferries booked to Nantucket for the weekend, take the plane. Want to get some chowder the vineyard for lunch, take the plane. Wedding in the Hamptons, traffic looking like its gonna be 6 hours to get there, take the plane. Buddies bachelor part is far and you need to get there friday potentially stuck in hours of beach traffic, take the plane (and pick up some friends along the way!)<- all things Ive done.
Before anyone jumps to "its super expensive to do those things" the fact is, in a reasonable GA plane its about the same cost as driving +fees for dealing with cars these days. My plane gets the gas milage of an SUV and most airports charge less than $20 a day for ramp parking, free if you buy some fuel typically. Some cities have silly $2 mandatory parking fees or what ever but if your careful about picking which small airport you go to in a city you can usually fly in for VERY cheap or free if you buy gas and you generally need to buy gas anyway... With tolls and gas prices the way they are its usually not much of a price difference to take the plane even after rental costs are figured in.
all the points you list about flying, I believe was the norm in the pre-ww2 world.. I think we lost something because our system is so resilient and comfortable, you fear nothing really
A junior engineer with some (but not too much) experience. Im not sure what exactly has been causing this lately but we have had serious issues at my current org as well as others that I help, finding junior engineers with 2-4 years of relevant experience. We run a fairly straight forward stack (postgres, python/node depending on the service, react front end), our packages are pretty competitive and we have not had a lot of (read basically none) good stuff come across the wire. Recently we have been inundated with resumes from boot camps, college kids, "self taught" people, and just people looking to change careers and expecting us to foot the bill to train them, none of them can hack it on even simple coding challenges or basic architecture questions. At this point ill take someone who can look at a common stack dump and have a fair idea of whats going wrong...
The best analogy I can think of is that we dont need Frank Gehry, but we need someone know knows the studs should be 16 inches apart, and all we are getting is people who know that 3 inch screws might be involved in the job but that is the only screw they have ever seen and the only screw they are comfortable using.
Is the issue, possibly, that virtually every company has decided that hiring people and training them up in the requisite skillsets is an unreasonable ask? Despite that being the pattern for employment for most of the history of employment as a concept? Where do you think the population of junior engineers is going to come from if everyone thinks it's unreasonable to "foot the bill to train them"?
Drives me crazy that people don't want to hire entry level engineers, don't want to train people, and then complain they can't hire anyone. I was a bootcamp grad, and I was pretty useless for at least the first 6 months after I got my first job, as are most entry level engineers. Since then, I've been a pretty substantial bargain for every company I've worked for, based on the fact that I've managed 25+% raises at each subsequent job hop. I'd still be working at the first place I ever worked if they'd just kept my comp roughly in the same ballpark as what I was being offered.
As others have noted I agree that building something (even not software related) helps get me out of these kinds of funks. The reality of your position is that you likely are at a point where you have hired people to make the important technical decisions in terms or architecture, design, and "engineering" and you hired them because they are specialists at that. In todays dev world there is too much to know about to many things to keep full grasp on it all. Your job as a technical leader is to drive the trajectory of the project in the right direction and that often means trusting the leaders of various teams to make decisions about individual technical topics so long as it meets your higher level goals as an organization. Remember Wernher von Braun was not designing every piece of the Saturn V he was driving the project to success.
Prizeout is an alternative cashout mechanism utilizing the power of Gift Cards. We are actively hiring for our dev team (which Im directly involved with) but we have lots of other openings as well https://jobs.lever.co/prizeout
Our Tech Stack (bottom up)
Google Cloud
Postgres
Node.JS/Python
React
Drop a comment here for more info or apply directly to one of our positions!