4 ms·
I enjoy learning new languages. In my day job I spend most of my time writing JS (ReactJS specifically) building dashboards and other internal business tools.
by Phillips126 7y ago
I enjoy learning new languages. In my day job I spend most of my time writing JS (ReactJS specifically) building dashboards and other internal business tools. Sometimes I need to build API's or perform tasks that just cannot be done in the browser and I take the opportunity to experiment with other languages.
A few examples:
- We purchased a cheap USB duplicator (10 slots) to copy the contents from a master USB to the clones. It worked, but wasn't a great solution. It was slow, error prone and when it failed you never really knew what USB was having the issues (or what went wrong). Using a Golang backend and ReactJS frontend I created an alternative which had a nice GUI showing what files were copying, the percentages complete, error messages, etc. It was a far better solution and using Goroutines it was fun. We ended up scaling the system to 100 USB's at a time and that was fun to watch (lots of blinky lights :D). The solution didn't take much time to write (Golang was quick to learn) and we finished the duplication WAY sooner than the due date.
- We needed to automate a bunch of DNS stuff with CloudFlare. I ended up creating a parser for a custom config we wrote, hooked it up to CF's API and we ran it as a service. The language I used for this project was Nim[0]. I liked the syntax and the final binaries were TINY and FAST.
- More recently I was approached by an IT guy at the company that manages all of our software licenses. He showed me this command line tool he uses to query all licenses and goes through the cryptic output trying to figure out what licenses were being used, by whom, etc. I ended up using Go to parse the command and serve a ReactJS application with all sorts of bells and whistles (reports, history, alerts, etc). Since the application is browser-based he can even use it mobile which he loves.
- I've been working on some prototype BLE Mesh stuff in C, but that is a ways out and not yet worth mentioning much more.
Rust has held my interest for a while as well, just waiting for the right project to come along.
[0]https://nim-lang.org/ https://nim-lang.org/
- iam_takada 7y agoOn top of ReactJS, what else do you use to build dashboards and internal business tools?
- Phillips126 7y agoI typically do everything custom these days. In the past I would use Bootstrap, Semantic or one of the many other CSS frameworks but I found that I add a lot of size to my applications when I only used a few things from it. Most features (sidebars, grids, menus...) are simple enough to just implement on your own. I was a graphic designer that moved into development so I feel I have a pretty good sense of design and UX. I do however use various charting libraries out there for ReactJS as they are typically quite well done and small in size. If I need something a little more custom I'll install D3 and build it out. For backend I have used Node/Express quite a bit to serve API's and such. But as mentioned in my previous post lately I've been using system programming languages a lot more for building backend things mostly as a learning exercise and because I have the freedom to do that in my job. Building out these tools and seeing them being used daily from nearly all employees in a ~400 person company is really rewarding. It really gives me a sense of appreciation for the work I do and I get a lot of good suggestions on how to improve the applications that in turn improve the work these employees do. Other things I've used in the past for various projects include Ionic Framework & PhoneGap (mobile app), Zephyr RTOS (BLE Mesh Programming), React Native, Angular, Electron (Visitor Check In/Out Kiosks), and lots of CSS frameworks (too many to name).
- leetbulb 7y agoReact SemanticUI is great.
- stevekemp 7y agoYour DNS-project sounds exactly like mine! I parse a custom format of text-files, and update AWS DNS records via git-pushes: https://dns-api.com/ https://dns-api.com/
- Phillips126 7y agoVery cool! Our tool only recognized A/AAAA, CNAME, and TEXT records (that's all we needed at the time). Your solution is much more complete and looks really good. Clever use of git! Your pricing is super affordable as well, nicely done.