DEV Community

Cover image for 90% of software engineering is integrating janky APIs, and I love it

90% of software engineering is integrating janky APIs, and I love it

Manuel Odendahl on May 02, 2022

(Title photo: Ophelia photos - Creative Commons) I stumbled upon this twitter thread and corresponding Hacker News comments today: 90% of software...
Collapse
 
the3rdc profile image
Cody Crumrine

I love this! I love working with data integration, and connecting different APIs and databases, and I actually think there's incredible opportunity to be artful and creative when you're "moving bits", especially once you start to get into "how do I make this configurable for future use cases?" or "what is I need to move/process a large volume in a short time on undersized hardware?"

I also want to throw out that I do still encounter a ton of "poorly documented" APIs, but they can be almost as fun as they are frustrating. I can really enjoy "black box" developing an integration sometimes, where all you can do is throw input at it and see what the get back. : )

Collapse
 
wesen profile image
Manuel Odendahl

Definitely, and you can often see why an API is "poorly documented". It takes more effort to document something well that to design it well, and as a developer you often need to take into account things that are very hard to document (performance, scaling) anyway.

What I like the most is when I can get quickly started with a starter project and easy test tokens. This often means that it will also be easy to set up tests and catch edge cases later on.

Collapse
 
robencom profile image
robencom

Integrating APIs is pretty fun for me, even if the APIs are not well documented or flawed. It is the next step in programming, which is the integration of different people's work with each other to create a new and better product.

Programming is a mixture between science and art: we use logic in an imaginative way to create new things.

Collapse
 
jonrandy profile image
Jon Randy πŸŽ–οΈ

I've always viewed programming as more art than science, and derive most pleasure from twisting it in unusual ways, or throwing together useless "toys" mainly for my own enjoyment. Sometimes these exercises yield something useful (new libraries, tools, frameworks etc.), but that's just an added bonus.

Unfortunately, this kind of intellectual play doesn't pay the bills... developmental API "plumbing" does. To me, it's mostly boring, but occasionally throws up interesting challenges. The main reason I stick with full stack is to keep it as interesting and varied as possible.

Collapse
 
wesen profile image
Manuel Odendahl

What parts of your β€œtoys” do you find fulfilling, and why do you think this kind of software is not useful in a professional setting?

I must admit that I do enjoy software architecture a lot, and so choosing which API, when, for what reason, and how to introduce it is what really gets my creative mind going. Do you chose an event driven architecture or stick with plain old REST calls and a DB transaction? What if you had a big old codebase using node.js and mongodb? What if this thing needs to ship tomorrow?

The creativity is moved from the actual code to the design of the system, the compromises, the realities of running a system production (very worth it using a shitty API if the tooling is better, etc…)

Collapse
 
dylburger profile image
Dylan J. Sather

Moving bytes IS real engineering! Would love to know what you think of pipedream.com

Collapse
 
wesen profile image
Manuel Odendahl

I don't really have an opinion. I've had success in some cases with "click here to pipe data" tools, and also absolutely terrible experiences where doing it manually from the get go would have helped tremendously.

Did you use it? Any comments?

Collapse
 
dylburger profile image
Dylan J. Sather

I am a Pipedream founder so am quite biased! But Pipedream is built specifically for developers. Check out our GitHub repo.

We do provide a UI for building integrations, but you can write any Node.js, Python, Go or Bash code within a workflow. I frequently write workflows that are a mix of pre-built actions (I don't want to write the code to send a Slack message every time) and custom code steps where I implement the logic I need for the specific automation I'm building.

Give it a try and let me know what you think! We deeply value feedback from developers. Feel free to join our community, too, if you want to chat with us via Slack / Discourse.

Collapse
 
wesen profile image
Manuel Odendahl

I think the worst API I had to use was related to that PC-NFSD COBOL thing I was referring to. In fact, the form had a β€œCommand” field, and there were about 600 commands all labeled with seemingly random strings like CFUATUU or DOFTTNI. I had 600 pages of documentation, one per command. No table of contents, no index, no page numbers. Of course nothing was in alphabetical order either. Absolute bliss.

Collapse
 
bouzaf profile image
Felipe

I see it as playing with LEGO, you join some pieces together to create something, plus you can also create your own pieces if needed, which adds some fun to it.

Collapse
 
mdovn profile image
mdovn

Feel it the same way, mostly. Glue things together don't have to be boring.

Collapse
 
andrewbaisden profile image
Andrew Baisden

API's bring any app to life.